본문 바로가기
알고리즘

[BAEKJOON] 27960 사격 내기

by mAlfred 2025. 9. 11.
반응형

문제

A, B, C는 올해에도 예비군 훈련을 받으러 간다. 이번 예비군 훈련 과정 중에는 영점 사격이 있으며, 10개의 과녁 각각에 점수를 매겨 맞춘 과녁 점수의 총합을 측정한다. 과녁을 맞혔을 때, 과녁별로 각각 1점 / 2점 / 4점 / 8점 / 16점 / 32점 / 64점 / 128점 / 256점 / 512점을 얻는다. 과녁을 맞히지 않으면 해당 점수를 얻을 수 없으며, 각 과녁은 사람별로 최대 한 번만 맞힐 수 있다.

A, B와 C는 영점 사격 점수를 가지고 훈련 이후에 먹을 저녁 내기를 했다. A와 B는 각자 자신들의 총합 사격 점수를 공유했지만, C는 저녁 내기의 상황을 더 쫄깃하게 하고 싶었던지 점수를 공유하지 않고 아래와 같은 말을 했다.

"난 너희 둘 중 한 명만 맞힌 표적은 다 맞혔는데, 너희 둘 다 못 맞히거나 둘 다 맞힌 것은 전부 안 맞혔어."

A와 B는 이 말만으로는 도저히 C의 총합 점수를 알 수가 없어서 몰래 여러분에게 도움을 요청했다. C의 점수를 구해 A와 B를 도와주자!

입력

첫 번째 줄에 A와 B의 영점 사격 총합 점수인 정수  가 주어진다. A와 B의 점수를 과녁의 점수 합으로 나타낼 수 없는 경우는 주어지지 않는다.

출력

C의 점수를 출력한다.

예제 입력 1 

55 73

예제 출력 1 

126

예제 입력 2 

105 47

예제 출력 2 

70

예제 입력 3 

197 197

예제 출력 3 

0

그리디 문제 처럼 풀음

 

q = [512,256,128,64,32,16,8,4,2,1]
a = list(map(int, input().split()))

z = {}

for p in a:
    for w in q:
        t = p // w
        p %= w
        if t > 0:
            if w in z.keys():
                z[w] += 1
            else:
                z[w] = 1

ans = 0
for w,q in z.items():
    if q == 1:
        ans += w

print(ans)

 

 

반응형

'알고리즘' 카테고리의 다른 글

[BAEKJOON] 10865 친구 친구  (0) 2025.09.11
[BAEKJOON] 3053 택시 기하학  (2) 2025.09.11
[BAEKJOON] 29751 삼각형  (0) 2025.09.10
[BAEKJOON] 4740 거울, 오! 거울  (0) 2025.09.05
[BAEKJOON] 10474 분수좋아해?  (0) 2025.09.05