백준

백준 9063번: 대지 (C언어)

NamDoHyeon 2023. 9. 10. 21:36

백준 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;
}

풀면서 배운 점

초보는 한 번에 하려고 하지 말자

반응형