[๋ฐฑ์ค] 1543๋ฒ - ๋ฌธ์ ๊ฒ์ (JS)
1543๋ฒ: ๋ฌธ์ ๊ฒ์
์ธ์ค์ด๋ ์์ด๋ก๋ง ์ด๋ฃจ์ด์ง ์ด๋ค ๋ฌธ์๋ฅผ ๊ฒ์ํ๋ ํจ์๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค. ์ด ํจ์๋ ์ด๋ค ๋จ์ด๊ฐ ์ด ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง ์ธ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋, ์ธ์ค์ด์ ํจ์๋ ์ค๋ณต๋์ด ์ธ๋ ๊ฒ์ ๋นผ๊ณ ์ธ์ผ ํ
www.acmicpc.net
๋ฌธ์
์ธ์ค์ด๋ ์์ด๋ก๋ง ์ด๋ฃจ์ด์ง ์ด๋ค ๋ฌธ์๋ฅผ ๊ฒ์ํ๋ ํจ์๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค. ์ด ํจ์๋ ์ด๋ค ๋จ์ด๊ฐ ์ด ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง ์ธ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋, ์ธ์ค์ด์ ํจ์๋ ์ค๋ณต๋์ด ์ธ๋ ๊ฒ์ ๋นผ๊ณ ์ธ์ผ ํ๋ค. ์๋ฅผ ๋ค์ด, ๋ฌธ์๊ฐ abababa์ด๊ณ , ๊ทธ๋ฆฌ๊ณ ์ฐพ์ผ๋ ค๋ ๋จ์ด๊ฐ ababa๋ผ๋ฉด, ์ธ์ค์ด์ ์ด ํจ์๋ ์ด ๋จ์ด๋ฅผ 0๋ฒ๋ถํฐ ์ฐพ์ ์ ์๊ณ , 2๋ฒ๋ถํฐ๋ ์ฐพ์ ์ ์๋ค. ๊ทธ๋ฌ๋ ๋์์ ์ ์๋ ์๋ค.
์ธ์ค์ด๋ ๋ฌธ์์ ๊ฒ์ํ๋ ค๋ ๋จ์ด๊ฐ ์ฃผ์ด์ก์ ๋, ๊ทธ ๋จ์ด๊ฐ ์ต๋ ๋ช ๋ฒ ์ค๋ณต๋์ง ์๊ฒ ๋ฑ์ฅํ๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ฌธ์๊ฐ ์ฃผ์ด์ง๋ค. ๋ฌธ์์ ๊ธธ์ด๋ ์ต๋ 2500์ด๋ค. ๋์งธ ์ค์ ๊ฒ์ํ๊ณ ์ถ์ ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ค. ์ด ๊ธธ์ด๋ ์ต๋ 50์ด๋ค. ๋ฌธ์์ ๋จ์ด๋ ์ํ๋ฒณ ์๋ฌธ์์ ๊ณต๋ฐฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ค๋ณต๋์ง ์๊ฒ ์ต๋ ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง ์ถ๋ ฅํ๋ค.

ํ์ด๊ณผ์
ํด๋น ๋ฌธ์์ด์์ ์ฐพ๊ณ ์ถ์ ๋ฌธ์์ ์์น๋ฅผ indexOf๋ก ์ฐพ๊ณ ๋ฌธ์์ ๊ธธ์ด๋งํผ ๋ฌธ์์ด์ ๋ฐ์ด๋์ด ๋ฐฐ์ด์ ์งํ์ํค๋ ๋ฐฉ์์ ์ฌ์ฉํ์๋ค.
code
function find() {
const [...arr] = require('fs')
.readFileSync('/dev/stdin')
.toString()
.trim()
.split('\n');
let document = arr[0];
let word = arr[1];
let count = 0, num = 0, i = 0;
while (i < document.length) {
num = document.indexOf(word, i);
if (num !== -1) {
count++;
i = num + word.length - 1;
}
i++;
}
console.log(count);
}
find();
ํ๊ธฐ
ํฌ๊ฒ ์ด๋ ต์ง์๊ฒ ์ ๊ทผํ ์ ์์๋ค.