문제
알고리즘
- 반복문을 통해 줄의 번호와 프렛의 번호를 입력받아 확인한다.
- 주어진 줄의 더 높은 프렛을 누르고 있는 경우에 while문을 통해 손가락을 하나씩 뗀다.
- 이미 누르고 있는 줄의 프렛인 경우 패스한다.
- 주어진 줄의 프렛이 누르고 있는 프렛보다 높고 같지 않은 경우 프렛을 누른다.
코드
import sys
n, p = map(int, sys.stdin.readline().split())
line = [[0] for x in range(7)]
cnt = 0
# 반복문을 통해 줄의 번호와 프렛의 번호를 확인
for i in range(n):
line_num, plat_num = map(int, sys.stdin.readline().split())
# 주어진 줄의 더 높은 프렛을 누르고 있는 경우, 손가락을 하나씩 뗀다.
while line[line_num][-1] > plat_num:
line[line_num].pop()
cnt += 1
# 이미 누르고 있는 줄의 프렛인 경우 패스
if line[line_num][-1] == plat_num:
continue
# 주어진 줄의 프렛을 누른다.
line[line_num].append(plat_num)
cnt += 1
print(cnt)
github
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 17615번(파이썬): 볼 모으기 (1) | 2022.04.19 |
---|---|
[baekjoon] 백준 21758번(파이썬): 꿀 따기 (0) | 2022.04.18 |
[baekjoon] 백준 1448번(파이썬): 삼각형 만들기 (0) | 2022.04.16 |
[baekjoon] 백준 1431번(파이썬): 시리얼 번호 (0) | 2022.04.15 |
[baekjoon] 백준 1244번(파이썬): 스위치 켜고 끄기 (0) | 2022.04.14 |