출처: http://www.hancom.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1847&sca=5090
Approach
Input
30
30 30 31 30 29 30 31 30
30 30 31 30 29 30 31 30
29 29 30 29 29 29 30 29
30 30 31 30 29 30 31 30
30 30 31 30 29 30 31 30
32 32 32 32 31 32 32 32
30 30 31 30 29 30 31 30
30 30 31 30 29 30 31 30
Output
. . . . . . . .
. . . . . . . .
. . . . - . . .
. . . . . . . .
. . . . . . . .
. . + . . . + .
. . . . . . . .
. . . . . . . .
모든 Case를 완전 탐색하는 경우 TLE
자동 분무기가 규칙을 이용해야 한다.
수치를 계산했을 때, 해당 지점이 비료액(+) 인지 / 제초제(-) 인지 판단해야 한다.
아래와 같이 입력받으면 행(row) / 열(col)의 수치도 같이 저장한다.
for (int i = 0; i < FARM_SIZE; ++i)
{
for (int j = 0; j < FARM_SIZE; ++j)
{
scanf("%d", &farm[i][j]);
farm[i][j] -= M; // 기본 생산량 제외
S += farm[i][j];
row[i] += farm[i][j];
col[j] += farm[i][j];
}
}
위 Input / Output Case를 표현하면 아래와 같다.
비료액(+) / 제초제(-) 판단
비료액(+)이 위치한 (6, 3)와 (6, 7) 수치를 계산해보자
▶ (15 + 8 - (2 * 1) / 7) - 2 = (23 - 2) / 7 - 2
= 3 - 2 = 1
제초제(-)가 위치한 (3, 5)
▶ (- 6 - 6 - (2 * 1) / 7 ) - (-1) = (- 12 - 2) / 7 + 1
= -2 + 1 = -1
위와 같은 사실을 도출하는 방식은 여기서 보여드린것과 다르게 할 수도 있다.
주어진 상황에서 수치를 분석하는 것도 개발자에게 중요한 요소이겠지만
개인적으로 선호하는 Style의 문제는 아니다.
#include <stdio.h>
const int FARM_SIZE = 8;
int M, K, ret, S;
int farm[FARM_SIZE][FARM_SIZE], row[FARM_SIZE], col[FARM_SIZE];
void init()
{
for (int i = 0; i < 8; ++i)
{
row[i] = col[i] = 0;
}
S = 0;
}
int main()
{
// freopen("input.txt", "r", stdin);
init();
scanf("%d", &M);
for (int i = 0; i < FARM_SIZE; ++i)
{
for (int j = 0; j < FARM_SIZE; ++j)
{
scanf("%d", &farm[i][j]);
farm[i][j] -= M; // 기본 생산량 제외
S += farm[i][j];
row[i] += farm[i][j];
col[j] += farm[i][j];
}
}
S /= 15;
for (int i = 0; i < FARM_SIZE; ++i)
{
for (int j = 0; j < FARM_SIZE; ++j)
{
ret = (row[i] + col[j] - 2 * S) / 7 - farm[i][j];
switch (ret)
{
case 1:
printf("+ ");
break;
case -1:
printf("- ");
break;
default:
printf(". ");
break;
}
}
printf("\n");
}
return 0;
}
'PS 문제 풀이 > Jungol' 카테고리의 다른 글
[Jungol] 정올 2601 종이접기 (0) | 2021.07.21 |
---|---|
[Jungol] 정올 2223 블랙홀 (0) | 2021.04.03 |
[Jungol] 정올 1863 종교 (0) | 2021.04.02 |
[Jungol] 정올 1516 단어세기 (0) | 2021.03.18 |
[Jungol] 정올 1264 마법색종이 (0) | 2021.03.18 |
댓글