Coding Test/baekjoon
[백준 2841] 외계인의 기타 연주- python (solved.ac - 실버 1)
조용장
2022. 4. 17. 01:03
https://www.acmicpc.net/problem/2841
2841번: 외계인의 기타 연주
첫째 줄에 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (N ≤ 500,000, 2 ≤ P ≤ 300,000) 다음 N개 줄에는 멜로디의 한 음을 나타내는 두 정수가 주어진다. 첫 번째 정수
www.acmicpc.net
풀이
문제를 보았을때 알수있는 힌트
1~6번까지 리스트를 만들고 스택을 이용해서 이전에 누른것 보다 크거나 작거나 확인하면서 append, pop 형식으로 문제를 풀면 된다.
예시:
2번 줄에 8을 누른다. 1
2번 줄에 10을 누른다 2
2번 줄에 12를 누른다. 3
2번 줄에 10을 누르기위해 12를 뗀다. 4
2번 줄에 5번을 누르기 위해 10을 뗀다. 5
2번 줄에 8번을 뗀다. 6
2번 줄에 5번을 누른다. 7
총 7번을 움직인다.
import sys
input = sys.stdin.readline
n,p= map(int,input().split())
n_list = [[0] for _ in range(7)]
count=0
for i in range(n):
x,y= map(int,input().split())
while n_list[x][-1]>y:
count+=1
del n_list[x][-1]
if n_list[x][-1]<y:
count+=1
n_list[x].append(y)
print(count)