๐Ÿฅ‰ [Baekjoon / Java] 1978. ์†Œ์ˆ˜ ์ฐพ๊ธฐ

์ดํ•˜์–€ยท2024๋…„ 5์›” 28์ผ
0

๐Ÿฃ ๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
15/33

๋ฌธ์ œ ์„ค๋ช…


๐Ÿ’ก Info

๋‚ด์šฉ

์ฃผ์–ด์ง„ ์ˆ˜ N๊ฐœ ์ค‘์—์„œ ์†Œ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ฐพ์•„์„œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๐Ÿ“ฅ์ž…๋ ฅ ์กฐ๊ฑด

  • ์ฒซ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 100 ์ดํ•˜์ด๋‹ค.
  • ๋‹ค์Œ์œผ๋กœ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ ์ˆ˜๋Š” 1,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.
4
1 3 5 7

๐Ÿ“ค์ถœ๋ ฅ ์กฐ๊ฑด

  • ์ฃผ์–ด์ง„ ์ˆ˜๋“ค ์ค‘ ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
3


๋ฌธ์ œ ์ดํ•ด


  • ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์„œ ์ถœ๋ ฅํ•˜๊ธฐ


์•Œ๊ณ ๋ฆฌ์ฆ˜


์‹ค์ œ ํ’€์ด ์‹œ๊ฐ„ : 10๋ถ„

  • ์ž…๋ ฅ
    • N ์ž…๋ ฅ๋ฐ›๊ธฐ
    • N๊ฐœ์˜ ์ˆ˜์ธ arr ์ž…๋ ฅ๋ฐ›๊ธฐ
  • ๊ณ„์‚ฐ
    • 1๊ณผ ์ž๊ธฐ ์ž์‹ ๋งŒ์„ ์•ฝ์ˆ˜๋กœ ๊ฐ€์ง€๋Š” ์ˆ˜์ธ โ€œ์†Œ์ˆ˜โ€์ธ ์ˆ˜๋งŒ ์ €์žฅํ•˜๊ธฐ
      • N % N == 1์ธ ์ˆ˜
  • ์ถœ๋ ฅ
    • ์†Œ์ˆ˜ ์ถœ๋ ฅํ•˜๊ธฐ
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		int[] arr = new int[N];
		int count = 0;
		
		for(int i=0; i<N; i++) {
			arr[i] = sc.nextInt();
		}
		
		for(int i=0; i<N; i++) {
			if(arr[i] == 1) count++;
			if(arr[i] % N == 1) count++;
		}
		System.out.println(count);	
	}
}


์˜ค๋‹ต ์ฒดํฌ


  • 1์€ ์†Œ์ˆ˜์— ํ•ด๋‹น๋˜์ง€ ์•Š๋Š”๋ฐ, ์ด๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ
  • ๋˜ํ•œ, 2๋ฒˆ์งธ๋ถ€ํ„ฐ ์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š”๋ฐ ๋ณ€์ˆ˜์ธ primNum์„ ์ถ”๊ฐ€
    • primeNum์ด 0์ธ ๊ฒฝ์šฐ๋Š” ์ฆ‰, ์†Œ์ˆ˜์ธ ๊ฒฝ์šฐ๋ฅผ ๋œปํ•˜๊ธฐ ๋•Œ๋ฌธ์— count๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ํ•ด๊ฒฐ
//before
for(int i=0; i<N; i++) {
	if(arr[i] == 1) count++;
	if(arr[i] % N == 1) count++;
}
System.out.println(count);	
//after
for(int i=0; i<N; i++) {
	if(arr[i] == 1) continue; //1์€ ์†Œ์ˆ˜์—์„œ ์ œ์™ธ์‹œํ‚ค๊ธฐ
	
	int primNum = 0;
	
	for(int j=2; j<arr[i]; j++) {
		if(arr[i] % j == 0) {
			primNum++;
			break;
		}
	}
	if(primNum == 0) count++;
}
System.out.println(count);


์ตœ์ข… ํ’€์ด


์‹ค์ œ ํ’€์ด ์‹œ๊ฐ„ : 28๋ถ„(์ฒซ ํ’€์ด ํฌํ•จ)

  • ์ž…๋ ฅ
    • N ์ž…๋ ฅ๋ฐ›๊ธฐ
    • N๊ฐœ์˜ ์ˆ˜์ธ arr ์ž…๋ ฅ๋ฐ›๊ธฐ
  • ๊ณ„์‚ฐ
    • 1๊ณผ ์ž๊ธฐ ์ž์‹ ๋งŒ์„ ์•ฝ์ˆ˜๋กœ ๊ฐ€์ง€๋Š” ์ˆ˜์ธ โ€œ์†Œ์ˆ˜โ€์ธ ์ˆ˜๋งŒ ์ €์žฅํ•˜๊ธฐ
      • arr[i] == 1์ธ ๊ฒฝ์šฐ โ†’ 1์€ ์†Œ์ˆ˜์—์„œ ์ œ์™ธ์‹œํ‚ค๊ธฐ ์œ„ํ•ด continue
      • ๋ฐฐ์—ด์˜ 2๋ฒˆ์งธ ์ˆ˜๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์†Œ์ˆ˜์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋ณ„
        • primNum์ด 0์ด๋ผ๋ฉด โ†’ ์ด๋Š” ์†Œ์ˆ˜, 0์ด ์•„๋‹Œ ๋” ํฐ ์ˆ˜๋ผ๋ฉด โ†’ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ˆ˜๋ฅผ ๋œปํ•จ.
  • ์ถœ๋ ฅ
    • ์†Œ์ˆ˜ ๊ฐœ์ˆ˜์ธ count ์ถœ๋ ฅํ•˜๊ธฐ
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		int[] arr = new int[N];
		int count = 0;
		
		for(int i=0; i<N; i++) {
			arr[i] = sc.nextInt();
		}
		
		for(int i=0; i<N; i++) {
			if(arr[i] == 1) continue; //1์€ ์†Œ์ˆ˜์—์„œ ์ œ์™ธ์‹œํ‚ค๊ธฐ
			
			int primNum = 0;
			
			for(int j=2; j<arr[i]; j++) {
				if(arr[i] % j == 0) {
					primNum++;
					break;
				}
			}
			if(primNum == 0) count++;
		}
		System.out.println(count);
	}
}

profile
์–ธ์  ๊ฐ€ ๋‚ด ์ฝ”๋“œ๋กœ ์„ธ์ƒ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก, BE ๊ฐœ๋ฐœ ๊ธฐ๋ก ๋…ธํŠธโ˜˜๏ธ

0๊ฐœ์˜ ๋Œ“๊ธ€