o3oppp   4년 전

코드랑 로직은 대부분 비슷할것 이라고 생각이 들어 모르는 부분의 코드만 올리겠습니다

처음에는 벡터에 넣을 때 <숫자,등장 횟수> 이렇게 넣어서  sort(v.begin(),v.end(),cmp)를 이용하였는데 틀렸습니다

그래서 <등장횟수,숫자> 이렇게 넣고 sort(v.begin(),v.end()) 이렇게 하니깐 통과되었습니다

궁금한 것은 구현한 cmp 함수가 어디가 틀린지를 모르겠습니다

else를 안써준 이유는 first 즉 처음에 구현하였던 <숫자,등장횟수> 에서 숫자가 같을리는 없고 

또한 등장횟수가 다른 경우가 존재한다면 당연히 숫자가 다르기때문에 if문에서 걸러질것으로 판단이 되어 쓰지않았습니다

cmp에서 어느부분이 틀렸는지를 가르쳐주세요..

seico75   4년 전

말씀하신데로 "  <숫자,등장횟수> 에서 숫자가 같을리는 없고 " 라면

if (a.first != b.first) 는 항상 참이 되는거 아닌가요?

그러면 cmp 는 return a.second < b.second; 가 결과가 될테니

cmp( {1, 2}, {5,2}) 는 false 가 될 것 같습니다.

결국 아래와 같이 cmp 가 되어야 하지 않을까요?

tlatldms   4년 전

와 대박 정말 소름돋게 저랑 똑같습니다...

한참 헤매다가 답변 해주신것처럼 compare 함수 바꾸니까 맞네요

감사합니다 ㅠㅠㅠㅠㅠㅠ


yoon1fe   4년 전

저도 헤매다가 이거 보고 맞췄습니다 감사합니다 행님

sort 디폴트가 내림차순인걸 왜 생각도 못했을까요...

hyuckang   3년 전

감사합니다!

cmp 함수 고쳐서 맞았습니다.

polpack12   3년 전

감사합니다ㅠㅠ 덕분에 고쳐서 맞았습니다

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