Question
Solving
스택에 들어올 다음 수와 top과 비교한다.
1) top이 더 크다면 그냥 push,
2) top이 작다면 pop하고,
3) 다음 top과 다시 비교하여, top이 크다면 1) 로, 작다면 2) 로 간다.
주어진 테스트 케이스로 그려보면 아래와 같이 진행된다.
2
2 4 4 1
5 5 5 5 6 6
[0] [1] [2] [3] [4] [5]
4 1 2 1 2 1
3 0 1 0 1 0
위 표에서 4 1 2 1 2 1은 각 단계에서 push된 값이 몇 단계나 살아 남는지 적은 것이다.
5의 경우 0단계에서 push되어 3단계까지 살아남고 4단계에서 pop이 된다.
4 1 2 1 2 1 에 -1을 하면 3 0 1 0 1 0이 나오게 되고, 이것의 합이 우리가 구하고자하는 답이 된다.
Code
'Algorithm > 정보올림피아드' 카테고리의 다른 글
실력키우기 > 문자열 > 문자열변환(2518) (0) | 2014.09.01 |
---|---|
알고리즘 > BFS > 저글링 방사능 오염(1078) (0) | 2014.08.28 |
알고리즘 > 자료구조A > 빌딩(1328) (0) | 2014.08.21 |
알고리즘 > 자료구조A > 히스토그램(1214) (0) | 2014.08.21 |
실력키우기 > 문자열 > 비밀편지 (0) | 2014.08.10 |