๊ธฐ๋ก๋ฐฉ

BOJ_1418 : K-์„ธ์ค€์ˆ˜ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_1418 : K-์„ธ์ค€์ˆ˜

Soom_1n 2023. 11. 1. 21:52

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

1418๋ฒˆ: K-์„ธ์ค€์ˆ˜

์ฒซ์งธ ์ค„์— N, ๋‘˜์งธ ์ค„์— K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. N์€ 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๊ณ , K๋Š” 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

www.acmicpc.net



 

๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ์–ด๋–ค ์ž์—ฐ์ˆ˜์˜ ์†Œ์ธ์ˆ˜์ค‘ ์ตœ๋Œ€๊ฐ’์ด K๋ณด๋‹ค ํฌ์ง€ ์•Š์œผ๋ฉด K-์„ธ์ค€์ˆ˜์ด๋‹ค.
  • N์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ์ค‘์— K-์„ธ์ค€์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.

๐Ÿ”ธ ๋ฌธ์ œ ํ’€์ด ๐Ÿ”ธ

  • 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์ž์—ฐ์ˆ˜๋“ค ๊ฐ๊ฐ ์ตœ๋Œ€ ์†Œ์ธ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ , ๊ทธ ๊ฐ’์ด K๋ฅผ ๋„˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.
    • ์†Œ์ธ์ˆ˜ ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ž์—ฐ์ˆ˜๋ฅผ N๊นŒ์ง€ ํ‚ค์›Œ๊ฐ„๋‹ค.
    • ํ˜„์žฌ ์ˆ˜๊ฐ€ ์†Œ์ธ์ˆ˜์ด๋ฉด ๊ทธ ์ˆ˜์˜ N๋ณด๋‹ค ์ž‘์€ ๋ฐฐ์ˆ˜๋“ค์€ ํ˜„์žฌ ์ˆ˜๋ฅผ ์†Œ์ธ์ˆ˜ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ์ €์žฅํ•œ๋‹ค.(์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด)
    • ๋งŒ์•ฝ ํ˜„์žฌ ์ˆ˜๊ฐ€ ์ด์ „์— ๋ฐฐ์ˆ˜๋กœ ์†Œ์ธ์ˆ˜๋ฅผ ๊ตฌํ–ˆ์œผ๋ฉด ๊ทธ ์ˆ˜์™€ K๋ฅผ ๋น„๊ตํ•˜๊ณ , ์ด์ „์— ๊ตฌํ•œ ๊ฐ’์ด ์—†์œผ๋ฉด ํ˜„์žฌ ์ˆ˜ ์ž์ฒด๊ฐ€ ์†Œ์ธ์ˆ˜๋ผ๋Š” ๊ฒƒ์ด๋ฉฐ ์ด ๊ฐ’์„ K์™€ ๋น„๊ตํ•œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

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

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int N = Integer.parseInt(br.readLine());
		int K = Integer.parseInt(br.readLine());

		int[] arr = new int[N + 1];
		int answer = 1;

		for (int i = 2; i <= N; i++) {
			if (arr[i] == 0) { // ์ž๊ธฐ ์ž์‹ ์ด ์†Œ์ธ์ˆ˜
				if (i <= K)
					answer++;

				int temp = 2;
				while (i * temp <= N) {
					arr[i * temp] = i;
					temp++;
				}
			} else {
				if (arr[i] <= K)
					answer++;
			}
		}

		bw.write(Integer.toString(answer));
		bw.flush();
	}
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • N๊ณผ K๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , N+1 ํฌ๊ธฐ์˜ intํ˜• ๋ฐฐ์—ด arr๋ฅผ ์„ ์–ธํ•œ๋‹ค.
  • ํ˜„์žฌ ๋ฌธ์ œ๋Š” 1์„ ์†Œ์ธ์ˆ˜๋กœ ๊ณ„์‚ฐํ–ˆ์œผ๋‹ˆ, aswer์˜ ์ดˆ๊ธฐ๊ฐ’์€ 1์ด๊ณ  ํƒ์ƒ‰๋„ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
  • 2๋ถ€ํ„ฐ N๊นŒ์ง€ ์ธ๋ฑ์Šค๋ฅผ ๋Š˜๋ ค๊ฐ€๋ฉฐ ๊ฐ ์ˆ˜์˜ ์†Œ์ธ์ˆ˜ ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•œ๋‹ค.
    • ํ˜„์žฌ ์ธ๋ฑ์Šค์— 0์ด ์ €์žฅ๋˜์–ด์žˆ์œผ๋ฉด, ๊ทธ ์ธ๋ฑ์Šค๊ฐ€ ์†Œ์ธ์ˆ˜ ์ตœ๋Œ€๊ฐ’์ด๋‹ค.
      • ์ธ๋ฑ์Šค๊ฐ€ K์ดํ•˜๋ผ๋ฉด answer์„ +1 ํ•œ๋‹ค.
      • N์ดํ•˜์˜ ์ธ๋ฑ์Šค ๋ฐฐ์ˆ˜์— ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•œ๋‹ค. ์ž„์‹œ๋กœ ์†Œ์ธ์ˆ˜ ์ตœ๋Œ€๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
        ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๊ฐ€ ์ ์šฉ๋˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.
    • ํ˜„์žฌ ์ธ๋ฑ์Šค์— 0์ด ์•„๋‹Œ ๊ฐ’์ด ์ €์žฅ๋˜์–ด์žˆ์œผ๋ฉด, ๊ทธ ์ €์žฅ๋œ ์ˆ˜๊ฐ€ ์†Œ์ธ์ˆ˜ ์ตœ๋Œ€๊ฐ’์ด๋‹ค.
      • ์ €์žฅ๋œ ๊ฐ’์ด K์ดํ•˜์ด๋ฉด answer์„ +1ํ•œ๋‹ค.
  • answer์„ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์˜ค๋žœ๋งŒ์— ๋ฐฑ์ค€์„ ํ’€์—ˆ๋”๋‹ˆ ํ’€์ด ์‹œ๊ฐ„์ด ๊ฝค ๊ฑธ๋ฆฐ ๊ฒƒ ๊ฐ™๋‹ค. ์–ด์„œ ์žฌํ™œ์„ ๋งˆ์น˜๊ณ  ๊ณจ๋“œ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ ์‹ถ๋‹ค.
  • 1์€ ์‚ฌ์‹ค ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ์–ด์„œ ์†Œ์ธ์ˆ˜๋„ ์•„๋‹Œ๋ฐ, ์ง์ ‘ ์˜ˆ์ œ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ๊ณ„์‚ฐํ•ด๋ณด๋‹ˆ 1์„ ์ •๋‹ต์— ํฌํ•จํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ํฌํ•จ์‹œ์ผœ์„œ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
    • ๋•๋ถ„์— ๋ฌธ์ œ๋ฅผ ์ž˜๋ชป ์ดํ•ดํ•œ๊ฒŒ ์•„๋‹Œ๊ฐ€ ๊ฑฑ์ •ํ–ˆ๋Š”๋ฐ, ๊ทธ๋ƒฅ ๋ถˆ์นœ์ ˆํ•œ ๋ฌธ์ œ์˜€๋‹ค...
    • ๋‹ค์Œ์€ ์˜ˆ์ œ๋ฅผ ๊ณ„์‚ฐํ•ด๋ณธ ๊ณผ์ •์ด๋‹ค.

728x90

'CodingTest > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_1235 : ํ•™์ƒ ๋ฒˆํ˜ธ  (0) 2023.11.02
Lv.2 : ๊ธฐ๋Šฅ๊ฐœ๋ฐœ  (0) 2023.11.02
Lv.2 : [1์ฐจ] ์บ์‹œ  (0) 2023.11.01
Lv.2 : ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ  (0) 2023.10.17
Lv.2 : ํ• ์ธ ํ–‰์‚ฌ  (0) 2023.10.01