백준 9063번: 대지 링크
https://www.acmicpc.net/problem/9063
문제를 풀기 전 생각한 것
(가장 긴 x축 - 가장 짧은 x축) * (가장 긴 y축 - 가장 짧은 y축)
x축 입력값과 y축 입력값을 받아서 어떻게 저장할지
받은 값들의 최대, 최소를 어떻게 나눌지
풀면서 어려웠던 점
처음에는 arr에 값들을 저장했는데 그 이유는 x축은 짝수 번째, y축은 홀수 번째로 들어오니까 짝수 번째끼리 최대, 최소를 구하고 짝수 번째끼리 최대, 최소를 구하면 된다고 생각했다
하지만 내 머리가 멍청해서 구현이 어려웠고 그냥 xarr와 yarr로 나누어서 받았다
코드
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int N, x, y;
int xarr[100001] = {0};
int yarr[100001] = {0};
int ans;
scanf("%d", &N);
if (N < 1 || N > 100000) {
exit(1);
}
for (int i = 0; i < N; i++){
scanf("%d %d",&x, &y);
xarr[i] = x;
yarr[i] = y;
}
int xmax = xarr[0];
int xmin = xarr[0];
int ymax = yarr[0];
int ymin = yarr[0];
for (int j = 0; j < N; j++){
if (xarr[j] > xmax) xmax = xarr[j];
if (xarr[j] < xmin) xmin = xarr[j];
if (yarr[j] > ymax) ymax = yarr[j];
if (yarr[j] < ymin) ymin = yarr[j];
}
ans = (xmax - xmin) * (ymax - ymin);
printf("%d", ans);
return 0;
}
풀면서 배운 점
초보는 한 번에 하려고 하지 말자
반응형