bonjenny   1년 전

NO가 나오는 것 처리를 잘못한 걸까요? 시간이랑 메모리도 많이 쓸 것 같긴한데

% 뜨기도 전에 틀렸다고 떠버리니... 모르겠네요 ㅠ.ㅠ

반례가 있을까요? 부탁드립니다.

//반례

4

2

3

1

4

정답: ++-+--+-

--->

이런 수열을 만들어야 한다고 치면

il = [4, 3, 6, 8, 7, 5, 2, 1]

- 1단계

우선 il[0], 첫번째 수인 4는 넣자마자 바로 pop 해버리고,

다음으로 pop 가능한 것은 4보다 크거나 4보다 1 작아야(이 부분이 틀린 거였네요...) 한다고 생각했습니다

  1) il[1]이 4보다 1 작은 경우 (3인 경우): 바로 pop

  2) il[1]이 4보다 큰 경우 (5,6,7,8인 경우): 수가 들어갈 때까지 push하고 한번 pop

- 2단계

최고 높은 수인 8까지 나왔다면, 그 이후로는 계속 pop 해야 한다고 생각했습니다

이 과정에서 스택에 잘못 접근해서 runtime error가 발생한다거나,

pop 가능하지 않은 수가 다음에 나왔다면 NO를 출력하고

오류 없이 잘 동작이 되었다면 ++--등 결과를 출력합니다

---> 예외처리 부분 수정하고 다른 분 반례 넣어봤는데도 잘 나오는거같은데 ㅠㅠ

또 틀렸다고 나오네요... 어디서 틀린 걸까요...

이번에는 3%에서 틀렸다고 떠버리네요

댓글을 작성하려면 로그인해야 합니다.