import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Person[] p = new Person[N];
StringTokenizer st;
for(int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
int age = Integer.parseInt(st.nextToken());
String name = st.nextToken();
p[i] = new Person(age, name);
}
Arrays.sort(p, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.age - o2.age;
}
});
StringBuilder sb = new StringBuilder();
for(int i = 0 ; i< N ; i++) {
sb.append(p[i]);
}
System.out.println(sb);
}
public static class Person {
int age;
String name;
public Person(int age, String name) {
this.age = age;
this.name = name;
}
@Override
public String toString() {
return age + " " + name + '\n';
}
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.StringTokenizer;
import java.util.Comparator;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[][] arr = new String[N][2];
for(int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
arr[i][0] = st.nextToken(); // 나이
arr[i][1] = st.nextToken(); // 이름
}
Arrays.sort(arr, new Comparator<String[]>() {
// 나이순으로 정렬
@Override
public int compare(String[] s1, String[] s2) {
// 비교할때만 Integer로 바꾼게 key
return Integer.parseInt(s1[0]) - Integer.parseInt(s2[0]);
}
});
StringBuilder sb = new StringBuilder();
for(int i = 0; i < N; i++) {
sb.append(arr[i][0]).append(' ').append(arr[i][1]).append('\n');
}
System.out.println(sb);
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
// 입력되는 나이의 범위 : 1 ~ 200
StringBuilder[] p = new StringBuilder[201];
//객체배열의 인덱스에 각 StringBuilder 객체를 생성해준다.
for(int i = 0; i < p.length; i++) {
p[i] = new StringBuilder();
}
for(int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int age = Integer.parseInt(st.nextToken());
String name = st.nextToken();
// 카운팅 정렬 : 나이를 index 로 하여 해당 배열에 나이와 이름을 append() 한다
p[age].append(age).append(' ').append(name).append('\n');
}
StringBuilder sb = new StringBuilder();
for(StringBuilder val : p) {
sb.append(val);
}
System.out.println(sb);
}
}
StringBuilder[] 이게 가능한거였나...
객체배열의 인덱스에 각 StringBuilder 객체를 생성해준다.
카운팅 정렬 : 나이를 index 로 하여 해당 배열에 나이와 이름을 append() 한다
나이를 인덱스로 쓴것이 인상적이다.