[백준] 3009 : 네 번째 점 - python

2024. 1. 9. 18:09·Coding Test/백준 알고리즘
반응형

https://www.acmicpc.net/problem/3009

 

3009번: 네 번째 점

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

www.acmicpc.net

 

이 문제는 직사각형 모서리의 좌표 3개가 주어졌을 때, 남은 1개의 좌표를 찾는 문제이다.

 

x,y좌표 각각 중복으로 입력된 좌표는 삭제하면, 남는 좌표가 정답이다.

예제 입력 1의 경우, x좌표는 5 5 7 이 입력되었으니 7만 남고,  y좌표는 5 7 5 가 입력되었으니 7만 남는 것이다. 

 

풀이 1. xor 이용

x = y = 0  # 초기값으로 x와 y를 0으로 설정

for _ in range(3):
    a, b = map(int, input().split())  # 사용자로부터 두 정수를 입력받아 a와 b에 할당
    x ^= a  # x에 현재의 a와 XOR 연산을 수행하여 결과를 x에 할당
    y ^= b  # y에 현재의 b와 XOR 연산을 수행하여 결과를 y에 할당

print(x, y)  # 최종적으로 계산된 x와 y를 출력

 

XOR(Exclusive OR) 연산은 두 비트가 서로 다를 때 1을 반환하고, 같을 때는 0을 반환하는 논리 연산입니다.

XOR 연산은 기호로 '^'로 나타내며, 예를 들어, A XOR B는 A와 B가 다를 때 1, 같을 때 0을 반환합니다.

  • 0 XOR 0 = 0
  • 0 XOR 1 = 1
  • 1 XOR 0 = 1
  • 1 XOR 1 = 0

 

 

 

풀이 2. list를 이용해 좀 더 직관적인 풀이

arr=[[],[]]  # arr[0] : x값 저장 , arr[1] : y값 저장
for _ in range(3):
    x,y = map(int,input().split())
    if(x not in arr[0]): # 없으면 삽입
        arr[0].append(x)
    else:				 # 있으면 삭제
        arr[0].remove(x)
    if(y not in arr[1]):
        arr[1].append(y)
    else: arr[1].remove(y)
    
    
    print(arr[0][0],arr[1][0])  #print(*arr[0],*arr[1])으로도 출력 가능

반응형

'Coding Test > 백준 알고리즘' 카테고리의 다른 글

[백준] 2563 : 색종이 - python  (0) 2024.01.06
백준 [3052]번 나머지 - python, js  (0) 2021.10.29
[백준] 2577 (일차원 배열 : 숫자의 개수)_java  (0) 2020.04.16
[백준] 2562 (1차원 배열 : 최댓값)_java  (0) 2020.04.16
[백준] 10039 (실습1 : 평균점수)_java  (0) 2020.04.16
'Coding Test/백준 알고리즘' 카테고리의 다른 글
  • [백준] 2563 : 색종이 - python
  • 백준 [3052]번 나머지 - python, js
  • [백준] 2577 (일차원 배열 : 숫자의 개수)_java
  • [백준] 2562 (1차원 배열 : 최댓값)_java
jjikky
jjikky
  • jjikky
    jikky.env
    jjikky
  • 전체
    오늘
    어제
    • 분류 전체보기
      • React
      • Node.js
        • TDD
        • Node.js
        • mern
        • OAuth
        • js_facebook login
      • Coding Test
        • 백준 알고리즘
        • CodeUp
        • 코테 이론
      • Js
        • Javascript
      • study
        • python
        • android
        • Big data analysis
        • Logic Circuit
      • git
      • 개발일지
      • 게임기획
      • Docker
      • IPFS
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코딩테스트
    ifps 네트워크 지연
    nft
    verilog
    파이썬 완전탐색
    파이썬 그리디
    파이썬 딕셔너리
    파이썬
    범주형 자료
    NFT IPFS
    ipfs add
    빅데이터
    UI
    NFT Marketplace
    verilog할당문
    git 유용한 명령어
    Python
    안드로이드
    그리디 알고리즘
    Ipfs
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
jjikky
[백준] 3009 : 네 번째 점 - python
상단으로

티스토리툴바