๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 5636_์†Œ์ˆ˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด

๋ฟŒ์•ผ._. 2024. 3. 11. 11:29

Silver I

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/5636)

< ์†Œ์ˆ˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด >

 

๋ฌธ์ œ ํ’€์ด 

 

2๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์†Œ์ˆ˜๋งŒ ์†Œ์ˆ˜๋ผ๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 100,000๊นŒ์ง€ ์†Œ์ˆ˜ ํŒ๋ณ„์„ ํ•œ๋‹ค. ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ 1์ž๋ฆฌ๋ถ€ํ„ฐ 6์ž๋ฆฌ๊นŒ์ง€ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ๊ตฌํ•ด ๊ฐ€์žฅ ํฐ ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.

 

 

 my solution (Java)

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

public class _5636_ { // ์†Œ์ˆ˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด

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

		boolean arr[] = new boolean[100001];
		arr[0] = true;
		arr[1] = true;
		for (int i = 2; i < 50001; i++) {
			if(!arr[i]) {
				for (int j = i + i; j < 100001; j += i) {
					arr[j] = true;
				}
			}	
		}

		String str = "";
		while (!(str = bf.readLine()).equals("0")) {
			int max = 0;
			for (int i = 0; i < str.length(); i++) {
				for (int j = i; j < i + 6; j++) {
					if (j >= str.length())
						break;
					int num = Integer.parseInt(str.substring(i, j + 1));
					if (num > 100000) {
						continue;
					}
					if (!arr[num]) {
						max = Math.max(num, max);
					}
				}
			}
			bw.write(max + "\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
arr : 0~100,000 ์†Œ์ˆ˜ ํŒ๋ณ„
str : ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด
max : ๊ฐ€์žฅ ํฐ ์†Œ์ˆ˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด

 

์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ 0๋ถ€ํ„ฐ 100,000๊นŒ์ง€ ์†Œ์ˆ˜๋ฅผ ํŒ๋ณ„ํ•œ๋‹ค.

0์ด ์•„๋‹ ๋•Œ๊นŒ์ง€ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

1) 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์†Œ์ˆ˜๋งŒ ์†Œ์ˆ˜์ด๋ฏ€๋กœ 1์ž๋ฆฌ~6์ž๋ฆฌ์˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ๊ตฌํ•œ๋‹ค.

2) ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ๊ตฌํ•ด 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด ์†Œ์ˆ˜์ธ์ง€ ํŒ๋‹จํ•œ๋‹ค. ์†Œ์ˆ˜๋ผ๋ฉด ๊ฐ€์žฅ ํฐ ์†Œ์ˆ˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ธ์ง€ ํŒ๋‹จํ•œ๋‹ค.

 

๊ฐ€์žฅ ํฐ ์†Œ์ˆ˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.