본문 바로가기

백준 문제풀이

백준 2841 문제 - 외계인의 기타 연주

문제 이해를 먼저 하자면

누르고 있던 프렛값 보다 주어진 프렛값이 더 크면 그냥  그 위에 누르면 되고(높은 프렛값의 소리만 나옴),

주어진 프렛값이 더 작으면 더 높은 프렛값들의 손가락을 떼고 누른다(높은 프렛값이 주어진 프렛값이 되도록).

예를 들어 1번 줄의 프렛을 누르다가 다른줄의 프렛이 주어지더라도 기존 줄의 프렛은 안떼도 된다.

 

먼저 라인이 비어있을 때는 간단하게 프렛값 삽입 후 다음 루프로 넘어간다. (16~19 줄)

라인이 비어있지 않으면 주어진 프렛값이 가장 큰 수가 될 수 있도록 세팅(주어진 프렛값 보다 큰 프렛값 삭제) 후

주어진 프렛값을 삽입해준다. (22~30 줄)

이 과정에서 삽입과 삭제(pop(),push()) 연산의 수를 구하는것이 답이다.