본문 바로가기
알고리즘 풀이/SWEA

[SWEA][JAVA] 1288. 새로운 불면증 치료법

by cornsilk-tea 2022. 1. 16.

처음 작성했던 코드

package level_2;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.charset.CharacterCodingException;
import java.util.StringTokenizer;

public class SW_1288 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;
		int T = Integer.parseInt(br.readLine());
		for (int test_case = 1; test_case <= T; test_case++) {
			int N = Integer.parseInt(br.readLine());
			int K = 0;
			int[] table = { 11, 11, 11, 11, 11, 11, 11, 11, 11, 11 };
			while (true) {
				K++;
				String temp = N * K + "";
				char[] arr = temp.toCharArray();
				for (int a = 0; a < arr.length; a++) {
					int tempint = Character.getNumericValue(arr[a]);
					table[tempint] = tempint;
				}
				int sum = 0;
				for (int b : table) {
					sum += b;
				}
				if (sum == 45)
					break;
			}
			bw.write("#" + test_case + " " + (K * N) + "\n");
		}
		bw.flush();
		bw.close();
	}
}

새로 작성한 코드

package level_2;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class SW_1288 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int T = Integer.parseInt(br.readLine());
		for (int test_case = 1; test_case <= T; test_case++) {
			int N = Integer.parseInt(br.readLine());
			boolean[] table = new boolean[10];
			int K = 1;
			for (int cnt = 0; cnt <= 9; K++) {
				int temp = N * K;
				while (temp != 0) {
					int val = temp % 10;
					if (table[val] != true) {
						table[val] = true;
						cnt++;
					}
					temp = temp / 10;
				}
			}
			bw.write("#" + test_case + " " + ((K - 1) * N) + "\n");// for문은 끝날때마다 증감연산을 해줌으로 마지막 한번은 빼눠야한다.
		}
		bw.flush();
		bw.close();
	}
}