본문 바로가기
공부하자/알고리즘

[백준] 1427번 소트인사이드 C, java

by snbrin 2022. 2. 24.

https://www.acmicpc.net/problem/1427

 

1427번: 소트인사이드

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {

	char temp;
	char n[11];
	//공백이 없는 정수를 자리수마다 비교해야하므로
	// 배열에 정수의 자리수 하나씩 입력받아야 함

	scanf("%s", n);

	//버블정렬로 내림차순 정렬하기
	for (int i = 0; i < strlen(n)-1; i++) {
		for (int j = 0; j < strlen(n); j++) {
			//비교값 중 큰 값 찾아서 자리 변경
			if (n[j] < n[j+1]) {
				temp = n[j];
				n[j] = n[j+1];
				n[j+1] = temp;
			}
		}

	}
	//정렬된 문자열 출력
	printf("%s", n);
		
	return 0;
}

 

java

package javastd1;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;

public class bj1427 {

	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
        //아스키로 바꿈
		char[] n = br.readLine().toCharArray();
		//아스키값을 정렬
		Arrays.sort(n);
		
		for(int i = n.length-1; i>=0; i--) {
			System.out.print(n[i]);
		}
		
	}

}

toCharArray() 메소드로 BufferedReader로 받은 문자열의 각 자리를 아스키코드 값으로 변환한 뒤에 배열을 정렬한다.