pop을 하면 size가 바뀌어서 틀립니다.
10773번 - 제로
pop을 하면 size가 바뀌어서 틀립니다.
53번째 줄 전까지 스택에 n개의 원소가 남아있다고 해봅시다.
그러면 이 n개의 원소를 모두 더해야 답이겠죠. 남아있는 원소들은 모두 마지막 0이 나온 이후의 원소들일테니까요.
이 때, 스택의 사이즈는 n입니다.
매 반복문마다 i를 증가시키고, stack에서 pop을 하므로, 각 변수 및 함수 리턴값은 다음과 같습니다. 편의상 n을 6이라고 가정해보겠습니다.
i = 0, st.size() = 6
i = 1, st.size() = 5
i = 2, st.size() = 4
i = 3, st.size() = 3
.....
과연 n개의 원소를 모두 출력할 수 있을까요?
댓글을 작성하려면 로그인해야 합니다.
yg04076 1년 전 1
테스트 예제 돌아가는 것도 둘이 똑같고 논리도 똑같은데... 뭐가 문제 일까요...?
그리고 제가 이상한 지점이라고 마킹한 지점....
if (st.size() != 0) {
for (int i = 0; i <= st.size(); i++) {
sum += st.top();
st.pop();
}
}
제가 초반에 쓴 풀인데... 이상하게 for문이 st.size()만큼 돌면 정답이 나와야 하는데, 이상하게 st.size()-1만큼만 돌더라구요
st.size()+1만큼 돌리니 예제 케이스가 잘 출력되던데.. 이건 왜 이런걸까요? (물론 이것도 예제 케이스는 출력이 잘되는데 틀렸다고 나오더라고요..)