BAEKJOON/Java
[B1503][세 수 고르기][java]
sseni
2023. 10. 10. 21:49
728x90
https://www.acmicpc.net/problem/1503
1503번: 세 수 고르기
첫째 줄에 N(1 ≤ N ≤ 1,000)과 집합 S의 크기 M(0 ≤ M ≤ 50)이 주어진다. 둘째 줄에는 집합 S에 들어있는 수가 주어진다. 집합에 들어있는 수는 1,000보다 작거나 같은 자연수이고, 공백으로 구분되어
www.acmicpc.net
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int[] arr = new int[1002];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < m; i++) {
arr[Integer.parseInt(st.nextToken())] = 1;
}
int answer = Integer.MAX_VALUE;
for (int i = 1; i <= 1000; i++) {
for (int j = i; j <= 1000; j++) {
for (int k = j; k <= 1001; k++) {
if (arr[k] == 1 || arr[j] == 1 || arr[i] == 1) {
continue;
}
answer = Math.min(answer, Math.abs(n - i * j * k));
}
}
}
System.out.println(answer);
}
}
728x90