728x90
반응형
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// 단어 정렬 문제~!
int N = Integer.parseInt(br.readLine());
String[][] str = new String[N][3];
StringTokenizer st;
for(int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine());
str[i][0] = st.nextToken();
str[i][1] = st.nextToken();
str[i][2] = Integer.toString(i);
// 저장 완료
// System.out.println("str = " + str[i][0]);
// System.out.println("str = " + str[i][1]);
// System.out.println("str = " + str[i][2]);
}
Arrays.sort(str, (e1, e2)->{
if(e1[0].equals(e2[0])) {
// compare 로 하면 안되고 parseInt 로 고쳐서 해야했다.
return Integer.parseInt(e1[2])-Integer.parseInt(e2[2]);
}
else {
return Integer.parseInt(e1[0])-Integer.parseInt(e2[0]);
}
});
for(int i=0; i<N; i++) {
sb.append(str[i][0]+" "+str[i][1]).append('\n');
}
System.out.println(sb);
}
}
오늘 포인트로 했던것
- 정렬의 순서 : 나이 순 ---> 가입한 순
--- 따라서 가입한 순으로는 입력 순으로 하기 때문에 i 로 파싱해서 넣었다.
- 나이 순/가입한 순 모두 String 이므로 parseInt 를 통해서 정렬 비교 함수 완성.. String.compareTo 로 하면 안된다.
728x90
반응형
'이유's STUDY > 알고리즘 문제풀이' 카테고리의 다른 글
[ 백준 ] 별찍기 -10 -- Java 이용 (0) | 2021.07.30 |
---|---|
[ 백준 ] 10872- 팩토리얼 (0) | 2021.07.29 |
[ 백준 ] 1181 - 단어 정렬 / Java 이용 (0) | 2021.07.27 |
[ 백준 ] 11651- 좌표 정렬하기 2 (0) | 2021.07.27 |
[ 백준 ] 11650 - 좌표 정렬하기, Java 이용 (0) | 2021.07.27 |