Algorithm/백준

[백준 알고리즘] 2841번: 외계인의 기타 연주 (Python)

에릭 Kim 2023. 8. 18. 11:53
반응형

https://www.acmicpc.net/problem/2841

 

2841번: 외계인의 기타 연주

첫째 줄에 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (1 ≤ N ≤ 500,000, 2 ≤ P ≤ 300,000) 다음 N개 줄에는 멜로디의 한 음을 나타내는 두 정수가 주어진다. 첫 번째

www.acmicpc.net

 

소스코드

 

 

풀이

★ 문제를 이해하는 데 헷갈렸던 부분은 줄이 다른 경우에는 상호간에 아무런 영향을 끼치지 않는다는 것입니다 ! 저는 줄이 1일 때와 2일때를 동일하게 생각하여 줄이 다른 경우 무조건 손가락을 떼고 다시 줄과 프렛을 눌러야 한다고 생각했습니다. 하지만 줄이 다른 경우는 독립적인 경우라고 생각해야 합니다. 

 

★ 줄이 총 6개이고, 1번 줄부터 인덱스 번호를 설정하기 위해 stack을 총 7개 만들어줍니다. 입력 받은 m, 즉 줄의 번호에 따라 각각의 stack에 프렛을 추가해줍니다. 

 

★ 그 이후에는 조건에 맞춰 프렛을 stack에 넣고, 빼는 행위를 반복해주면 됩니다. 이 때 stack에 append 하는 경우 해당 줄의 stack에 append 하도록 stack[i]와 같이 인덱스를 신경써야 합니다:) 

반응형