https://www.acmicpc.net/problem/1427
- 간단하지만 중요한 기본문제
해당 문제는 int 배열을 만들어 오름차순 정렬을 하면된다.
물론 int 배열을 내림차순정렬하여 거꾸로 출력하는 방법도 있지만 오름차순 정렬를 하는 법을 활용해보겠다.
- 방법 1. 오름차순 직접 구현
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
class Main{
// 소트인사이드 백준 - 1427
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int[] arr = new int[s.length()];
int idx =0;
for(char c : s.toCharArray()){
arr[idx++] = c - '0';
}
Arrays.sort(arr);
for(int i=0; i<s.length()/2; i++){
int tmp = arr[s.length()-i-1];
arr[s.length()-i-1] = arr[i];
arr[i] = tmp;
}
StringBuilder sb = new StringBuilder();
for(int n : arr){
sb.append(n);
}
System.out.println(sb);
}
}
- 방법 2. Collections.reverseOrder() 를 이용한 오름차순 구현
- Collections.reverseOrder() 는 제네릭 메서드로 설계되어 있습니다. 제네릭 메서드는 참조타입에만 적용될 수 있으며, 기본 타입에는 적용되지않습니다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
class Main{
// 소트인사이드 백준 - 1427
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
Integer[] arr = new Integer[s.length()];
int idx =0;
for(char c : s.toCharArray()){
arr[idx++] = c - '0';
}
Arrays.sort(arr, Collections.reverseOrder());
StringBuilder sb = new StringBuilder();
for(int n : arr){
sb.append(n);
}
System.out.println(sb);
}
}
'알고리즘' 카테고리의 다른 글
백준 2579 계단 오르기 [JAVA] (0) | 2024.09.30 |
---|---|
백준 3190 뱀 [JAVA] (1) | 2024.09.26 |
백준 12865 평범한 배낭 [JAVA] (0) | 2024.09.26 |
[백준] 11729 : 하노이 탑 이동 순서 (0) | 2024.09.24 |
[자바] 정규표현식 정리 (ReplcaceAll) (0) | 2024.08.18 |