๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 11008_๋ณต๋ถ™์˜ ๋‹ฌ์ธ

๋ฟŒ์•ผ._. 2024. 6. 5. 20:32

Silver V

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

< ๋ณต๋ถ™์˜ ๋‹ฌ์ธ >

 

๋ฌธ์ œ ํ’€์ด 

 

p๋ฅผ ๋ถ™์—ฌ ๋„ฃ๊ธฐ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์—๋Š” p๋ฅผ ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ํ•œ ๊ธ€์ž์”ฉ ์ž…๋ ฅํ•œ๋‹ค.

 

 my solution (Java)

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

public class _11008_ { // ๋ณต๋ถ™์˜ ๋‹ฌ์ธ

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

		int t = Integer.parseInt(bf.readLine());

		for (int i = 0; i < t; i++) {
			st = new StringTokenizer(bf.readLine());

			String s = st.nextToken();
			String p = st.nextToken();

			int time = 0, idx = 0;

			while (idx < s.length()) {
				if (idx + p.length() - 1 < s.length() && s.substring(idx, idx + p.length()).equals(p)) {
					idx += p.length();
				} else {
					idx += 1;
				}
				time += 1;
			}
			bw.write(time + "\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
t : ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๊ฐœ์ˆ˜
s, p : ์ž…๋ ฅ ๋ฌธ์ž์—ด, ํด๋ฆฝ๋ณด๋“œ์— ์ €์žฅํ•œ ๋ฌธ์ž์—ด
time, idx : ์ตœ์†Œ ์‹œ๊ฐ„, ์ž…๋ ฅ ์œ„์น˜

 

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜๋งŒํผ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

1) s์™€ p๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

2) s์˜ 0๋ฒˆ์งธ๋ถ€ํ„ฐ ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•œ๋‹ค. ๋งŒ์•ฝ p์™€ ์ผ์น˜ํ•˜๋‹ค๋ฉด p๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ผ์น˜ํ•˜์ง€ ์•Š๋‹ค๋ฉด ํ•œ ๊ธ€์ž๋งŒ ์ž…๋ ฅํ•œ๋‹ค.

3) ์ตœ์ข… ์ตœ์†Œ ์‹œ๊ฐ„์ธ time์„ ์ถœ๋ ฅํ•œ๋‹ค.