๋ฌธ์
ํด๋น ํฌ์คํ ์ ๋ฐฑ์ค์ 10814๋ฒ ๋์ด์ ์ ๋ ฌ ์ ์ ๊ทผ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ๊ธ ์ ๋๋ค.
์ ๋ต ์์ค ์ฝ๋๋ฅผ ํ์ธํ์๋ ค๋ฉด solve url ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผํด์ผ ํ๋์ง๋ฅผ ๋จผ์ ์๊ฐํด๋ณด์.
ํด๊ฒฐ๋ฒ
์ด๋ฒ ๋ฌธ์ ๋ ์ ๋ ฌ ๊ธฐ์ค ์ฌ์ ์์ ๊ดํ ๋ฌธ์ ์ด๋ค.
์ด ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์๋ ์๋ฐ์ Comparator์ ์์์ผ ํ๋ค.
๋ง์ฝ Comparator
๊ณผ Comparable
์ ๋ํด์ ์์ง ๋ชปํ๋ค๋ฉด Java์์ Comparator๋ก ์ ๋ ฌ ๊ธฐ์ค ๋ฐ๊พธ๊ธฐ์์ ํ์ธํ ์ ์๋ค.
์ ๊ทผ๋ฒ
์ด ๋ฌธ์ ์์ ํต์ฌ์ ๋จผ์ ๊ฐ์ ํ ์ฌ๋์ด ์์ ์ค๋ ์์์ด๋ค.
๊ทธ๋ฅ Comparator์ ์ฌ์ ์ ํ๋ค๋ฉด ๋์ด์ ์ ๋ ฌ์ ๊ฐ๋ฅํ์ง๋ง ๋จผ์ ๊ฐ์
ํ ์ฌ๋์ด ๋ค์์์นํ ์๋ ์๋ค.
๊ทธ๋์ ๊ฐ์
ํ ์ฌ๋๋ค์๊ฒ ๊ฐ๊ฐ์ id๋ฅผ ๋ถ์ฌํ๊ณ ํด๋น id๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋ฒ์งธ ์ ๋ ฌ์ ์ํํด์ฃผ๋ฉด ๋๋ค.
์ ๋ต ์ฝ๋
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
Member[] members = new Member[n];
for(int i = 0; i < n; i++){
String[] ageAndName = br.readLine().split(" ");
members[i] = new Member(Integer.parseInt(ageAndName[0]), i, ageAndName[1]);
}
Comparator<Member> myComparator = new Comparator<>() {
@Override
public int compare(Member m1, Member m2) {
if(m1.age > m2.age) {
return 1;
} else if(m1.age == m2.age) {
if(m1.id > m2.id) {
return 1;
}else -1;
} else return -1;
}
};
Arrays.sort(members, myComparator);
for(int i = 0; i < n; i ++) {
bw.write(members[i].age + " " + members[i].name + "\n");
}
bw.flush();
bw.close();
}
}
class Member {
int age;
int id;
String name;
Member(int age, int id, String name) {
this.age = age;
this.id = id;
this.name = name;
}
}
ํ๊ณ
๋๊ธ