코딩테스트/백준-Java

[백준 자바] 4375번(1) - 1로만 이루어진 n의 배수

gamzaggang7 2024. 10. 10. 15:35
728x90

실버 3

 

문제

2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 각 자릿수가 모두 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다.

출력

각 자릿수가 모두 1로만 이루어진 n의 배수 중 가장 작은 수의 자리수를 출력한다.

 


 

728x90
import java.io.*;

public class Main4375 {
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    String str;

    while ((str = br.readLine()) != null && !str.isEmpty()) {
      int n = Integer.parseInt(str);
      int oneNum = 1;
      int length = 1;

      if (n == 1)
        System.out.println(1);
      else {
        while (oneNum != 0) {
          oneNum = (oneNum * 10 + 1) % n;
          length++;
        }

        System.out.println(length);
      }
    }

    bw.flush();
    br.close();
    bw.close();
  }
}

입력이 여러 개의 테스트 케이스로 이루어져 있으므로 null이 될 때까지 처리합니다.

 

로직)

- oneNum은 1로만 이루어진 숫자입니다. 처음에 1로 설정하고 11, 111, 1111, ... 형태로 만들고 n을 나누어 나머지를 확인합니다.

- 나머지가 0이 아니면 length(1로만 이루어진 수의 길이)를 1 증가시키고 0이면 자릿수를 출력합니다.

- 입력값이 1인 경우에는 곧바로 1을 출력합니다.

 

728x90