You are playing the following game with Joisino.
1. Initially, you have a blank sheet of paper.
2. Joisino announces a number. If that number is written on the sheet, erase the number from the sheet; if not, write the number on the sheet. This process is repeated N times.
3. Then, you are asked a question: How many numbers are written on the sheet now?
The numbers announced by Joisino are given as A1 , ... , AN in the order she announces them.
How many numbers will be written on the sheet at the end of the game?
Constraints
1. 1 ≤ N ≤ 100000
2. 1 ≤ Ai ≤ 1000000000(=109)
3. All input values are integers.
Input
The first line of the input contains an integer T, the number of test sets (1 ≤ T ≤ 10).
For each test set, the input is given from Standard Input in the following format:
Output
For each test case, print “#T”(test case number), and how many numbers will be written on the sheet at the end of the game.
일단 게임 룰을 이해해보자.
빈 종이 준비
1. Joisino가 숫자를 부른다. 그 숫자가 종이에 적혀 있으면 지우고, 종이에 안 적혀있으면 써라.
2. 1의 과정이 N번 반복된다.
3. N번 반복 후 질문을 받는다.
"종이에 숫자가 몇 개 적혀있는가?"
음...일단 적힌 숫자 전체 개수에서 해당 숫자를 말하면(in) -1하고 없으면(not in) +1하는 식으로 접근하면 될 것 같다.
숫자가 같은지의 여부는 종이에 적힌 숫자 배열을 탐색하면 될 것 같고...
입력
line 1: test case 개수 T
line 2: 반복 횟수 N (Joisino이 말하는 숫자 개수로 이해했다.)
line 3: Joisino이 말하는 숫자를 쓴다. N개
입력 예시
3
6
2
6
N = 3 3개의 숫자 말한다.
6,2,6 차례로 Joisino이 말한 숫자.
6, 2를 적고, 6을 말할 때 종이에 적혀있으므로 6이 지워진다.
결과적으로 2만 종이에 적혀있어서 종이에 적힌 숫자 개수는 1개
생각보다 간단했다.
test case에서 k를 입력받을 때마다 c 배열에 있는지 확인하고 있으면 remove하고 없으면 append한다.
그리고 해당 test case에 대한 것이 끝나면 len(c)로 개수를 구해서 b 배열에 저장한다.
위의 두 코드를 합하면 된다.
자 이제 제출해보자.
Pass
[SWEA] 7965. 퀴즈 (0) | 2019.07.14 |
---|---|
[SWEA] 2071. 평균값 구하기 (0) | 2019.07.14 |
2369. [AtCoder Beginner Contest 073] B. Theater (0) | 2019.06.29 |
2357. [AtCoder Beginner Contest 073] A. September 9 (0) | 2019.06.29 |
[백준(Baekjoon)] 10869번 (사칙연산) (0) | 2019.03.28 |