문제링크
https://www.acmicpc.net/problem/10814
클래스를 사용하여 Comparable 인터페이스를 사용하여 정렬기준을 따로 주었다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
static class Node implements Comparable<Node>{
String name;
int age;
int sequence;
public Node(String name, int age,int sequence) {
this.name = name;
this.age = age;
this.sequence = sequence;
}
@Override
public int compareTo(Node o) {
if(this.age == o.age){
return this.sequence- o.sequence;
}
return this.age-o.age;
}
}
|
cs |
정렬 기준이 나이가 어린순, 나이가 같을 시 먼저 가입한 순서대로라서
age비교 시 age가 같으면 sequence(가입 순서) 순대로 아니면 나이 순대로 정렬할 수 있도록 해주었다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package BOJ;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main_10814 {
static int N;
static Node[] node;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
node = new Node[N];
for(int i=0;i<N;i++){
StringTokenizer st = new StringTokenizer(br.readLine());
int age = Integer.parseInt(st.nextToken());
String name = st.nextToken();
node[i] = new Node(name,age,i);
}
Arrays.sort(node);
for(int i=0;i<N;i++){
System.out.println(node[i].age+" "+node[i].name);
}
}
static class Node implements Comparable<Node>{
String name;
int age;
int sequence;
public Node(String name, int age,int sequence) {
this.name = name;
this.age = age;
this.sequence = sequence;
}
@Override
public int compareTo(Node o) {
if(this.age == o.age){
return this.sequence- o.sequence;
}
return this.age-o.age;
}
}
}
|
cs |
'알고리즘 > 백준' 카테고리의 다른 글
[JAVA]백준_10773_제로 (0) | 2021.06.24 |
---|---|
[JAVA] 백준_2468_안전영역 (0) | 2021.06.24 |
[JAVA]백준_14425_문자열집합 (0) | 2021.06.23 |
[JAVA]백준_20053_최소,최대2 (0) | 2021.06.23 |
[JAVA]백준_9421_소수상근수 (0) | 2021.06.23 |