반응형
분류: 정렬
▶문제
▶코드1
아스키코드를 사용해서 풀었다.
크기가 10인 cnt배열을 만들고 s.charAt()으로 char-48인 인덱스에 +1
( 문자 0~9 는 아스키코드값 48~59 )
그리고 cnt배열을 거꾸로 돌면서
카운트값만큼 인덱스값을 출력,,
//백준알고리즘 제출시 클래스 이름은 Main으로 바꿔야 됨
package sort;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class p1427 {
//소트인사이드
public static void main(String[] args) {
try(
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));){
int[] cnt = new int[10];//아스키코드 60~71 -> 문자 0~9
String s = br.readLine();
for(int i=0; i<s.length(); i++) {
cnt[s.charAt(i)-48] +=1;
}
for(int j=9; j>=0; j--){
for(int k=0; k<cnt[j]; k++) {
bw.write(String.valueOf(j));
}
}bw.flush();
}catch(Exception e) {e.printStackTrace();}
}
}
채점결과
▶코드2
arrays.sort() 사용
package sort;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;
public class p1427_1 {
public static void main(String[] args) {
try( BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));){
String s = br.readLine();
int[] arr = new int[s.length()];
for(int i=0; i<s.length(); i++) {
arr[i]=s.charAt(i)-48;
}
Arrays.sort(arr);
for(int i=s.length()-1; i>=0; i--) {
bw.write(String.valueOf(arr[i]));
}bw.flush();
}catch(Exception e) {e.printStackTrace();}
}
}
채점결과
▶코드3
//
링크 www.acmicpc.net/problem/1427
1427번: 소트인사이드
첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
반응형
'백준알고리즘' 카테고리의 다른 글
백준알고리즘:p1181 단어정렬 (0) | 2021.04.07 |
---|---|
백준알고리즘:p11650, p11651 좌표 정렬하기 (0) | 2021.04.06 |
백준알고리즘:p2108 통계학 (0) | 2021.04.05 |
백준알고리즘:p1002 터렛 (0) | 2021.04.04 |
백준알고리즘:p3053 택시 기하학 (0) | 2021.04.02 |
댓글