슈콩

[BOJ] 백준 14889 스타트와 링크 본문

Algorithms/Baekjoon

[BOJ] 백준 14889 스타트와 링크

shukong 2025. 9. 22. 23:47
IDX 주의

 

 

[문제]

https://www.acmicpc.net/problem/14889

 

 

[소스 코드]

import java.io.*;
import java.util.*;

import javax.print.attribute.standard.NumberUpSupported;
public class Main {
	static int n;
	static int[][] team;
	static boolean[] visit;
	static int result = Integer.MAX_VALUE;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		n = Integer.parseInt(br.readLine());
		team = new int[n][n];
		for(int i=0;i<n;i++) {
			st = new StringTokenizer(br.readLine());
			for(int j=0;j<n;j++) {
				team[i][j] = Integer.parseInt(st.nextToken()); 
			}
		}
		visit = new boolean[n];
		select(0,0);
		System.out.println(result);
	}
	private static void select(int idx,int cnt) {
		if(cnt == n/2) {
			int sum = calSum();
			result = Math.min(result, sum);
			return;
		}
		for(int i=idx;i<n;i++) {
			visit[i] = true;
			select(i+1,cnt+1);
			visit[i] = false;
		}
	}
	private static int calSum() {
		int link = 0;
		int start = 0;
		for(int i=0;i<n;i++) {
			for(int j=0;j<n;j++) {
				if(visit[i] && visit[j])
					link += team[i][j];
				else if(!visit[i] && !visit[j])
					start += team[i][j];
			}
		}
		return Math.abs(link - start);
	}
}

'Algorithms > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 14891 톱니바퀴  (0) 2025.09.23
[BOJ] 백준 14890 경사로  (0) 2025.09.23
[BOJ] 백준 2467 용액  (0) 2025.09.22
[BOJ] 백준 14888 연산자 끼워넣기  (0) 2025.09.22
[BOJ] 백준 14503 로봇 청소기  (2) 2025.09.22