17140번 - 이차원 배열과 연산
코드랑 로직은 대부분 비슷할것 이라고 생각이 들어 모르는 부분의 코드만 올리겠습니다
처음에는 벡터에 넣을 때 <숫자,등장 횟수> 이렇게 넣어서 sort(v.begin(),v.end(),cmp)를 이용하였는데 틀렸습니다
그래서 <등장횟수,숫자> 이렇게 넣고 sort(v.begin(),v.end()) 이렇게 하니깐 통과되었습니다
궁금한 것은 구현한 cmp 함수가 어디가 틀린지를 모르겠습니다
else를 안써준 이유는 first 즉 처음에 구현하였던 <숫자,등장횟수> 에서 숫자가 같을리는 없고
또한 등장횟수가 다른 경우가 존재한다면 당연히 숫자가 다르기때문에 if문에서 걸러질것으로 판단이 되어 쓰지않았습니다
cmp에서 어느부분이 틀렸는지를 가르쳐주세요..
말씀하신데로 " <숫자,등장횟수> 에서 숫자가 같을리는 없고 " 라면
if (a.first != b.first) 는 항상 참이 되는거 아닌가요?
그러면 cmp 는 return a.second < b.second; 가 결과가 될테니
cmp( {1, 2}, {5,2}) 는 false 가 될 것 같습니다.
결국 아래와 같이 cmp 가 되어야 하지 않을까요?
와 대박 정말 소름돋게 저랑 똑같습니다...
한참 헤매다가 답변 해주신것처럼 compare 함수 바꾸니까 맞네요
감사합니다 ㅠㅠㅠㅠㅠㅠ
저도 헤매다가 이거 보고 맞췄습니다 감사합니다 행님
sort 디폴트가 내림차순인걸 왜 생각도 못했을까요...
감사합니다!
cmp 함수 고쳐서 맞았습니다.
감사합니다ㅠㅠ 덕분에 고쳐서 맞았습니다
댓글을 작성하려면 로그인해야 합니다.
o3oppp 4년 전
코드랑 로직은 대부분 비슷할것 이라고 생각이 들어 모르는 부분의 코드만 올리겠습니다
처음에는 벡터에 넣을 때 <숫자,등장 횟수> 이렇게 넣어서 sort(v.begin(),v.end(),cmp)를 이용하였는데 틀렸습니다
그래서 <등장횟수,숫자> 이렇게 넣고 sort(v.begin(),v.end()) 이렇게 하니깐 통과되었습니다
궁금한 것은 구현한 cmp 함수가 어디가 틀린지를 모르겠습니다
else를 안써준 이유는 first 즉 처음에 구현하였던 <숫자,등장횟수> 에서 숫자가 같을리는 없고
또한 등장횟수가 다른 경우가 존재한다면 당연히 숫자가 다르기때문에 if문에서 걸러질것으로 판단이 되어 쓰지않았습니다
cmp에서 어느부분이 틀렸는지를 가르쳐주세요..