Study/알고리즘

백준 1145번 - 적어도 대부분의 배수 JAVA

토기발 2022. 7. 27. 17:20

 

처음에 공배수라고 생각해서 엄청 무식한 방법으로 풀었다가 실패하고; 이건 아닌 것 같아서 방법을 찾다가 완전 탐색 방법을 알게 되었다.

완전탐색이란? 가능한 모든 경우의 수를 탐색하고 확인하는 방법이다. 

이 방법은 답이 너무 많거나 범위가 너무 넓으면 어렵지만 이번에는 숫자가 5개밖에 주어지지 않기 때문에 사용할 수 있다.

 


 

import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int num[] = new int[5];
		for(int i=0; i<5; i++) {
			num[i] = in.nextInt(); 
		}
		int result = 1;
		while(true) {
			int count = 0;
			for(int i=0; i<5; i++) {
				if (result % num[i] == 0) {
					count++;
				}
				if (count >=3) {
					System.out.println(result);
					return;
				}
			}
			result++;
		}
	}
}

 

먼저 배열에 주어지는 숫자들을 담는다.

그리고 최종 답이 될 result 변수를 선언하고 1부터 배열에 넣은 수의 배수가 될 때까지 숫자를 1씩 올려준다. 

만약에 배수가 되는 수가 된다면(=나눴을 때 0이 되는 수가 있다면) count를 1 올려준다.

이 count가 3이 되면 적어도 숫자 3개의 배수가 되는 것이기 때문에 멈추고 result를 출력한다.

'Study > 알고리즘' 카테고리의 다른 글

백준 1159번 - 농구 경기 JAVA  (0) 2022.07.30
백준 1157번 - 단어 공부 JAVA  (0) 2022.07.28
백준 1110번 - 더하기 사이클 JAVA  (0) 2022.07.27
백준 1075번 - 나누기 JAVA  (0) 2022.07.26
백준 1037번 - 약수 JAVA  (0) 2022.07.25