[ Contents ]
1. 문제 (링크 참조)
27960번: 사격 내기
A, B, C는 올해에도 예비군 훈련을 받으러 간다. 이번 예비군 훈련 과정 중에는 영점 사격이 있으며, 10개의 과녁 각각에 점수를 매겨 맞춘 과녁 점수의 총합을 측정한다. 과녁을 맞혔을 때, 과녁별
www.acmicpc.net
2. 문제 풀이
A와 B의 사격점수가 주어집니다. 과녁은 1 / 2 / 4 / 8 / 16 / 32 / 64 / 128 / 256 / 512 배점이며, 각 과녁마다 1번씩만 쏴서 맞추면 해당 점수를 획득합니다.
C는 A와 B 중 한 명만 맞힌 과녁은 맞췄으나, 둘 다 맞히거나 못 맞힌 과녁은 안 맞혔다고 합니다. C의 과녁점수를 구해야 합니다.
True | True | False |
True | False | True |
False | True | True |
False | False | False |
과녁의 배점은 2의 배수입니다. 그리고 얻었거나 얻지 못했을 경우만 존재합니다.
따라서 배점은 이진수로 표현할 수 있습니다. 그리고 C는 A와 B를 XOR연산한 결과가 됩니다.
3. 코드
import sys
input = sys.stdin.readline
# 입력
a, b = map(int, input().split())
# 이진수로 변환
bin_a = bin(a)
bin_b = bin(b)
# c
res = int(bin(a^b)[2:], 2)
print(res)
십진수를 이진수로 변환해주는 bin함수를 사용합니다.
그리고 XOR연산자는 ^입니다.
2022.04.20 - [Algorithm] - [구현/수학] 백준 10829 이진수 변환 - 파이썬(Python)
[구현/수학] 백준 10829 이진수 변환 - 파이썬(Python)
[ Contents ] 1. 문제 (링크 참조) 10829번: 이진수 변환 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000) www.acmicpc.net 2. 문제 풀이 10진수를 2진수로 변환하는 문제입니다. res = '' # 십진수 => 이
star7sss.tistory.com
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 6840 Who is in the middle? - 파이썬(Python) (0) | 2023.06.01 |
---|---|
[구현/수학] 백준 27961 고양이는 많을수록 좋다 - 파이썬(Python) (0) | 2023.05.07 |
[구현/수학] 백준 27868 On My Way Dorm - 파이썬(Python) (0) | 2023.05.05 |
[구현/수학] 백준 27724 팝핀 소다 - 파이썬(Python) (0) | 2023.05.04 |
[구현/수학] 백준 27648 증가 배열 만들기 - 파이썬(Python) (0) | 2023.05.03 |
댓글