[파이썬][백준 3009번] 네 번째 점
1. 문제Permalink
[Bronze III] 네 번째 점 - 3009Permalink
성능 요약Permalink
메모리: 30860 KB, 시간: 64 ms
분류Permalink
기하학(geometry), 구현(implementation)
문제 설명Permalink
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
입력Permalink
세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.
출력Permalink
직사각형의 네 번째 점의 좌표를 출력한다.
출처: 백준, https://https://www.acmicpc.net/
2. 해결방법 시간복잡도Permalink
- 단순 코딩 O(N)
3. 문제 해결 및 코드Permalink
li_x = [] | |
li_y = [] | |
for i in range(3): # 4번째 점을 구하는 것이기때문에 3번째 점까지만 받는다. | |
x, y = map(int, input().split()) | |
li_x.append(x) # 받은 x값 넣기 | |
li_y.append(y) # 받은 y값 넣기 | |
for j in range(3): # 다시 반복문을 통해 x와 y에 해당 값이 있는 지 확인 | |
if li_x.count(li_x[j]) == 1: # 만약 x의 j위치에 값이 1개밖에 없다면 | |
x = li_x[j] # x 는 받은 x의 j위치 값이다. | |
if li_y.count(li_y[j]) == 1: # 만약 y의 j위치에 값이 1개밖에 없다면 | |
y = li_y[j] # y 는 받은 y의 j위치 값이다. | |
print(x, y) |
-
주석을 참고하면서 이해를 돕습니다.Permalink
4. 알고리즘 및 해설Permalink
- 반복문을 통해 4번째 점을 구한다.
- 이때 x값과 y값을 받은 뒤 각각의 리스트에 넣는다.
- 다시 반복문을 통해 4번째 점을 구한다.
- 이때 만약 x의 j위치값에 값이 1개 밖에 없다면 x값은 j위치의 값이다.
- 이때 만약 x의 j위치값에 값이 1개 밖에 없다면 y값은 j위치의 값이다.
- 최종적으로 네 번째 점의 좌표를 출력해준다.