728x90
반응형
1. 문제 보기
해당 문제는 문제 링크를 통해 보실 수 있습니다.
2. 풀이 코드
#include <stdio.h>
int main(void) {
int coordinate[3][2];
int x, y;
//나머지 좌표값 입력
if (scanf("%d %d", &coordinate[0][0], &coordinate[0][1]) == NULL)
return 0;
if (scanf("%d %d", &coordinate[1][0], &coordinate[1][1]) == NULL)
return 0;
if (scanf("%d %d", &coordinate[2][0], &coordinate[2][1]) == NULL)
return 0;
//X 좌표 찾기
if (coordinate[0][0] == coordinate[1][0])
x = coordinate[2][0];
else if (coordinate[0][0] == coordinate[2][0])
x = coordinate[1][0];
else
x = coordinate[0][0];
//Y 좌표 찾기
if (coordinate[0][1] == coordinate[1][1])
y = coordinate[2][1];
else if (coordinate[0][1] == coordinate[2][1])
y = coordinate[1][1];
else
y = coordinate[0][1];
printf("%d %d\n", x,y);
return 0;
}
3. 문제의 요구 조건
- 시간 제한: 1초
- 출력 조건: 주어진 좌표를 가지고, 평행하는 직사각형을 만들 수 있는 좌표 찾기
시간 제한과 관련하여
- 이 문제는 시간 제한이 1초밖에 되지 않습니다.
- 즉, 반복문 같은 것은 쓸 수도 없다는 이야기가 됩니다.
- O(1) 시간안에 정답을 찾아야 합니다.
4. 문제 풀이
문제 이해하기
- 문제에서 제시한 첫번째 예시와 조건을 사진으로 옮겨보았습니다.
- 이 문제 정답은, 위 사진 속에 보이는 (?,?) 좌표에 들어갈 값을 찾는 것입니다.
X 좌표 찾기
- 그럼, X 좌표를 찾아보겠습니다.
- 위 사진 속에서, 화살표와 같이 X 좌표가 같아짐을 알 수 있습니다.
- 즉, 어떤 X좌표가 다른 X좌표와 같게된다면, 다른 좌표는 ?에 같게되는 좌표임을 알 수 있습니다.
- 이것을 이용해서, 서로 같아지는 좌표를 찾고, 남은 좌표는 ?에 해당하는 좌표로 저장합니다.
Y 좌표 찾기
- X 좌표를 찾는 방법과 마찬가지로 Y 좌표를 찾아줍니다.
- Y 좌표도 X 좌표와 마찬가지로, 서로 같지 않은 좌표를 ?에 해당하는 좌표로 저장하면 됩니다.
반응형
'컴퓨터 관련' 카테고리의 다른 글
[알고리즘] 백준 1712번 문제 풀이 (1) | 2024.01.06 |
---|---|
[컴파일러 구성] flex와 bison으로 간단한 계산기 만들기 (1) | 2024.01.06 |