๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[Codeforces] 1300A: Non-zero

by ์ฃผ๋ฐœ2 2020. 3. 21.
๋ฐ˜์‘ํ˜•

https://codeforces.com/problemset/problem/1300/A

 

Problem - 1300A - Codeforces

 

codeforces.com

์ฝ”๋“œ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		
		int t = Integer.parseInt(bf.readLine());
		for(int tc=0; tc<t; tc++) {
			int n = Integer.parseInt(bf.readLine());
			int[] arr = new int[n];
			StringTokenizer st = new StringTokenizer(bf.readLine());
			for(int i=0; i<n; i++)
				arr[i] = Integer.parseInt(st.nextToken());
			
			int ans = 0;	// ์ตœ์†Œ ๋‹จ๊ณ„
			int sum = 0;	// ๋ฐฐ์—ด ๋ชจ๋“ ์š”์†Œ์˜ ํ•ฉ
			
			// ๋ฐฐ์—ด์˜ ์š”์†Œ์— 0์ด ์กด์žฌํ•˜๋ฉด ๊ณฑ์ด 0์ด๋˜๋ฏ€๋กœ 0์„ 1๋กœ๋งŒ๋“ ๋‹ค.
			for(int i=0; i<n; i++) {
				if(arr[i] == 0) {
					arr[i] ++;
					ans ++;
				}
			}
			
			// ๋ฐฐ์—ด ๋ชจ๋“  ์š”์†Œ์˜ ํ•ฉ
			for(int i=0; i<n; i++)
				sum += arr[i];
			
			// ๋ฐฐ์—ด ์š”์†Œ์˜ ํ•ฉ์ด 0์ด๋˜๋ฉด ์•ˆ๋จ,
			ans += (sum == 0) ? 1 : 0;
			
			System.out.println(ans);
				
		}
		
		bf.close();
	}

}

ํ’€์ด

๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋“ค์˜ ํ•ฉ๊ณผ ๊ณฑ์ด 0์ด ๋˜์ง€ ์•Š๋„๋ก ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

 1) ๋จผ์ € ๋ฐฐ์—ด์˜ ์š”์†Œ์— 0์ด ์žˆ๋Š”๊ฒฝ์šฐ -> ์ „๋ถ€ 1๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 2) ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ์˜ ํ•ฉ์ด 0์ธ๊ฒฝ์šฐ -> +1์„ ํ•ด์ค€๋‹ค.(ํ•ฉ์ด ์Œ์ˆ˜์ด๋“  ์–‘์ˆ˜์ด๋“  ์ƒ๊ด€์—†์ด 0๋งŒ ์•„๋‹ˆ๋ฉด ๋จ.)

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€