728x90
이 문제의 조건은 2가지입니다.
1. 나이순으로 오름차순 정렬
2. 나이가 같으면 가입 순으로 오름차순 정렬 (가입일은 입력 순)
저는 각 회원마다 가입 순서를 지정해주고 그것들을 비교해서 입력 순 정렬을 구현하였습니다.
(문제를 풀고 생각해보니 나이순으로 정렬을 구현하면 자연스럽게 입력 순으로 정렬이 된다는 걸 깨달았습니다...)
아래는 정답 코드입니다! (보기 전에 다시 한번 생각해보세요!)
더보기
package baekjoon.level12;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class BOJ_10814 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[][] boj = new String[N][3];
for(int i=0; i<N; i++){
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
boj[i][0] = st.nextToken();
boj[i][1] = st.nextToken();
boj[i][2] = String.valueOf(i); // 가입순서
}
Arrays.sort(boj, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
if(o1[0].equals(o2[0])) {
return Integer.parseInt(o1[2]) - Integer.parseInt(o2[2]);
}else {
return Integer.parseInt(o1[0]) - Integer.parseInt(o2[0]);
}
}
});
for(String[] str : boj) {
System.out.println(str[0] + " " + str[1]);
}
}
}
728x90
'Algorithms 🚀 > Baekjoon' 카테고리의 다른 글
[백준/2576번] 홀수 - JAVA[자바] (0) | 2021.06.07 |
---|---|
[백준/1181번] 단어 정렬 - JAVA[자바] (0) | 2021.04.13 |
[백준/11650번] 좌표 정렬하기 - JAVA[자바] (0) | 2021.04.12 |
[백준/1427번] 소트인사이드 - JAVA[자바] (0) | 2021.04.12 |
[백준/8958번] OX퀴즈 (0) | 2021.02.16 |