https://www.acmicpc.net/submit/10825/47897474
로그인
www.acmicpc.net
정리
어려운 문제는 아니고 자꾸 까먹는 것들 정리하기 위해 씀.
1. 정렬 조건 구현
문제에서 주어진 정렬 조건이 다음과 같다.
- 국어 점수가 감소하는 순서로
- 국어 점수가 같으면 영어 점수가 증가하는 순서로
- 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로
- 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키 코드에서 대문자는 소문자보다 작으므로 사전순으로 앞에 온다.)
다음과 같이 구현하면 깔끔하다.
class Person implements Comparable<Person>{
String name;
int kor;
int eng;
int math;
public Person(String name,int kor, int eng, int math) {
this.name=name;
this.kor=kor;
this.eng=eng;
this.math=math;
}
@Override
public int compareTo(Person o) {
if(this.kor>o.kor) return -1;
if(this.kor<o.kor) return 1;
if(this.eng>o.eng) return 1;
if(this.eng<o.eng) return -1;
if(this.math>o.math) return -1;
if(this.math<o.math) return 1;
return this.name.compareTo(o.name);
}
}
2. 문자열 사전순 비교
String.compareTo() 함수 사용
'백준' 카테고리의 다른 글
이런저런 문제들 #11652: 카드 [JAVA] (0) | 2023.06.16 |
---|---|
DP #11053: 가장 긴 증가하는 부분 수열 [JAVA] (0) | 2023.06.14 |
이런저런 문제들 #10814: 나이순 정렬 [JAVA] (0) | 2023.06.11 |
이런저런 문제들 #11650: 좌표 정렬하기 [JAVA] (0) | 2023.06.11 |
이런저런 문제들 #2751: 수 정렬하기 2 [JAVA] (0) | 2023.06.08 |