[ํ๋ก๊ทธ๋๋จธ์ค:Javascript] ๋ฌธ์์ด์ด ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง ์ธ๊ธฐ
ํ๋ก๊ทธ๋๋จธ์ค Lv.0
- ๋ฌธ์์ด์ด ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง ์ธ๊ธฐ
๐ ๋ฌธ์ ์ค๋ช
๐ ์ ํ์กฐ๊ฑด
- 1 ≤ myString ≤ 1000
- 1 ≤ pat ≤ 10
๐ ํ์ด
function solution(myString, pat) {
let answer = 0;
let index = myString.indexOf(pat);
while (index !== -1) {
answer++;
index = myString.indexOf(pat, index + 1);
}
return answer
}
โ
pat๊ฐ myString์ ๋ํ๋๋ ํ์๋ฅผ ์ฐพ๊ธฐ ์ํด answer ๋ณ์๋ฅผ ์ด๊ธฐํ ํด๋ํ,
myString์์ pat๊ฐ ์ฒ์ ๋ํ๋๋ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋๋ค. ( pat๋ฅผ ์ฐพ์ ์ ์์ผ๋ฉด indexOf๋ -1์ ๋ฐํํ๋ค. )
๐ก indexOf( ) ๋ฉ์๋๋ ํธ์ถํ String ๊ฐ์ฒด์์ ์ฃผ์ด์ง ๊ฐ๊ณผ ์ผ์นํ๋ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค. ์ผ์นํ๋ ๊ฐ์ด ์์ผ๋ฉด -1์ ๋ฐํํฉ๋๋ค.
index๊ฐ -1์ด ์๋ ํ ๊ณ์๋๋ while๋ฌธ์ ๋ฐ๋ณตํ๊ณ ,
answer++ ๋ pat๋ฅผ ์ฐพ์ผ๋ฉด answer๋ณ์๋ฅผ ํ๋์ฉ ์ฆ๊ฐํ๊ณ ,
index = myString.indexOf(pat, index + 1)๋ myString์์ pat๋ฅผ ์ฐพ๋ ์ญํ ์ ํ๋ฉฐ, ๋ง์ง๋ง pat ๋ฐ๋ก ๋ค์ ์ธ๋ฑ์ค์์ ๊ฒ์์ ํ๋ค.
fromIndex๋ก index + 1์ ์ค์ ํ๋ฉด ๋ง์ง๋ง์ผ๋ก ๋ฐ๊ฒฌ๋ ํญ๋ชฉ ์งํ์ ๋ค์ ํญ๋ชฉ์ธ pat์ ๋ํ ๊ฒ์์ ์์ํ๋ค.
myString์ pat๊ฐ ๋ ์ด์ ๋ฐ์ํ์ง ์์ผ๋ฉด indexOf๋ -1์ ๋ฐํํ๊ณ while๋ฌธ์ ์ค์ง๋๊ณ , answer๋ฅผ returnํ๋ค.