본문 바로가기
백준알고리즘

백준알고리즘:p1427 소트인사이드

by socialcomputer 2021. 4. 6.

분류: 정렬

 

문제

 

 

코드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

 

댓글