2841 외계인의 기타 연주 / c++ / Silver1 / 17분
문제 및 코드

풀이 과정
자료 구조 / 스택
- 6개의 기타 줄이 있고, N 개의 음이 주어진다. 각 음은 줄 번호와 프렛 번호로 이루어져 있을 때, 손가락의 움직임(눌렀다 뗐다)의 최소값을 출력하는 문제
- 쉽게 풀어보자면, 6개의 스택이 있고, N번의 입력이 들어온다.
- 입력은 스택의 번호와, 넣어야 하는 숫자를 알려준다.
- 이 때 스택에 넣거나 빼는 수를 최소로 했을 때의 값을 출력하는 문제.
- 만약 넣어야 하는 숫자가 해당 스택의 탑보다 작은 경우라면, 스택이 비어있거나, 스택의 탑이 넣어야 하는 숫자보다 작거나 같아질 때까지 스택의 팝 한다. 이 때 그 수만큼 Answer 증가 (해당 줄의 음은 잡고 있는 프렛 중 가장 높은 부분을 따른다.)
- 그렇게 제거한 뒤
- 만약 스택이 비거나 스택의 탑이 넣어야 하는 수보다 작다면, 수를 넣고 Answer 증가
- 만약 스택의 탑이 넣어야 하는 수와 같다면, 따로 넣지 않고 다음 차례로 넘어감
- Answer 출력
다시 생각해 볼 점
- 구현은 정말 금방 끝났는데, 문제가 잘 이해가 되지 않아서 이해하는데 시간이 많이 들었다.
- 기타 프렛의 스펠링은 Pret이 아니라 Fret이었다. 기타를 안쳐봐서 생소한 언어였는데 손으로 잡아서 음을 조절하는 부분이다.