https://www.acmicpc.net/problem/2961
- N의 범위가 1 ~ 10 이여서 조합 완전 탐색으로 해결했습니다.
[Java]
import java.io.*;
import java.util.*;
public class Main {
static long ans = Integer.MAX_VALUE;
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int arr[][] = new int[n][2];
boolean visited[] = new boolean [n];
for(int i=0; i<n; i++){
String input[] = br.readLine().split(" ");
arr[i][0] = Integer.parseInt(input[0]);
arr[i][1] = Integer.parseInt(input[1]);
}
for(int i=1; i<=n; i++){
combination(arr, visited, 0, i);
visited = new boolean [n];
}
System.out.println(ans);
}
public static void combination(int arr[][], boolean visited[], int start, int r){
if(r == 0){
int sin = 1;
int bitter = 0;
for(int i=0; i<arr.length; i++){
if(visited[i]) {
sin *= arr[i][0];
bitter += arr[i][1];
}
}
ans = Math.min(ans, Math.abs(sin - bitter));
return;
}
for(int i=start; i<arr.length; i++){
if(!visited[i]){
visited[i] = true;
combination(arr, visited, i + 1, r - 1);
visited[i] = false;
}
}
}
}
'PS > 백준' 카테고리의 다른 글
백준 - 문자열 집합 조합하기 25328 (0) | 2023.03.03 |
---|---|
백준 - 캠프 준비 16938 (0) | 2023.03.01 |
[백준] - Australian Voting (호주식 투표법) 4419 (0) | 2023.02.13 |
[백준] - 피보나치함수 (1003) (0) | 2022.11.24 |
[백준] 영상처리 21938 (0) | 2022.11.11 |