프로그래머스-탑

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]