본문 바로가기
알고리즘 문제

[알고리즘 문제] 백준1145 - 적어도 대부분의 배수

by 박연호의 개발 블로그 2019. 7. 5.

문제는 어떤 숫자 X(배수)를 구하는 건데 조건은 X입력받은 숫자들로 나누었을 때 나누어떨어지는 숫자가 3개 이상존재하는 X를 구하는 문제이다. 

 

만약 [30 42 70 35 90]숫자를 입력받을 때, 210의 경우는 30,42,70로 나누어 떨어지므로 X가 된다.

 

방법은 숫자 val을 하나씩 증가하면서 입력받은 배열의 숫자들을 모두 나누어떨어지는지 검사하고 나누어 떨어지는 숫자가 3개 이상이면 val을 출력한다.

 

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[5];

        for (int i = 0; i < 5; i++) {
            arr[i] = sc.nextInt();
        }

        int val = 1;
        int count = 0;

        while (true) {
            for (int k = 0; k < 5; k++) {
                if (val % arr[k] == 0) {
                    count++;
                }
            }
            if (count >= 3) {
                System.out.println(val);
                return;
            }
            count = 0;
            val++;
        }

    }
}