티스토리 뷰
생각
Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q2000/Q2231.java N이 주어졌을 때 N을 만들 수 있는 M의 최소값을 출력하여라. 없다면 0을 출력하여라 만드는 법은 M의 각자리 수의 숫자 +M이다. 123 이라면 123+1+2+3 을 N으로 주어진다.
처음 생각
각 자리수의 숫자를 더해야하므로 String으로 각 index를 뽑아오면 좋겠다고 생각하였다. N을 만들 수 있는 M의 최소값을 출력해야하기 때문에 1부터 N-1까지 반복문을 돌렸다.
다음 생각
반복문을 돌다 해당하는 수가 있다면 그 수를 출력한 후, return을 통해 메인 메소드를 종료시켰다. 없을 경우 즉, 반복문이 다 돌았다면 0을 출력하고 끝낸다.
방안
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package baekjoon.q2000; import java.util.Scanner; public class Q2231 { static int n; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); // 최소를 출력해야 하므로 모든 1부터 모든 경우수를 봐보자 for(int i=1;i<n;i++) { if(n==solve(String.valueOf(i))) { // 있다면 해당 수 출력 후 종료 System.out.println(i); return; } } // 없다면 0 출력 System.out.println(0); } private static int solve(String num) { int len = num.length(); // 원래수 더하기 int sum = Integer.parseInt(num); // 각 자리수 숫자 더하기 for(int i=0;i<len;i++) sum += num.charAt(i)-'0'; return sum; } } |
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 10448번 유레카 이론 (0) | 2018.10.20 |
---|---|
[백준] 3085번 사탕 게임 (0) | 2018.10.20 |
[백준] 13460번 구슬 탈출2 (4) | 2018.10.20 |
[백준] 15683번 감시 (2) | 2018.10.19 |
[백준] 12100번 2048 (Easy) (0) | 2018.10.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday