Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코딩테스트
- java
- 카카오
- mybatis
- 마이라이트
- 일본어독학
- 스텍
- 인프런
- SWEA
- 정렬
- array
- 삼성
- 프로그래머스
- 일본어학습지
- 가벼운학습지후기
- 삼성소프트웨어아카데미
- 자료구조
- stack
- 자바스크립트
- 코테준비
- 자바
- 백준
- 코테
- 가벼운학습지
- 일본어공부
- js
- javascript
- 성인학습지
- 알고리즘
- 코딩
Archives
- Today
- Total
개발에 AtoZ까지
[JAVA][D2] 1288. 새로운 불면증 치료법 본문
반응형
문제
민석이는 불면증에 걸렸다. 그래서 잠이 안 올 때의 민간요법 중 하나인 양 세기를 하려고 한다.
민석이는 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)이 주어진다.
[출력]
각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고,
최소 몇 번 양을 세었을 때 이전에 봤던 숫자들의 자릿수에서 0에서 9까지의 모든 숫자를 보게 되는지 출력한다.
( 민석이는 xN번 양을 세고 있다. )
예시
풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Base64;
import java.util.HashSet;
import java.util.Set;
import sun.reflect.generics.tree.Tree;
public class Solution {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
int T = Integer.parseInt(br.readLine());
// 테스트케이스 반복
for (int i = 1; i <= T; i++) {
//시작하는 번호
int N = Integer.parseInt(br.readLine());
//중복이 허용되지 않는 구조체가 필요해서 set 사용
Set<String> set = new HashSet<String>();
int count=1;
int num=0;
//0~9까지의 숫자 개수
while(set.size()<10) {
num=count*N;
//count번째의 숫자를 한글자씩 나눠서 set 구조체 추가하기
String[] str = Integer.toString(num).split("");
for(String s:str) {
set.add(s);
}
count++;
}
System.out.println("#"+i+" "+num);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
반응형
'코딩테스트 준비 > SWEA' 카테고리의 다른 글
[JAVA][D2] 1204. 최빈수 구하기 (0) | 2021.01.11 |
---|---|
[JAVA][D2] 1284. 수도 요금 경쟁 (0) | 2021.01.11 |
[JAVA][D2] 1285. 아름이의 돌 던지기 (0) | 2021.01.11 |
[JAVA][D2] 1928. Base64 Decoder (0) | 2021.01.11 |
[JAVA][D2] 1940. 가랏! RC카! (0) | 2021.01.11 |
[JAVA][D2] 1945. 간단한 소인수분해 (0) | 2021.01.10 |
[JAVA][D2] 1946. 간단한 압축 풀기 (0) | 2021.01.10 |
Comments