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

정재윤님의 프로필 이미지
정재윤

작성한 질문수

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

2-G

2-G 질문입니다.

해결된 질문

작성

·

191

0

안녕하세요 강사님.

pair를 사용하지 않고 풀어보려고 했습니다.
TC는 통과하는데 틀리다고 나오네요.

피드백 가능할까요?

 

http://boj.kr/9f1f4e5b3eed497997feb57514fe3bcf

답변 1

0

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

안녕하세요 재윤님 ㅎㅎ

카운팅하는 mp, 맨첨을 나타내는 ch 다 잘짜셨는데요.

    for(int i = 0; i < n; i++) {
        if(ch.find(a[i]) == ch.end()) {
            v.push_back(a[i]);
            ch[a[i]]++;
        }
    }
    sort(v.begin(), v.end(), cmp);

이 코드를 보면요 애초에 v에는 처음 온 순서대로 담기게 됩니다.

1 1 1 2 2 2 3 3 3이라면

1, 2, 3 이렇게 담기겠죠?

그러나 갑자기 여기서 sort를 합니다.

이 sort는 카운팅을 따져서 빈도가 높은 순데로 정렬을 하죠.

자 근데 여기서

빈도가 같다면 먼저 온게 앞에 두는 로직은 어디있나요?

그래서 틀린 것 같습니다. ㅎㅎ

 

감사합니다.

정재윤님의 프로필 이미지
정재윤

작성한 질문수

질문하기