์ด ๋ฌธ์ ๋ ํ์๋ค๊ธฐ ๋ณด๋จ ๋ค๋ฅธ ์ฌ๋ ์ฝ๋๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ค..!
reduce ๋ฅผ ์ด์ฉํด ์ธ์ผํ๋ ๊ฐ๋ง count ํด์ค๋ค.
์ธ์ผ ํ๋ ๊ฐ์ conStr ๊ณผ pat ์ ๋น๊ตํ๋ฉด ๋๋ค.
๋น๊ตํ conStr ์ ๊ธฐ์กด ๋ฌธ์๋ฅผ pat ์ ๊ธธ์ด๋งํผ์ฉ ์๋ผ๋ธ ๊ฐ์ธ๋ฐ,
์ค๋ช ์ฒ๋ผ ์๋ก์ด ๊ฐ์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด์ ์ฃผ์ด์ง myString ์๋ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค.
function solution(myString, pat) {
const result = [...myString].reduce((acc, cur, ind) => {
const conStr = myString.slice(ind, pat.length + ind)
console.log(acc, cur, ind)
return conStr === pat ? acc + 1 : acc;
}, 0);
console.log("result", result)
}
"banana", "ana" ์ธ ๊ฒฝ์ฐ ์ถ๋ ฅ๊ฐ
0 b 0
0 a 1
1 n 2
1 a 3
2 n 4
2 a 5
result 2
๋น๊ตํด์ ๊ฐ์ ๋ฌธ์์ผ ๊ฒฝ์ฐ์๋ง acc ๊ฐ์ +1์ ํด์ฃผ๊ธฐ ๋๋ฌธ์
๋์ค์ return ๋๋ ๊ฐ์ด ๊ฐ์ ๋ฌธ์๋ฅผ ์ฐพ์ ์์ ๋์ผํ๋ค.
for ๋ฌธ์ผ๋ก ๋ํ๋ด๋ฉด ์ด๋ ๋ค.
function solution(myString, pat) {
let count = 0;
for (let i = 0; i <= myString.length - pat.length; i++) {
if (myString.slice(i, i + pat.length) === pat) {
count++;
}
}
return count;
}
์ด์ ์ reduce ๋ฅผ ์ฌ์ฉํ ๋ ๋ฐฐ์ด ์ ์ฒด์ ์๋ฅผ ํฉ์ณ์ผ ํ๋ค๋์ง ํ๋ ๊ฒฝ์ฐ ๋ฐ์ ์์จ๋ดค๋๋ฐ,
์ด๋ ๊ฒ๋ ํ์ฉํ ์ ์๊ตฌ๋.. ์์ผ ๊นจ๋ฌ์๋ค.
์์ฆ ๋ฌธ์ ๊ฐ ์ ์ํ๋ฆฌ๋๋ฐ
๋๋ฌด ๋ณต์กํ๊ฒ ์๊ฐ ๋ง๊ณ , ๋จ์ํ๊ฒ ์๊ฐํ๋ ๋ง์ด ๋ฐฐ์ฐ์,,