백준 10814 : 나이순 정렬

혀니앤·2021년 3월 3일
0

C++ 알고리즘

목록 보기
28/118

★★★☆☆

기본 알고리즘은 단순하지만, 코딩이 어려웠다.
sort 정렬에 대한 이해가 부족하다는 것을 느꼈다.

<나의 풀이>

Location class를 생성하고, 그 안에 age, name 값을 설정한다.
compare 정렬 함수에 return true를 사용했다가 invaild comparator 에러 발생
=> stable_sort 함수를 사용하고, return true문 삭제

string 값을 포함하는 클래스를 compare 함수에 삽입하였다가
const 타입을 Compare & 타입으로 바꿀 수 없다는 에러 발생
=> compare 함수의 인자를 const Compare &a 타입으로 변경

https://github.com/jeongopo/DaliyCodeCpp/commit/a16fa40d06b59478cf5757ddc8b96510c4cf92a0

<다른 사람의 풀이 1(코테용 추천)>

class를 생성하지 않고,
pair를 사용하여 간단하게 코드를 짤 수 있다.

그러나 이 경우에도, invaild comparator 에러가 생길 수 있으므로
stable_sort를 사용해야 한다.

https://code-kh-studio.tistory.com/60
https://ldgeao99.tistory.com/341

<다른 사람의 풀이 2>

class에 int index 변수를 추가하여 compare 조건식에서 활용한다.
가장 간단하게 해결할 수 있지만, int size * n 개만큼의 데이터 낭비가 있을 수 있다는 점이 단점

참고

invalid comparator
https://hanbi97.tistory.com/164

pair 라이브러리 추천글
https://m.blog.naver.com/ndb796/221228004692

profile
일단 시작하기

0개의 댓글