[Algorithm] ๐Ÿ”๋ฐฑ์ค€ 1543 ๋ฌธ์„œ ๊ฒ€์ƒ‰

HaJingJingยท2021๋…„ 6์›” 30์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
86/119

0. ๋ฌธ์ œ

์„ธ์ค€์ด๋Š” ์˜์–ด๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์–ด๋–ค ๋ฌธ์„œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์–ด๋–ค ๋‹จ์–ด๊ฐ€ ์ด ๋ช‡ ๋ฒˆ ๋“ฑ์žฅํ•˜๋Š”์ง€ ์„ธ๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์„ธ์ค€์ด์˜ ํ•จ์ˆ˜๋Š” ์ค‘๋ณต๋˜์–ด ์„ธ๋Š” ๊ฒƒ์€ ๋นผ๊ณ  ์„ธ์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์„œ๊ฐ€ abababa์ด๊ณ , ๊ทธ๋ฆฌ๊ณ  ์ฐพ์œผ๋ ค๋Š” ๋‹จ์–ด๊ฐ€ ababa๋ผ๋ฉด, ์„ธ์ค€์ด์˜ ์ด ํ•จ์ˆ˜๋Š” ์ด ๋‹จ์–ด๋ฅผ 0๋ฒˆ๋ถ€ํ„ฐ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ , 2๋ฒˆ๋ถ€ํ„ฐ๋„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์‹œ์— ์…€ ์ˆ˜๋Š” ์—†๋‹ค.

์„ธ์ค€์ด๋Š” ๋ฌธ์„œ์™€ ๊ฒ€์ƒ‰ํ•˜๋ ค๋Š” ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ ๋‹จ์–ด๊ฐ€ ์ตœ๋Œ€ ๋ช‡ ๋ฒˆ ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ๋“ฑ์žฅํ•˜๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ
์ฒซ์งธ ์ค„์— ๋ฌธ์„œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์„œ์˜ ๊ธธ์ด๋Š” ์ตœ๋Œ€ 2500์ด๋‹ค. ๋‘˜์งธ ์ค„์— ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‹ถ์€ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ธธ์ด๋Š” ์ตœ๋Œ€ 50์ด๋‹ค. ๋ฌธ์„œ์™€ ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

์ถœ๋ ฅ
์ฒซ์งธ ์ค„์— ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ์ตœ๋Œ€ ๋ช‡ ๋ฒˆ ๋“ฑ์žฅํ•˜๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

1. ์•„์ด๋””์–ด

๐Ÿ’ก ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋‹จ์–ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•œ ํ›„, ๋ฌธ์„œ๋ฅผ ๋‹จ์–ด์˜ ๊ธธ์ด๋งŒํผ ์ž˜๋ผ์„œ ๋น„๊ตํ•จ

2. ํ•ต์‹ฌ ํ’€์ด

  1. ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋‹จ์–ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•œ ํ›„, ๋ฌธ์„œ๋ฅผ ๋‹จ์–ด์˜ ๊ธธ์ด๋งŒํผ ์ž˜๋ผ์„œ ๋น„๊ตํ•จ
String sub = document.substring(idx, idx+wLength);
			
if(sub.equals(word)) {
	idx += wLength;
	count++;
} else {
	idx += 1;
}

3. ์ฝ”๋“œ

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Imple_9 {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String document = br.readLine().trim();
		String word = br.readLine().trim();
		
		int wLength = word.length();
		int idx = 0;
		int count = 0;
		
		while(true) {
			
			if(idx+wLength > document.length())
				break;
			
			String sub = document.substring(idx, idx+wLength);
			
			if(sub.equals(word)) {
				idx += wLength;
				count++;
			} else {
				idx += 1;
			}
		}
		
		System.out.println(count);
	}

}

4. ๊ฒฐ๊ณผ

์„ฑ๊ณตโœจ

profile
๐ŸŒฑ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๐ŸŒฑ

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