Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

시간이 NullNull

[JAVA] [SWEA] 8821. 적고 지우기 본문

알고리즘

[JAVA] [SWEA] 8821. 적고 지우기

4NIng 2020. 2. 23. 02:46

진수는 어린 동욱이에게 숫자 공부를 시키고 있다.

진수는 숫자를 여러 번 말한다.

그러면 동욱이는 진수가 부르는 숫자를 공책에 적거나 지운다.

숫자를 적을 때는 공책에 그 숫자가 적혀 있지 않을 때이고,

숫자를 지울 때는 공책에 그 숫자가 적혀 있을 때이다.

처음 공책에는 어떤 숫자도 적혀 있지 않다고 할 때,

마지막에 공책에 적힌 숫자의 개수를 구하는 프로그램을 작성하라.

 

ps. 왜 저렇게 비효율적으로 공부시킬까ㅠㅠ 불쌍한 동욱이

 

가장 쉽게 생각했을때 그대로 시키는 대로 반복하면 된다.

 

처음에 쓰여지지 않은 수 = false

이후 쓰여지면 true

다시 진수가 숫자 부르면 false

다시 진수가 숫자 부르면 true

 

전체 코드는 아래와 같다.

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Solution {

	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int T = Integer.parseInt(br.readLine());
		for(int t=1; t<=T; ++t) {
			boolean[] arr = new boolean[10];
			String[] str = br.readLine().split("");
			for(int i=0; i<str.length; ++i) {
				int num = Integer.parseInt(str[i]);
				arr[num] = !arr[num];
			}
			int cnt = 0;
			for(int i=0; i<arr.length; ++i) {
				if(arr[i]) {
					++cnt;
				}
			}
			bw.write("#"+t+" "+cnt+"\n");
		}
		bw.close();
		br.close();
	}

}
Comments