반응형
백준 3009 네 번째 점
파이썬
문제 이해하기
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네번쨰 점을 찾는 프로그램을 작성하시오.
= 위에 문제를 이해해보자면 아래사진에서 검정 점 3개가 있는데 거기에서 파란점을 찾는 프로그램을 만들라는 말이다.
문제를 조금 더 쉽게 접근해보자면
아래처럼 좌표를 생각해보면 쉽게 접근할 수 있다.
즉 4점의 좌표값은
(0,0) , (x,0) , (y,0) , (x,y)
여기에서 임의의 좌표값 3개를 입력할때
그 임의의 좌표 3개를 (0,0) , (x,0) , (y,0) 이거라고 생각해보자
없는 좌표값은 (x,y)
이 (x,y)는
입력된 임의의 좌표들을 (0,0) , (x,0) , (y,0) 봤을때 1번만 나온 좌표를 찾아서 출력하면 이 문제는 끝난다.
즉 위에서 x는 1번 y도 1번 나왔음으로
4번째 좌표는 (x,y)값을 도출하면 됨
그 과정에서 count함수를 통해서
입력된 x들을 count했을때 1개인것
입력된 y들을 count했을떄 1개인것
을 골라서 출력해내면 된다.
----------------------------------------------------
코드 작성
x_list=[] # x값을 받을 리스트 선언 = list() 랑 같음
y_list=[] # y값을 받을 리스트 선언 = list() 랑 같음
# x,y값 3번 입력받는거 for문으로 돌리기
for i in range(3): # 3번입력 받을거니까 range 3
x,y=map(int,input().split()) # 한번에 x,y입력받기
x_list.append(x) # x_list에 입력받은 x값을 append로 넣기
y_list.append(y) # y_list에 입력받은 y값을 append로 넣기
hidden_x=0 #이따가 4번째 x값 받을거라서 선언해둠
hidden_y=0
for x in x_list: # 예를들어 x 가 5,5,7이라면
if x_list.count(x)==1: # 5,5,7중에서 count(5)의 개수 = 2 ==> 2는 1이랑 같지 않으니까 for문돌아감
hidden_x=x #1개인 x값을 hidden_x값에 넣기
break
for y in y_list:
if y_list.count(y)==1:
hidden_y=y
break
print(hidden_x,hidden_y)
반응형