728x90
반응형
문제: https://www.acmicpc.net/problem/1427
문제 접근
문제를 보자마자(?) 리스트에 넣고 Collections.sort() 사용해야 겠다고 생각했습니다
- 리스트 생성 (Character형이든, Integer형이든 상관없음)
- input값을 charAt()으로 하나씩 리스트에 넣음
- Collections.sort() 로 정렬
전체 코드
1) 리스트를 Integer로 생성한 경우
import java.io.*;
import java.util.*;
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));
String input = br.readLine();
List<Integer> list = new ArrayList<>();
for(int i = 0; i < input.length(); i++) {
list.add(input.charAt(i) - '0');
}
Collections.sort(list, Collections.reverseOrder());
for(int i : list) bw.write(i + "");
bw.close();
}
}
2) 리스트를 Character형으로 생성한 경우
import java.util.*;
import java.io.*;
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));
String input = br.readLine();
List<Character> list = new ArrayList<>();
for(int i = 0; i < input.length(); i++) {
list.add(input.charAt(i));
}
Collections.sort(list, Collections.reverseOrder());
for(Character c : list) {
bw.write(c + "");
}
bw.close();
}
}
블로그를 쓰기 전에 잘 이해했는지 확인해볼라고 다시 풀어봤습니다 저는!
그런데 코드 자체는 많이 달라진게 없지만 첫 번째 풀었을 때는 Integer형으로, 두 번째 풀었을 때는 Character형으로 풀어서.. 저의 마음이 신기해서 2가지 버전으로 코드를 가져왔습니다 ㅎㅋ
자바 리스트 정렬 (내림차순)
저번 글에서도 리스트 정렬에 대해 설명했는데, 내림차순으로 정렬한 건 언급 안했더라구요!
내림차순으로 정렬할 때는 다음과 같이 사용합니다.
Collections.sort(list, Comparator.reverseOrder());
- Comparator.reverseOrder(): 기본 정렬 기준의 역순을 만들어주는 정렬 기준
- String은 사전순, Integer는 숫자의 오름차순으로 정렬한다.
이번 글도 읽어주셔서 감사합니다.
728x90
반응형
'Java > 코딩테스트' 카테고리의 다른 글
[백준] 9012번: 괄호 (JAVA) (1) | 2025.04.16 |
---|---|
[백준] 8958번: OX퀴즈 (JAVA) (1) | 2025.04.13 |
[백준] 1181번: 단어 정렬 (JAVA) (1) | 2025.04.10 |
[백준] 2292번: 벌집 (JAVA) (0) | 2025.04.03 |
[백준] 2903번: 중앙 이동 알고리즘 (JAVA) (0) | 2025.04.03 |