처음에 공배수라고 생각해서 엄청 무식한 방법으로 풀었다가 실패하고; 이건 아닌 것 같아서 방법을 찾다가 완전 탐색 방법을 알게 되었다.
완전탐색이란? 가능한 모든 경우의 수를 탐색하고 확인하는 방법이다.
이 방법은 답이 너무 많거나 범위가 너무 넓으면 어렵지만 이번에는 숫자가 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 |