728x90
๋ฐ์ํ
๐ ๋ฌธ์
์ํ๋ฒณ ๋๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ๊ฐ์ ๋ฌธ์๊ฐ ์ฐ์์ผ๋ก ๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ ๋ฐ๋ณต๋๋ ๋ฌธ์ ๋ฐ๋ก ์ค๋ฅธ์ชฝ์ ๋ฐ๋ณต ํ์๋ฅผ ํ๊ธฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์์ด์ ์์ถํ๋ ๋ฌธ์ ์ด๋ค.
๋จ, ๋ฐ๋ณต ํ์๊ฐ 1์ธ ๊ฒฝ์ฐ ์๋ตํ๋ค.
์ ๋ ฅ์์ | ์ถ๋ ฅ์์ |
KKHSSSSSSSE | K2HS7E |
๐ ํ์ด
๐ง๐ป๐ป ๋์ ํ์ด ๋ฐฉ๋ฒ
๋ณ์ ์ ๋ณด - s[i](ํ์ฌ ๋ฌธ์), c(์ด์ ๋ฌธ์), cnt(๋ฐ๋ณต ํ์)
- cnt ๊ฐ์ 1๋ก, c์ ๊ฐ์ ๋ฌธ์์ด์ ์ฒซ ๋ฒ์งธ ๋ฌธ์๋ก ์ด๊ธฐํํ๋ค.
- ํ์ฌ ๋ฌธ์๊ฐ ์ด์ ๋ฌธ์์ ๊ฐ์ ๊ฒฝ์ฐ ๊ฐ์ ๋ฌธ์๊ฐ ์ฐ์์ผ๋ก ๋ฐ๋ณต๋๋ ๊ฒ์ด๋ฏ๋ก cnt++์ ํ๋ค.
- ํ์ฌ ๋ฌธ์๊ฐ ์ด์ ๋ฌธ์์ ๋ค๋ฅธ ๊ฒฝ์ฐ cnt ๊ฐ์ด 1์ธ์ง ์๋์ง ๊ฒ์ฌํ ํ answer ๋ณ์์ ๊ฐ์ ๋์ ํ๋ค.
- ๋ค์ ๊ฒ์ฌ๋ฅผ ์ํด cnt ๊ฐ์ 1๋ก c์ ๊ฐ์ s[i]๋ก ์ด๊ธฐํํ๋ค.
function solution(s) {
let answer = '';
let cnt = 1;
let c = s[0];
for (let i = 1; i <= s.length + 1; i++) {
// ํ์ฌ ๋ฌธ์๊ฐ ์ด์ ๋ฌธ์์ ๊ฐ์ ๊ฒฝ์ฐ
if (c === s[i]) cnt++;
// ํ์ฌ ๋ฌธ์๊ฐ ์ด์ ๋ฌธ์์ ๋ค๋ฅธ ๊ฒฝ์ฐ
else {
answer += cnt === 1 ? c : `${c}${cnt}`;
cnt = 1;
c = s[i];
}
}
return answer;
}
let str = 'KKHSSSSSSSE';
console.log(solution(str));
๐จ๐ผ๐ซ ๊ฐ์ฌ๋ ํ์ด ๋ฐฉ๋ฒ
- ํ์ฌ ๋ฌธ์์ ๋ค์์ ์ค๋ ๋ฌธ์๋ฅผ ๋น๊ตํ์ฌ ๊ฐ์ผ๋ฉด cnt++์ ํ๋ค.
- ๊ฐ์ง ์์ ๊ฒฝ์ฐ answer ๋ณ์์ ํ์ฌ ๋ฌธ์๋ฅผ ๋์ ํ๋ค.
- ํ์ฌ ๋ฌธ์์ cnt(๋ฐ๋ณต ํ์) ๊ฐ์ด 1์ ์ด๊ณผํ๋ค๋ฉด answer ๋ณ์์ cnt ๊ฐ์ ๋์ ํ๋ค.
- ๋ค์ ๊ฒ์ฌ๋ฅผ ์ํด cnt ๊ฐ์ 1๋ก ์ด๊ธฐํํ๋ค.
function solution(s) {
let answer = '';
let cnt = 1;
// ๋ง์ง๋ง ๋ฌธ์์ ๊ฒฝ์ฐ ๋น๊ตํ ๋ฌธ์๊ฐ ์์ผ๋ฏ๋ก '' ์ถ๊ฐ
s = s + ' ';
for (let i = 0; i < s.length - 1; i++) {
if (s[i] === s[i + 1]) cnt++;
else {
answer += s[i];
if (cnt > 1) answer += String(cnt);
cnt = 1;
}
}
return answer;
}
let str = 'KKHSSSSSSSE';
console.log(solution(str));
'Algorithm > ์ธํ๋ฐ(inflearn)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/section 4] 02 - ๋ค์ง์ ์์ (0) | 2022.09.14 |
---|---|
[JavaScript/section 4] 01 - ์๋ฆฟ์์ ํฉ (0) | 2022.09.14 |
[JavaScript/section 3] 04 - ๊ฐ์ฅ ์งง์ ๋ฌธ์๊ฑฐ๋ฆฌ (0) | 2022.09.13 |
[JavaScript/section 3] 03 - ์ซ์๋ง ์ถ์ถ (0) | 2022.09.12 |
[JavaScript/section 3] 02 - ์ ํจํ ํฐ๋ฆฐ๋๋กฌ (0) | 2022.09.08 |