https://www.acmicpc.net/problem/1543
์ฝ๋
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.nextLine(); // ๋ฌธ์
String word = scan.nextLine(); // ๊ฒ์ํ๊ณ ์ถ์ ๋จ์ด
int count = 0; // ๋จ์ด๊ฐ ์ค๋ณต๋์ง์๊ณ ๋ฑ์ฅํ๋ ํ์
int index = 0; // ๋ฌธ์์์ ๊ฒ์ํ ๋จ์ด๋ฅผ ์ฐพ์ ๋ ์์ํ ์ธ๋ฑ์ค์ ๊ฐ
for(int i=index; i<=str.length() - word.length(); i++) {
boolean flag = true; // ์ค๋ณต๋ ๋จ์ด ๋ฑ์ฅํ๋์ง ํ๋ณ
for(int j=0; j<word.length(); j++) {
// ๋ฌธ์์ ๊ฒ์ํ๋ ค๋ ๋จ์ด๊ฐ ๋ค๋ฅผ๊ฒฝ์ฐ
if(str.charAt(i+j) != word.charAt(j)) {
flag = false;
break;
}
}
/*
* ๋ฌธ์์ ๊ฒ์ํ๋ ๋จ์ด๊ฐ ๊ฐ์ ๊ฒฝ์ฐ
* - ๋ฑ์ฅ ํ์ +1
* - ๋ค์ ๋ฑ์ฅํ๋ ํ์๋ฅผ ์ฐพ๊ธฐ์ํด ์ธ๋ฑ์ค๋ฅผ ๋ฌธ์์ ๊ธธ์ด๋งํผ ๋ํ๋ค.
*/
if(flag) {
count ++;
index += word.length();
i = index-1;
}
// ๋ฌธ์์ ๊ฒ์ํ๋ ๋จ์ด๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ
// ๋ฐ๋ก ๋ค์ ์ํ๋ฒณ๋ถํฐ ํ์ํ๋ฉด ๋๋ฏ๋ก ์ธ๋ฑ์ค๋ฅผ +1 ํ๋ค.
else {
index ++;
}
}
System.out.println(count);
scan.close();
}
}
ํ์ด
์ฃผ์ด์ง ๋ฌธ์(๋ฌธ์์ด)์์ ์ด๋ค ๋จ์ด๊ฐ ์ด ๋ช๋ฒ ๋ฑ์ฅํ๋์ง ์ค๋ณต์ ์ ์ธํ๊ณ ์ธ์๋ฆฌ๋ฉด ๋๋ค.
๋ฌธ์ : ababababa
๋จ์ด : aba
๋ผ๊ณ ๊ฐ์ ํ์ ๋, ๋ฌธ์์ ๊ธธ์ด๋ 9, ๋จ์ด์ ๊ธธ์ด๋ 3์ด๋ค.
๋ฐ for๋ฌธ์ ๋ฌธ์์ ๊ธธ์ด - ๋จ์ด์ ๊ธธ์ด ๋งํผ ๋ฐ๋ณตํ๋ ์ด์ ๋, ์์ ์์์์ ababababa <- ๋นจ๊ฐ์ ๋งํผ๋ง ๋ฐ๋ณตํ๋ฉด์ ํ๋จํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ด๋ค.
1. ๋ฌธ์์ ๋จ์ด๊ฐ ๋ค๋ฅธ๊ฒฝ์ฐ
๋ฌธ์: b
๋จ์ด: a
flag ๋ณ์๋ฅผ false๋ก ์ ์ฅํ ํ ๋ฐ๋ก ์์ชฝ for๋ฌธ์ ๋น ์ ธ๋๊ฐ๋ค.
2. ์์ชฝ for๋ฌธ(๋ฌธ์์ ๋จ์ด๊ฐ ๋์ผํ์ง ์๋์ง ํ๋จ)์ด ๋๋ฌ์ ๊ฒฝ์ฐ,
๋ง์ฝ ๋ฌธ์์ ๋จ์ด๊ฐ ๋์ผํด์ flag๊ฐ true์ผ ๊ฒฝ์ฐ
์ค๋ณต์ ๋ฐ์ด๋๊ธฐ ์ํด index ๊ฐ์ ๋ฌธ์์ ๊ธธ์ด๋งํผ ๋ํ๋ค.
ababababa
aba
์์์ ์์ 3๊ฐ๋ ๋์ผํ๋ฏ๋ก, ๋ค์๊บผ(bababa)๋ถํฐ ํ๋จํ๋ฉด ๋๋ฏ๋ก 3์ ๋ํ๋ค.
i์ index - 1 ์ ๋ํ ์ด์ ๋ ๋ฐ for๋ฌธ์์ +1์ ํด์ฃผ๊ธฐ ๋๋ฌธ์ -1์ ๋ํด์ค๋ค.
๋ง์ฝ ๋ฌธ์์ ๋จ์ด๊ฐ ๋ฌ๋ผ์ flag๊ฐ false์ธ ๊ฒฝ์ฐ
์ด๋๋ ๋ฌธ์์ ๋ฐ๋ก ๋ค์ ๋ฌธ์๋ถํฐ ํ์ํ๊ธฐ์ํด index๋ฅผ ++ํด์ค๋ค.
* ๋ฌธ์ ์์ ์กฐ์ฌํ ์ ์ ๋ฌธ์์ ๋จ์ด๋ ์ํ๋ฒณ ์๋ฌธ์์ ๊ณต๋ฐฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ์๋ค๊ณ ๋์์๋ค.
* ๋ฐ๋ผ์ ๊ณต๋ฐฑ์ ์ฃผ์ํด ๋ฌธ์์ ๋จ์ด๋ฅผ ์ ๋ ฅ๋ฐ์๋ next() ๊ฐ ์๋ nextLine() ๋ก ์ ๋ ฅ๋ฐ์์ผ ํ๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2667๋ฒ: ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ(๊ทธ๋ํ, DFS) (0) | 2020.02.03 |
---|---|
[๋ฐฑ์ค] 1049๋ฒ: ๊ธฐํ์ค(๊ทธ๋ฆฌ๋, ๊ตฌํ) (0) | 2020.02.03 |
[๋ฐฑ์ค] 2399๋ฒ: ๊ฑฐ๋ฆฌ์ ํฉ (0) | 2020.01.29 |
[๋ฐฑ์ค] 1946๋ฒ: ์ ์ ์ฌ์(๊ทธ๋ฆฌ๋, ์ ๋ ฌ) (0) | 2020.01.29 |
[๋ฐฑ์ค] 2903๋ฒ: ์ค์ ์ด๋ ์๊ณ ๋ฆฌ์ฆ (0) | 2020.01.29 |
๋๊ธ