1021번 - 회전하는 큐
안녕하세요, PS를 막 시작한 초보 중의 초보입니다.
이 질문은 어쩌면 아주 기초적인 질문일지도 모르겠습니다.
질문 게시판에서 해당 문제에 대한 반례들을 찾은 뒤, 아래 케이스로 테스트해 보았습니다.
10 10
4 9 1 7 2 3 10 6 8 5
이걸 그대로 devcpp에 입력하고 실행시켜 보았더니 결과가 정답인 15로 잘 나왔습니다.
(devcpp 컴파일러는 C++14를 사용하고 있습니다.)
하지만 온라인 컴파일러 사이트인 ideone.com에서는 같은 코드에서 다른 결과가 나옵니다.
(마찬가지로 C++14를 선택하고 컴파일했습니다.)
https://ideone.com/eG3YEx
같은 코드임에도 불구하고 이처럼 결과가 달라지는 이유를 잘 모르겠습니다.
코드 전문을 아래에 첨부합니다.
왜 틀렸는지 대강 실마리를 잡았습니다!
리스트의 멤버 함수 중 end()를 그대로 대입해서 사용해서 그런 것 같습니다.
end()는 맨 마지막 원소 다음 자리를 가리킨다는 것을 잊고 있었습니다.
그럴 수 있다고 생각해서 연산자로 하나 줄여봐도 똑같네요.
왜인지는 모르겠지만 list 대신 deque 쓰면 15가 제대로 출력되네요.
그리고 cin.tie, sycn_with_stdio 해제하시고 printf등 사용하시면 안됩니다.
위 코드에서 아래 부분으로 수정하여 제출했더니 맞았습니다.
cin.tie, sync_with_stdio는 예전에 누가 말해준 기억으로 아무 생각 없이 추가하고 있던 것인데 알려주셔서 감사합니다.
deque는 아직 공부하지 않아서 사용하지 않았습니다만 한번 해보도록 하겠습니다.
빠른 질문 답변 감사드립니다.
https://www.acmicpc.net/board/view/8074
이 글 보시면 cin.tie, sync_with_stdio 부분은 충분할 것 같습니다.
댓글을 작성하려면 로그인해야 합니다.
alexroh 3년 전
안녕하세요, PS를 막 시작한 초보 중의 초보입니다.
이 질문은 어쩌면 아주 기초적인 질문일지도 모르겠습니다.
질문 게시판에서 해당 문제에 대한 반례들을 찾은 뒤, 아래 케이스로 테스트해 보았습니다.
10 10
4 9 1 7 2 3 10 6 8 5
이걸 그대로 devcpp에 입력하고 실행시켜 보았더니 결과가 정답인 15로 잘 나왔습니다.
(devcpp 컴파일러는 C++14를 사용하고 있습니다.)
하지만 온라인 컴파일러 사이트인 ideone.com에서는 같은 코드에서 다른 결과가 나옵니다.
(마찬가지로 C++14를 선택하고 컴파일했습니다.)
https://ideone.com/eG3YEx
같은 코드임에도 불구하고 이처럼 결과가 달라지는 이유를 잘 모르겠습니다.
코드 전문을 아래에 첨부합니다.