728x90
반응형
<문제>
<소스코드>
import sys N, P = map(int, input().split()) cnt = 0 lst = [[] for _ in range(7)] for i in range(N): n, p = map(int, sys.stdin.readline().split()) if not lst[n-1]: lst[n-1].append(p) cnt += 1 else: while lst[n-1] and p < lst[n-1][-1]: lst[n-1].pop() cnt += 1 if not lst[n-1] or p > lst[n-1][-1]: lst[n-1].append(p) cnt += 1 else: pass print(cnt)
<NOTE>
1. 리스트 내가 비어있는지 아닌지 체크
리스트 stack이 비어있다면
if not stack:
리스트 stack이 비어있지 않다면
if stack:
(참고) 리스트 내 특정 아이템이 있는지 체크
특정 아이템 a가 리스트 stack에 있다면
if a in stack:
특정 아이템 a가 리스트 stack에 없다면
if a not in stack:
3. 데이터를 쌍으로 저장하여 컨트롤하고 싶을 때
기타줄 번호와 같이 상위 변수에 대해 빈 리스트 안에 그 개수만큼 빈 리스트를 만들고 시작한다. 즉 이중 리스트를 만드는 것이며, 리스트의 인덱스 자체가 상위 변수를 가리키는 것이다.
lst = [[] for _ in range(7)]
4. pass와 continue의 차이
pass는 단순히 실행할 코드가 없다는 의미이고, continue는 현재 시점에서 멈추고 다음 loop를 실행하라는 의미를 가진다. 이어서 다음 명령을 수행하는 pass와 달리 continue를 사용할 경우, 현재 loop에서 수행할 명령어가 더 있음에도 불구하고 강제종료 후 다음 loop로 넘어간다는 것이 차이점이다.
728x90
반응형
'알고리즘 > 스택 \ 큐 \ 덱' 카테고리의 다른 글
#13 [파이썬] 백준 18115번 : 카드 놓기 (0) | 2021.04.13 |
---|---|
#12 [파이썬] 백준 7785번 문제: 회사에 있는 사람 (0) | 2021.04.13 |
#10 [파이썬] 백준 4949번 문제: 균형잡힌 세상 (0) | 2021.04.07 |
#9 [파이썬] 백준 9012번 문제: 괄호 (0) | 2021.04.07 |
#8 [파이썬] 백준 10845번 문제: 큐 (0) | 2021.04.07 |
댓글