문제
호석이는 불면증에 걸렸다. 그래서 잠이 안 올 때의 민간요법 중 하나인 양 세기를 하려고 한다.
호석이는 1번 양부터 순서대로 세는 것이 재미없을 것 같아서 N의 배수 번호인 양을 세기로 하였다.
즉, 첫 번째에는 N번 양을 세고, 두 번째에는 2N번 양, … , k번째에는 kN번 양을 센다.
이렇게 숫자를 세던 호석이에게 잠은 더 오지 않고 다음과 같은 궁금증이 생겼다.
이전에 셌던 번호들의 각 자리수에서 0에서 9까지의 모든 숫자를 보는 것은 최소 몇 번 양을 센 시점일까?
예를 들어 N = 1295이라고 하자.
첫 번째로 N = 1295번 양을 센다. 현재 본 숫자는 1, 2, 5, 9이다.
두 번째로 2N = 2590번 양을 센다. 현재 본 숫자는 0, 2, 5, 9이다.
현재까지 본 숫자는 0, 1, 2, 5, 9이다.
세 번째로 3N = 3885번 양을 센다. 현재 본 숫자는 3, 5, 8이다.
현재까지 본 숫자는 0, 1, 2, 3, 5, 8, 9이다.
네 번째로 4N = 5180번 양을 센다. 현재 본 숫자는 0, 1, 5, 8이다.
현재까지 본 숫자는 0, 1, 2, 3, 5, 8, 9이다.
다섯 번째로 5N = 6475번 양을 센다. 현재 본 숫자는 4, 5, 6, 7이다.
현재까지 본 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9이다.
5N번 양을 세면 0에서 9까지 모든 숫자를 보게 되므로 호석이는 양 세기를 멈춘다.
입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 N (1 ≤ N ≤ 106)이 주어진다.
5 1 2 11 1295 1692 |
출력
각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고,
최소 몇 번 양을 세었을 때 이전에 봤던 숫자들의 자릿수에서 0에서 9까지의 모든 숫자를 보게 되는지 출력한다.
( 호석이는 xN번 양을 세고 있다. )
#1 10 #2 90 #3 110 #4 6475 #5 5076 |
코드
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 33 34 35 36 37 38 39 40 | import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); for(int i=0; i<t; i++){ boolean[] checkNum = new boolean[10]; int n = sc.nextInt(); int cnt = findCnt(checkNum,n); System.out.printf("#%d %d\n",i+1,cnt*n); } } private static int findCnt(boolean[] checkNum,int n){ int cnt = 1; while(true){ //숫자 하나씩 받기 String[] numArr = Integer.toString(n * cnt).split(""); //숫자 넣고 체크하기 for(int i=0; i<numArr.length; i++){ int digit = Integer.parseInt(numArr[i]); checkNum[digit] = true; } //다 넣었는지 확인 if(allDigitChecked(checkNum)) break; cnt++; } return cnt; } private static boolean allDigitChecked(boolean[] checkNum){ for(int i=0; i<checkNum.length; i++){ if(!checkNum[i]) return false; } return true; } } | cs |
'SW expert Academy > D2' 카테고리의 다른 글
[SW Expert Academy] 1204번 최빈수 구하기 (0) | 2023.05.17 |
---|---|
[SW Expert Academy] 1284번 수도 요금 경쟁 (0) | 2023.05.17 |
[SW Expert Academy] 1928번 Base64 Decoder 변형 문제 (0) | 2023.05.17 |
[SW Expert Academy] 1928번 Base64 Decoder (0) | 2023.05.12 |
[SW Expert Academy] 1940번 가랏! RC카! (0) | 2023.05.12 |