본문 바로가기
Algorithm

[구현/수학] 백준 27960 사격 내기 - 파이썬(Python)

by jangThang 2023. 5. 6.
반응형

백준 온라인 저지

 

[ 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

     

    star가 되고나서 Tistory

    반응형

    댓글