본문 바로가기
프로그래밍/알고리즘

백준 9063번 : 대지

by 만디기 2024. 4. 22.

문제 : https://www.acmicpc.net/problem/9063

 

9063번: 대지

첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다. 

www.acmicpc.net

 

1. 내 해답

// 좌표 값이 들어올 때마다 minx, maxx, miny, maxy 갱신
#include <cstdio>

int main()
{
    int N = 0;
    int a = 0, b = 0;
    int minx = 10001, maxx = -10001, miny = 10001, maxy = -10001;

    scanf("%d", &N);
    for(int i = 0 ; i < N ; i++)
    {
        scanf("%d %d", &a, &b);
        if ( minx > a ) minx = a;
        if ( miny > b ) miny = b;
        if ( maxx < a ) maxx = a;
        if ( maxy < b ) maxy = b;
    }

    printf("%d\n", ( maxx - minx ) * ( maxy - miny ));
    return 0;
}

 

 

2. 다른 사람의 해답

# 리스트에 입력을 전부 받은 후 x좌표와 y좌표의 리스트를 따로 나누고 min/max를 구한다.
import os
A=list(map(int,os.read(0,os.fstat(0).st_size).split()))
print((max(A[1::2])-min(A[1::2]))*(max(A[2::2])-min(A[2::2])))

'프로그래밍 > 알고리즘' 카테고리의 다른 글

알고리즘과 관련된 수학 배경 지식  (0) 2024.11.06
백준 2581번: 소수  (0) 2024.03.31
백준 1978번: 소수 찾기  (0) 2024.03.22
백준 9506번: 약수들의 합  (1) 2024.03.22
백준 2501번: 약수 구하기  (0) 2024.03.20