27960번 : 사격 내기
문제)
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의 영점 사격 총합 점수인 정수 (0≤S_A,S_B≤1023)가 주어진다. A와 B의 점수를 과녁의 점수 합으로 나타낼 수 없는 경우는 주어지지 않는다.
출력 :
C의 점수를 출력한다.
풀이)
이 문제의 핵심인.
"난 너희 둘중 한 명만 맞힌 표적은 다 맞혔는데, 너희 둘 다 못 맞히거나 둘 다 맞힌 것은 전부 안 맞혔어"는
비트연산자 중 XOR에 해당하는 것이므로
두 값을 입력 받고 XOR 연산자인 ^ 를 해주면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include <iostream>
using namespace std;
int a, b;
int main()
{
cin >> a >> b;
cout << (a ^ b);
return 0;
}
|
cs |
출처 : https://www.acmicpc.net/problem/27960
27960번: 사격 내기
A, B, C는 올해에도 예비군 훈련을 받으러 간다. 이번 예비군 훈련 과정 중에는 영점 사격이 있으며, 10개의 과녁 각각에 점수를 매겨 맞춘 과녁 점수의 총합을 측정한다. 과녁을 맞혔을 때, 과녁별
www.acmicpc.net
'Develop > 백준 (Cpp)' 카테고리의 다른 글
[백준] 24389번 : 2의 보수 (C++) (0) | 2023.08.01 |
---|---|
[백준] 12833번 : XORXORXOR (C++) (0) | 2023.08.01 |
[백준] 14405번 : 피카츄 (C++) (0) | 2023.07.31 |
[백준] 19942번 : 다이어트 (C++) (0) | 2023.07.30 |
[백준] 15684번 : 사다리 조작 (C++) (0) | 2023.07.30 |