백준 1427번 소트인사이드 - 자바

728x90

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

 


난이도는 실버5 로 측정되어 있지만 자바에서 제공하는 라이브러리를 활용하면 아주 쉬운 문제이다.

 


전체 코드

etc-image-0

입력은 Scanner로 받았으며,

입력된 n이라는 숫자의 길이를 쉽게 알아내기 위해 String으로 받았습니다.

n의 길이만큼의 Integer 배열을 만들어서

각자리의 숫자들을 하나씩 넣습니다.

그리고 Arrays.sort를 활용해 정렬하는데,

이때 두 번째 인자로 Collections.reverseOrder()를 사용해 내림차순으로 정렬해줍니다.


etc-image-1

스캐너를 만들어줍니다.

스캐너로 입력을 받는데, String으로 입력받습니다.

Integer형 배열을 선언하고, 입력받은 n에 길이만큼 만들어 줍니다.


etc-image-2

만들어진 배열 result만큼 반복하고,

각 배열에 항에 n을 한 개씩 대입합니다.

초기로 "12345"가 들어오면,

0번째에 1, 1번째에 2, 2번째에 3 이런식으로 들어갑니다.

- '0'을 해준 이유는

charAt()은 char 형으로 정수형으로 변환되면 아스키코드 값으로 들어가기 때문에,

- '0' 만큼에 아스키코드 값을 빼주면 숫자값이 나옵니다.


etc-image-3

'0'이 48의 아스키코드 값이니 숫자가 1이라면 49입니다.

49 - 48 을 하게 되는 것입니다.


etc-image-4

배열을 정렬해줍니다.

Arrays.sort(result) 만 하면 오름차순으로 정렬이 됩니다.

내림차순으로 하기 위해선 두 번째 인자에

Collections에서 제공하는 reverseOrder()를 사용해야 합니다.


etc-image-5

이제 각 배열에 인자들을 출력해주면 됩니다.

개행이 없기 때문에 print로 출력해 줍니다.

반응형