백준 17779번
별찍기 응용 느낌ㅋㅋㅋ
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
93
94
95
96
97
98
99
100
101
102
103
104
|
#include <stdio.h>
int map[25][25];
int arr[25][25];
int N,ans=1000000;
void printMap(){
for(int i = 1 ; i <= N ; i++){
for(int j = 1 ; j <= N ; j++) printf("%d ",arr[i][j]);
printf("\n");
}
printf("\n");
}
void getMinMax(){
int sum[6] = {0,};
int min = 10000000;
int max = 0;
for(int i = 1; i <= N ; i++){
for(int j = 1; j <= N ; j++){
sum[arr[i][j]] += map[i][j];
}
}
for(int i = 1 ; i <= 5 ; i++){
if(max<sum[i]) max = sum[i];
if(min>sum[i]) min = sum[i];
}
if(ans>max-min) ans = max-min;
}
int main(){
scanf("%d",&N);
for(int i = 1 ; i <= N ; i++){
for(int j = 1 ; j <= N ; j++) scanf("%d",&map[i][j]);
}
for(int d1 = 1 ; d1 <= N ; d1++){
for(int d2 = 1 ; d2<=N ; d2++){
for(int x = 1 ; x <= N - (d1+d2) ; x++){
for(int y = 1+d1 ; y <= N - d2 ; y++){
// 1
for(int r = 1 ; r < x+d1 ; r++){
for(int c = 1 ; c <= y ; c++){
arr[r][c] = 1;
}
}
// 2
for(int r = 1 ; r <= x+d2 ; r++){
for(int c = y+1 ; c <= N ; c++){
arr[r][c] = 2;
}
}
// 3
for(int r = x+d1 ; r <= N ; r++){
for(int c = 1 ; c < y-d1+d2 ; c++){
arr[r][c] = 3;
}
}
// 4
for(int r = x+d2+1 ; r<=N ; r++){
for(int c = y-d1+d2 ; c <= N ; c++){
arr[r][c] = 4;
}
}
// 5
for(int r = x ; r <= x+d1 ;r++){
for(int i = 0 ; i < r-x+1 ; i++){
arr[r][y-i] = 5;
}
}
for(int r = x ; r <= x+d2 ; r++){
for(int i = 0 ; i < r-x+1 ; i++){
arr[r][y+i] = 5;
}
}
for(int r = x+d1+d2 ; r >= x+d1 ; r--){
for(int i = 0 ; i < x+d1+d2-r+1 ; i++){
arr[r][y-d1+d2-i] = 5;
}
}
for(int r = x+d1+d2 ; r >= x+d2 ; r--){
for(int i = 0 ; i < x+d1+d2-r+1 ; i++){
arr[r][y-d1+d2+i] = 5;
}
}
// printf("%d %d %d %d\n",d1,d2,x,y);
// printMap();
getMinMax();
}
}
}
}
printf("%d\n",ans);
}
|
cs |
이렇게 먼저 1,2,3,4를 쉽게 칠해준 후
5만 구역에 맞춰서 다시 칠해줬다
5 구역 칠해주는 방법은 제일 기본 별찍기인 하나부터 시작해서 밑으로 내려갈수록 별 개수가 늘어나는 방법을 그대로 사용했다
헷갈릴것도 없고 좋았던 문제
이정도로만 코테 나오면 좋겠다..ㅎㅎ
'알고리즘' 카테고리의 다른 글
[C] 컨베이어 벨트 위의 로봇 (0) | 2021.03.25 |
---|---|
[C] 사다리 조작 (0) | 2021.03.25 |
[C] 2048 (easy) (0) | 2021.03.23 |
[C] 구슬 탈출2 (0) | 2021.03.23 |
[C] 달리기 (0) | 2021.02.06 |