홀수개 쓰인 숫자가 있다면, 해당 숫자를 가지고 짝을 모두 만들 수 없고, 반드시 하나가 남게 됩니다.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> cnt(10);
for (int i = 0; i < 5; i++)
{
int Ai;
cin >> Ai;
cnt[Ai]++;
}
for (int i = 0; i < 10; i++)
if (cnt[i] % 2 == 1)
cout << i << endl;
}
def main():
cnt = [0] * 10
for i in range(5):
Ai = int(input())
cnt[Ai] += 1
for i in range(10):
if cnt[i] % 2 == 1:
print(i)
if __name__ == '__main__':
main()
XOR(비트간 배타적 논리합) 연산 의 성질은 다음과 같습니다.
XOR의 성질에 의해, 같은 수를 두 번 XOR하면 해당 수가 사라지게 됩니다. 즉, 유일하게 쌍을 만들지 못하는 수만 찾기 위해서는 입력으로 주어지는 모든 수를 XOR하면 됩니다.
#include <iostream>
using namespace std;
int main()
{
int ans = 0;
for (int i = 0; i < 5; i++)
{
int Ai;
cin >> Ai;
ans ^= Ai;
}
cout << ans << endl;
}
def main():
ans = 0
for i in range(5):
Ai = int(input())
ans ^= Ai
print(ans)
if __name__ == '__main__':
main()