츄르사려고 코딩하는 코집사입니다.
1. [SW expert Academy] SWEA 1288번 새로운 불면증 치료법 자바(Java)
1) 난이도 : D2
2) 문제번호 : 1288번
3) 문제 출처
2. 문제
민석이는 불면증에 걸렸다. 그래서 잠이 안 올 때의 민간요법 중 하나인 양 세기를 하려고 한다.
민석이는 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까지 모든 숫자를 보게 되므로 민석이는 양 세기를 멈춘다.
3. 제약사항
-
4. 입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 N (1 ≤ N ≤ 106)이 주어진다.
5. 출력
각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고,
최소 몇 번 양을 세었을 때 이전에 봤던 숫자들의 자릿수에서 0에서 9까지의 모든 숫자를 보게 되는지 출력한다.
( 민석이는 xN번 양을 세고 있다. )
6. 풀이
- boolean형 배열을 선언해서 값을 subString하고 그 값이 있으면 true 선언
- 배열 체크하여 다 있으면 출력
7. 소스 코드
import java.util.*;
import javax.print.attribute.IntegerSyntax;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//테스트 케이스 개수 입력
int T = sc.nextInt();
for(int tc=1;tc<=T;tc++) {
//정수형과 문자형으로 저장
String A = sc.next();
int N = Integer.parseInt(A);
//확인 배열
boolean[] arr = new boolean[10];
//곱해주는 변수
int num = 1;
//확인 배열에 값이 있으면 cnt 1씩 증가
int cnt = 0;
while(true) {
//값이 있는 경우 인덱스 위치 배열 1씩 증가
for(int i=0;i<A.length();i++) {
int temp = Integer.parseInt(A.substring(i, i+1));
if(arr[temp]==false) {
arr[temp]=true;
cnt++;
}
}
if(cnt==10) break;
else {
num++;
A = Integer.toString(num*N);
}
}
System.out.printf("#%d %s\n",tc, A);
}
}
}
'알고리즘 > SW expert Academy' 카테고리의 다른 글
[SW expert Academy] SWEA 1959번 두 개의 숫자열 자바(Java) (0) | 2021.02.05 |
---|---|
[SW expert Academy] SWEA 1989번 초심자의 회문 검사 자바(Java) (0) | 2021.02.05 |
[SW expert Academy] SWEA 1948번 날짜 계산기 자바(Java) (0) | 2021.02.05 |
[SW expert Academy] SWEA 2007번 패턴 마디의 길이 자바(Java) (2) | 2021.02.05 |
[SW expert Academy] SWEA 3499번 퍼펙트 셔플 자바(Java) (0) | 2021.02.05 |
[SW expert Academy] SWEA 1225번 암호생성기 자바(Java) (0) | 2021.02.04 |
[SW expert Academy] SWEA 5432번 쇠막대기 자르기 자바(Java) (0) | 2021.02.04 |
[SW expert Academy] SWEA 1218번 괄호 짝짓기 자바(Java) (0) | 2021.02.04 |
최근댓글