-
백준 1427번 문제풀이 자바개발/코테문제풀이 2023. 5. 19. 12:10728x90
문제이해
문제는 그리 어렵지않았다.
최대 1,000,000,000보다 작거나 같은 자연수를 입력받고
각 자릿수를 내림차순 정렬로 출력하면된다.
아래는 풀이코드이다.
풀이코드
/* 백준 1427번 문제풀이)
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
입력)첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
출력)첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.**/package test_0519;
import java.util.Scanner;
public class test_0519_2 {public static void main(String[] args){Scanner scan = new Scanner(System.in);
//숫자 N을 입력받는다System.out.print("숫자를 입력하세요.");int N = scan.nextInt();
//카운팅 할 배열을 생성한다. 최대10자리수를 입력받을수있어, 배열의크기를 10으로 생성.int [] count = new int[10];
//반복문을 통해 ex) N=2341 이라면 [0,1,1,1,1,0,0,0,0,0] 각 숫자에 해당하는 자리가 카운팅된다while(N!=0){count[N%10]++;N/=10;}//카운팅된 배열을 내림차순정렬해주기위해 뒤에서부터출력해줘야된다. 그래서 i=9부터 시작.//for(int i=9; i>=0; i--){//count[i]-->0 count[i]값이 0보다 크면 출력하고 값을 1씩 감소시켜준다.//값--; 와 값>0; 을 합쳐놓은 형태이다while(count[i]-->0){System.out.print(i);}}}}여태까지와 달리 생소한 부분이 있다면,
count[i]-->0 이다.
while(값-- > 0)
이러한 형태로
while문에서 자주 사용하는데,
'-->'의 뜻은
값--; + 값>0;
두가지 형태를 결합했다고 생각하면 된다.
while문을 사용할 때는 항상 무한루프를 주의하자..
결과
728x90'개발 > 코테문제풀이' 카테고리의 다른 글
백준 1181번 자바 문제풀이 (0) 2023.05.20 백준 11651번 문제풀이 자바 (0) 2023.05.20 백준 19532번 문제풀이 자바 (0) 2023.05.10 백준 2231번 문제풀이 자바 (0) 2023.05.09 백준 2798번 문제풀이 자바 (0) 2023.05.08