728x90

🏆 목차.

  1. 문제
  2. 코드
  3. 풀이

 

🛒 문제

 

 

3009번: 네 번째 점

세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.

www.acmicpc.net

 

🎨 코드

#include <iostream>
using namespace std;

struct Point {
    int x;
    int y;
};

int main() {
    const int edge = 3; // 점의 개수
    Point p[edge];

    // 세 점의 좌표 입력
    for (int i = 0; i < edge; ++i) {
        cin >> p[i].x >> p[i].y;
    }

    // 찾고자 하는 네 번째 점
    Point fourthPoint;
    
    if (p[0].x == p[1].x) fourthPoint.x = p[2].x;
    else if (p[0].x == p[2].x) fourthPoint.x = p[1].x;
    else fourthPoint.x = p[0].x;

    if (p[0].y == p[1].y) fourthPoint.y = p[2].y;
    else if (p[0].y == p[2].y) fourthPoint.y = p[1].y;
    else fourthPoint.y = p[0].y;

    // 결과 출력
    cout << fourthPoint.x << " " << fourthPoint.y;
    return 0;
}

 

🎯 풀이

 

이번 문제는 규칙만 파악하면 간단하게 풀 수 있는 문제입니다.

 

3009번-예제-입력-출력
3009번 예제 입력 출력

 

예제 입력 1번을 예시로 들겠습니다.

5 5

5 7

7 5

가 입력됐을 때, x축에서 1,2번째 입력된 5가 한쌍이며 세번째 입력된 7은 쌍이 없습니다.

마찬가지로 y축에서 1, 3번째 입력된 5가 한쌍이며 두 번째 입력된 7은 쌍이 없습니다.

 

그럼 쌍이 없는 x와 y에 7이 정답이 됩니다.

 

예제 입력 2번도 예시를 들자면

30 20

10 10

10 20

가 입력됐을 때, x축에서 2,3번째 입력된 10이 한쌍이며 첫 번째 입력된 30은 쌍이 없습니다.

마찬가지로 y축에서 1,3번째 입력된 20이 한쌍이며 두 번째 입력된 10은 쌍이 없습니다.

 

그럼 쌍이 없는 x와 y에 30과 10이 정답이 됩니다.

 

 

728x90

+ Recent posts