프로그래머스-탑
2019. 4. 20. 22:51ㆍ개발노트
문제만 잘 이해하면 쉽게 풀 수 있다.
글로 이해하려면 조금 헷갈린다. 그림을 그려보면 더 쉽게 이해 할 수 있다.
입출력 예 1을 예로 들면 아래와 같다.
O | ||||
O | ||||
O | O | |||
O | O | O | ||
O | O | O | O | |
O | O | O | O | O |
O | O | O | O | O |
O | O | O | O | O |
O | O | O | O | O |
1 | 2 | 3 | 4 | 5 |
탑이 위와 같이 있을 때 출력되는 결과는 [0, 0, 2, 2, 4] 이다.
1번째와 2번째는 0
3번째와 4번째는 2
5번째값은 4를 출력했다.
공통점을 찾아보자
1~5순서대로 서로 비교하다가 숫자가 작아지면 큰 숫자를 가진 탑이 기준이 된다.
초기 기준값은 0으로 해서 1번째, 2번째 탑의 기준은 0이다. [0, 0]
2번째 탑이 가지는 값(9)보다 3번째 탑이 가지는 값(5)이 작다. 따라서 기준은 2번째 탑이 된다. [0, 0, 2]
4번째 탑은 3번째 탑보다는 크지만 기준인 2번째 탑보다 작기 때문에 기준은 2로 유지된다. [0, 0, 2, 2]
5번째 탑은 4번째 탑보다 작기 때문에 기준이 4번째 탑으로 바뀐다. [0, 0, 2, 2, 4]