인프런 커뮤니티 질문&답변

이상목님의 프로필 이미지
이상목

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-G

도저히 반례를 모르겠습니다..ㅜ.ㅜ

작성

·

289

0

안녕하세요 선생님

제가 2910 예제는 다 맞는데, 3%에서 틀렸다고 뜹니다ㅜㅜ

혹시 이유를 알 수 있을까요?ㅠㅠㅠ

http://boj.kr/c1d9d1181254481589bb015bcf98568e

감사합니다

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 상목님 ㅎㅎ

코드의 로직 자체는 괜찮은데요.

(다만, 중간에 reverse를 넣으시면 새로운 vvvv를 쓰지 않고도 할 수 있겠죠? )

음 일단 이 코드는 unordered_set이 들어오는 순서 반대로 저장한다. 즉, 1, 2, 3이 들어오면 3, 2, 1이렇게 저장한다는 것을 가정하고 구축된 코드인 거 같습니다.

unordered_set<long long int> st;

그러나 unordered_set은 정렬되지 않은 성질을 가집니다. 데이터를 저장하는 순서가 지정되지 않습니다.

즉, 2 3 1 이렇게 들어오면 1, 3, 2로 들어오는 것은 보장되지 않습니다.

그렇기 때문에 틀린 거 같습니다.

 

제 생각에는 상목님이 어떤 블로그가 unordered_set이 들어오는 순서대로 정렬된다고 써놨던데 그걸 보시고 착각하신거 같아요.

그 블로그는 틀린 블로그구요..

제 교안에는 "정렬되지 않는다"고 명시되어 있으며 좋은 링크 하나 남깁니다. 참고해주세요 ㅎㅎ

https://www.geeksforgeeks.org/unordered_set-in-cpp-stl/

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

이상목님의 프로필 이미지
이상목

작성한 질문수

질문하기