development♥/알고리즘

백준 3009 파이썬 네 번째 점 알고리즘 코딩테스트

리니❤ 2023. 6. 30. 09:25
반응형

백준 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)


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형