๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ฌธ์์ด ํ์, ๋น๊ตํด์ ๋ฌธ์์ด๋ก ๋ฆฌํดํ๋ ๋ฌธ์ ์๋ค.
1. ๋ฌธ์
์ํ๋ฒณ ๋๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ๊ฐ์ ๋ฌธ์๊ฐ ์ฐ์์ผ๋ก ๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ ๋ฐ๋ณต๋๋ ๋ฌธ์ ๋ฐ๋ก ์ค๋ฅธ์ชฝ์ ๋ฐ๋ณต ํ์๋ฅผ ํ๊ธฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์์ด์ ์์ถํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋จ ๋ฐ๋ณตํ์๊ฐ 1์ธ ๊ฒฝ์ฐ ์๋ตํฉ๋๋ค.
์ ๋ ฅ์์ | KKHSSSSSSSE
์ถ๋ ฅ์์ | K2HS7E
2. ์ ๊ทผ๋ฐฉ๋ฒ
๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ฌธ์์ด ํ์ํด์ ๋๊ฐ์ฉ ๋น๊ตํด์ countingํด์ฃผ๊ณ ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด์ ๋ฃ์ด์ค๋ค.
3. ๋ฌธ์ ํ์ด
1. ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฌธ์์ด์ด๋ค.
2. ๊ฐ์๋ฅผ ์นด์ดํ ํด์ answer๋ก ์ถ๋ ฅํด์ผํ๋ค.
3. -> ๋ฌธ์์ด ๋ด ๋ฌธ์ ๋๊ฐ ๋น๊ตํด์ ๊ฐ์ผ๋ฉด ์นด์ดํ
-> ๋ค๋ฅธ ๊ฒฝ์ฐ answer์ ๋ฌธ์ ๋์ ํ๊ณ
-> ๊ฐ์๋ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ answer์ ๋์ ํ๋ค. (count > 1 ์ธ ๊ฒฝ์ฐ์๋ง)
-> ์นด์ดํธ๋ ์๋๋๋ก ์ด๊ธฐํํด์ค๋ค.
function solution(str){
let answer = "";
let count = 1;
for(let i=0; i<str.length; i++){
if(str[i] === str[i+1]{
count++;
} else {
answer += str[i];
answer += count.toString();
count = 1;
}
}
return answer;
}
let str = "KKHSSSSSSSE";
console.log(solution(str));
๋ฐ๋ณตํ์๊ฐ 1์ธ ๊ฒฝ์ฐ ์๋ตํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ์ง ๋ชปํ๋ค.
ํด๊ฒฐ๋ฐฉ๋ฒ
else์์ ๋ if๋ฌธ์ ์์ฑํ ์๊ฐ ์์๋ค!
function solution(str){
let answer = ""; //์ถ๋ ฅ์ด ๋ฌธ์์ด๋ก ๋์์ผํ๋๊น
let count = 1; //์ ์ผ ์์ ๋ฌธ์ํ๋๋ ๊ธฐ๋ณธ์ผ๋ก ์์ผ๋๊น 1๋ก ์ ์ฅํด์ฃผ๊ธฐ
for(let i=0; i<str.length: i++){
if(str[i] === str[i+1]){
count++;
} else {
answer += str[i]; // answer์ ๋ฌธ์๋์ ํด์ฃผ๊ณ
if(count>1) answer += count.toString();
// count๊ฐ 1๋ณด๋ค ํฌ๋ฉด ๋ฌธ์๋ก ๋ฐ๊ฟ์ answer์ ๋์
count = 1; // count๋ ๋ค์ 1๋ก ์ด๊ธฐํ์์ผ์ค๋ค.
}
}
return answer;
}
let str = "KKHSSSSSSSE";
console.log(solution(str));
๋ฐ๋ณตํ์๊ฐ 1์ธ๊ฒฝ์ฐ ์๋ตํ๋ ค๋ฉด count ๊ฐ 1๋ณด๋ค ํฐ ๊ฒฝ์ฐ์๋ง ์ถ๋ ฅํ๋๋กํ๋ ์ฝ๋๋ฅผ ์จ์ฃผ์๋ค.
3. ์ฌ์ฉํ ๊ฐ๋
Number.toString()
์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
String(Number)
์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ์คํจ์จ (0) | 2021.09.10 |
---|---|
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ๋ชจ์๊ณ ์ฌ (0) | 2021.09.09 |
JS์๊ณ ๋ฆฌ์ฆ | ๊ฐ์ฅ ์งง์ ๋ฌธ์๊ฑฐ๋ฆฌ (0) | 2021.05.09 |
JS์๊ณ ๋ฆฌ์ฆ | ๋ฌธ์์ด์์ ์ซ์๋ง ์ถ์ถ (0) | 2021.05.06 |
JS์๊ณ ๋ฆฌ์ฆ | ์ ํจํ ํฐ๋ฆฐ๋๋กฌ(๋ฌธ์์ดํ์+์กฐ๊ฑด) (0) | 2021.05.05 |