https://www.acmicpc.net/problem/1427
난이도는 실버5 로 측정되어 있지만 자바에서 제공하는 라이브러리를 활용하면 아주 쉬운 문제이다.
전체 코드
입력은 Scanner로 받았으며,
입력된 n이라는 숫자의 길이를 쉽게 알아내기 위해 String으로 받았습니다.
n의 길이만큼의 Integer 배열을 만들어서
각자리의 숫자들을 하나씩 넣습니다.
그리고 Arrays.sort를 활용해 정렬하는데,
이때 두 번째 인자로 Collections.reverseOrder()를 사용해 내림차순으로 정렬해줍니다.
스캐너를 만들어줍니다.
스캐너로 입력을 받는데, String으로 입력받습니다.
Integer형 배열을 선언하고, 입력받은 n에 길이만큼 만들어 줍니다.
만들어진 배열 result만큼 반복하고,
각 배열에 항에 n을 한 개씩 대입합니다.
초기로 "12345"가 들어오면,
0번째에 1, 1번째에 2, 2번째에 3 이런식으로 들어갑니다.
- '0'을 해준 이유는
charAt()은 char 형으로 정수형으로 변환되면 아스키코드 값으로 들어가기 때문에,
- '0' 만큼에 아스키코드 값을 빼주면 숫자값이 나옵니다.
'0'이 48의 아스키코드 값이니 숫자가 1이라면 49입니다.
49 - 48 을 하게 되는 것입니다.
배열을 정렬해줍니다.
Arrays.sort(result) 만 하면 오름차순으로 정렬이 됩니다.
내림차순으로 하기 위해선 두 번째 인자에
Collections에서 제공하는 reverseOrder()를 사용해야 합니다.
이제 각 배열에 인자들을 출력해주면 됩니다.
개행이 없기 때문에 print로 출력해 줍니다.
'알고리즘 with JAVA' 카테고리의 다른 글
자바 문자열 뒤집어서 출력하기 (0) | 2021.05.30 |
---|---|
백준 1181번 단어 정렬 - 자바 스트림 활용 (0) | 2021.05.29 |
백준 11719번 그대로 출력하기 2 - 자바 (0) | 2021.05.27 |
11721번 열 개씩 끊어 출력하기 - 자바 (0) | 2021.05.23 |
백준 9012번 괄호 - 자바 (스택 활용) (0) | 2021.05.21 |