문제 내용은 입력으로 다섯 개의 자연수를 받은 뒤, 해당 자연수들 중 최소 3개에 해당하는 가장 작은 배수를 찾아줘야 하는데 1 2 3 4 5를 예로 들면 4는 1 2 4로 나눠져서 3개의 배수이고 가장 작은 수이기 때문에 이걸 출력해주면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] multiples = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int check = 0;
int incre = 1;
while (true) {
check = 0;
for (int i = 0; i < 5; i++) {
if (incre % multiples[i] == 0) {
check++;
}
}
if (check >= 3) {
break;
}
incre++;
}
System.out.println(incre);
}
}
문제를 풀다가 각 수마다 1씩 곱해보면서 5개의 수와 비교해본 뒤 공배수를 찾는 식으로 진행을 해봤었는데, 이렇게 하면 최소값을 찾지 못하는 문제가 있기 때문에
1부터 시작해서 1씩 올려가며 5개의 수로 나눠서 나머지가 0인지 확인한 뒤, 나머지 3나오는 값이 3개 이상이면 그때 해당 값을 출력해주면 끝이다
Leave a Reply