1. ๋ฌธ์
ํ ๊ฐ์ ๋ฌธ์์ด s์ ๋ฌธ์ t๊ฐ ์ฃผ์ด์ง๋ฉด ๋ฌธ์์ด s์ ๊ฐ ๋ฌธ์๊ฐ ๋ฌธ์ t์ ๋จ์ด์ง ์ต์๊ฑฐ๋ฆฌ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
์ ๋ ฅ์ค๋ช |
์ฒซ ๋ฒ์งธ ์ค์ ๋ฌธ์์ด s์ ๋ฌธ์ t๊ฐ ์ฃผ์ด์ง๋ค. ๋ฌธ์์ด๊ณผ ๋ฌธ์๋ ์๋ฌธ์๋ก๋ง ์ฃผ์ด์ง๋๋ค.
๋ฌธ์์ด์ ๊ธธ์ด๋ 100์ ๋์ง ์๋๋ค.
์ ๋ ฅ์์ | teachermode e
์ถ๋ ฅ์์ | 1 0 1 2 1 0 1 2 2 1 0
*๋ง์ฝ ๋ฌธ์ ๋ฅผ ์ฝ๊ณ ๋ ์ดํด๊ฐ ์๊ฐ๋ฉด, ์ ๋ ฅ์์ ์ ์ถ๋ ฅ์์ ๋ฅผ ๋ณด๋ฉด์ ์ด๋ป๊ฒ ๋์ค๋๊ฑด์ง ์ ์ถํ๋ ๊ฒ๋ ๋ฌธ์ ํด๊ฒฐ๋ฅ๋ ฅ์ด๋ค.
2. ์ ๊ทผ๋ฐฉ๋ฒ
๋ฌธ์์ด ์์์๋ถํฐ ํ์, ๋ค์์๋ถํฐ ํ์ ๋น๊ตํด์ ์ต์๊ฐ์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๊ธฐ
๋ฐ๋ชฉ๋ฌธ์ผ๋ก ๋ฌธ์์ด ํ๋์ฉ ๋๋ฉด์ ํ์
e๊ฐ ์๋ ๊ฒฝ์ฐ ์นด์ดํ ํ๋ฉด์ ์ฆ๊ฐ์ํจ๋ค.
๋ฐ๋๋ก ๋ง์ง๋ง ์ธ๋ฑ์ค๋ถํฐ ๋ฌธ์์ด ํ๋์ฉ ๋๋ฉด์ ํ์
e๊ฐ ์๋ ๊ฒฝ์ฐ ์นด์ดํ ํ๋ฉด์ ์ฆ๊ฐ์ํจ๋ค.
๊ทธ๋ฆฌ๊ณ ๋น๊ตํด์ ์ต์๊ฐ์ผ๋ก ๋ณ๊ฒฝํด์ค๋ค.
3. ๋ฌธ์ ํ์ด
e์์๋ถํฐ์ ๊ฐ์ฅ ์งง์ ๊ฑฐ๋ฆฌ๋ฅผ ๋ฆฌํดํด์ผํ๋ค.
answer๋ฅผ ๋ฐฐ์ด๋ก ๋ฃ๊ณ , ๊ฐ์ ๋ฐฐ์ด์ pushํ๊ธฐ๋ก ํ๋ค.
์ต๋๋ฌธ์์ด์ ๊ธธ์ด 100์ด๋ฏ๋ก ๋ณ์ p๋ฅผ ์ต๋๊ฐ 100์ผ๋ก ์์ฑํด์ฃผ๊ธฐ๋ก ํ๋ค.
1. ๋ฌธ์ e์์ ์ฐ์ธก๋ฐฉํฅ์ผ๋ก์ ๊ฑฐ๋ฆฌ ๊ตฌํ๊ธฐ
for of ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด์ ๋ฌธ์์ด์ ๋๋ฉด์ ๋ฌธ์๊ฐ e๊ฐ ์๋๋ฉด p++์ ํด์ค๋ค.
e์ด๋ฉด 0์ผ๋ก ์ด๊ธฐํํ๋ค.
์ด ๋ฐฉ๋ฒ์ ๋ฌธ์ e์์ ์ฐ์ธก๋ฐฉํฅ์ผ๋ก์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ ๊ฒ์ด๋ค.
2. ๋ฌธ์ e์์ ์ข์ธก๋ฐฉํฅ์ผ๋ก์ ๊ฑฐ๋ฆฌ ๊ตฌํ๊ณ ๋น๊ต
๋ค์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ฌธ์์ด์ ๋ฐ๋๋ก ๋๋ค.
๋ฐ๋๋ก ๋๋ฉด์ e์์ ์ข์ธก๋ฐฉํฅ์ผ๋ก์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ค.
์ฆ, ์ข์ธก์ด๋ ์ฐ์ธก์ด๋ ๋์ค์์ ๊ฐ์ฅ ๋ ์์ ์๋ฅผ ๋ฆฌํดํ๋๋ก ํ๋ค.
function solution(str, e){
let answer = [];
let p = 100; // ๋ฌธ์์ด์ ๊ธธ์ด๋ 100์ ๋์ง ์์ผ๋ฏ๋ก ์ต๋๊ฐ 100์ผ๋ก ์ค์ ํด์ค๋ค.
for(x of str){
if(x === e){
p=0; // p๋ฅผ 0์ผ๋ก ์ด๊ธฐํํด์ค๋ค
answer.push(p);
} else {
p++;
answer.push(p);
}
}
p = 100; // ๋ฐ๋ณต๋ฌธ์ ๋ค์ ์์ํ๊ธฐ ์ ์ ๋ณ์ p ์๋๋๋ก ์ด๊ธฐํ
for(let i = str.length-1; i>=0; i--){
if(str[i] ===e){
p=0;
} else {
p++;
answer[i] = Math.min(answer[i], p);
// ์ฒซ๋ฒ์งธ ๋ฐ๋ณต๋ฌธ์ ํตํด ๋ค์ด์๋ p์ ํ์ฌ answer[i]๋ฅผ ๋น๊ตํด์ ์์ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
}
}
return answer;
}
let str = "teachermode";
console.log(solution(str, 'e');
4. ์ฌ์ฉ๊ฐ๋
Math.min()
Math.min([value1[, value2[, )
์ฌ๊ธฐ์ value๋ ์ซ์ํ์ด์ด์ผํ๋ค. 1๊ฐ ์ด์์ ์ธ์๊ฐ์ด ์ซ์ํ์ผ๋ก ๋ณํ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ NaN ๋ฐํ
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ๋ชจ์๊ณ ์ฌ (0) | 2021.09.09 |
---|---|
JS์๊ณ ๋ฆฌ์ฆ | ๋ฌธ์์ด ์์ถ (2) | 2021.05.13 |
JS์๊ณ ๋ฆฌ์ฆ | ๋ฌธ์์ด์์ ์ซ์๋ง ์ถ์ถ (0) | 2021.05.06 |
JS์๊ณ ๋ฆฌ์ฆ | ์ ํจํ ํฐ๋ฆฐ๋๋กฌ(๋ฌธ์์ดํ์+์กฐ๊ฑด) (0) | 2021.05.05 |
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ฌธ ๋ฌธ์์ด(๋ฌธ์์ด ํ์) (0) | 2021.05.03 |