반응형
이 문제는 조합을 사용하여 간단히 풀수있는 문제이다.
(전체치킨집수)C(제한된치킨집수) 와 같은 조합식을 세우고 이대로 접근하여 풀고 그 상황에서의 치킨거리의 최솟값을 구하면 쉽게 풀 수 있는 문제이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
package boj;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Main_bj_15686_치킨배달 {
static List<Pos> chicken;
static List<Pos> home;
static boolean[] visit;
static Pos[] result;
static int N,R;
static int answer;
static class Pos{
int i,j;
Pos(int i,int j){
this.i=i;this.j=j;
}
}
public static void main(String[] args) throws Exception {
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = null;
st=new StringTokenizer(br.readLine());
N=Integer.parseInt(st.nextToken());
R=Integer.parseInt(st.nextToken());
chicken=new ArrayList<>();
home=new ArrayList<>();
for(int i=0;i<N;i++) {
st=new StringTokenizer(br.readLine());
for(int j=0;j<N;j++) {
int num=Integer.parseInt(st.nextToken());
if(num==1) home.add(new Pos(i, j));
else if(num==2) chicken.add(new Pos(i, j));
}
}
result=new Pos[R];
answer=Integer.MAX_VALUE;
comb(0,0);
System.out.println(answer);
}
static void comb(int start,int depth) {
if(depth==R) {
func();
return;
}
if(visit[i]==false) {
visit[i]=true;
result[depth]=chicken.get(i);
comb(i,depth+1);
visit[i]=false;
}
}
}
static void func() {
int sum=0;
for(Pos ho : home) { //집기준 치킨집 찾기
int dis=Integer.MAX_VALUE;
for(int i=0;i<R;i++) {
Pos chi=result[i];
}
sum+=dis;
}
answer=Math.min(answer, sum);
}
static int distance(int row1,int col1, int row2, int col2) {
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
반응형
'Algorithm' 카테고리의 다른 글
[Programmers] 징검다리 건너기 (0) | 2020.05.03 |
---|---|
[BOJ] 14502. 연구소 (0) | 2020.05.02 |
[SWEA] 4366. 정식이의 은행업무 (0) | 2020.05.02 |
[SWEA] 1949. 등산로 조성 (0) | 2020.05.02 |
[BOJ] 17281.⚾ (0) | 2020.05.01 |