본문 바로가기

CodingTEST

[SW Expert D2] 1288. 새로운 불면증 치료법

반응형

1288. 새로운 불면증 치료법

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

문제 분석

 

  • N을 입력 받고 N*1 부터 시작해서 각 자리수에서 0~9까지 모든 숫자를 보기위해 K번 숫자를 세야한다.
    • N*1  > N*2 > ... > N*K

 

해결 포인트

 

  • 0~9까지 모든 숫자 확인했는지 체크 방법
    • nums.stream().distinct().count() == 10 일 때까지 반복

 

코드

 

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Solution
{
    public static void main(String args[]) throws Exception
    {
        //System.setIn(new FileInputStream("res/input.txt"));
        Scanner sc = new Scanner(System.in);
        int T;
        T=sc.nextInt();

        for(int test_case = 1; test_case <= T; test_case++) {
            int N = sc.nextInt();

            int result = 1;
            ArrayList<Integer> nums = new ArrayList<>();
            while(nums.stream().distinct().count() != 10) {
                int n = N*result;
                while(n > 0) {
                    nums.add(n%10);
                    n = n/10;
                }
                result++;
            }


            System.out.printf("#%d %d\n", test_case, (result-1) * N);
        }
    }
}
반응형