11652번 - 카드
추가로 정렬을 두 번 이상 적용하여 정렬의 우선순위를 정하는 것은 정렬이 안정적(stable)인 경우에만 사용할 수 있습니다.
정렬이 안정적이지 않을 경우(unstable) 아래 풀이와 같이 한 번의 정렬로 정렬 우선순위를 구현할 수 있습니다.
[풀이] https://www.acmicpc.net/source...
안정/불안정 정렬은 아래 글을 읽어보시면 좋을 것 같습니다.
[Stable Sort, Unstable Sort] https://mindock.github.io/algo...
감사합니다.
이 코드는 뭐가 문제일까요?
한번의 정렬에서 value가 같으면 key가 작은 순서대로
value가 다르면 큰 순서대로 정렬 하고 있습니다!
자바에서 객체를 대상으로 한 ==, < 등의 연산자는 객체의 값을 기준으로 비교하는 것이 아닌 객체의 주솟값을 비교합니다.
따라서 객체끼리 비교 시에는 equals나 compareTo를 사용하셔야 합니다.
와 정말 감사합니다 지식의 밑천이 많이 드러난 풀이였네요
자바에서의 == 은 객체의 주솟값을 비교
문자열 equals()는 오버라이딩을 통해서 문자열 비교가 가능
기본 타입의 값들은 == 비교가 가능하지만
참조 타입의 값들은 compareTo를 사용 한다는 것까지 많이 배워 갑니다 ᄒᄒ
+ (getKey() - getKey() == 0) 객체의 값 - 객체의 값 == 0 을 비교하는 방식도 괜찮겠네요
댓글을 작성하려면 로그인해야 합니다.
zeus20240228 1년 전 1
첫 번째 코드는 key가 작은순으로 정렬을 하고 Value가 큰 순서대로 정렬
두 번째 코드는 Value가 큰 순서대로 정렬을 하고 key가 작은순서로 정렬
왜 첫 번째 코드는 통과하는데 두 번째 코드는 틀릴까요?