[JS] code wars(lv.7)

์ „์˜ˆ๋ฆผยท2021๋…„ 3์›” 12์ผ

๐Ÿ“Œ [์š”๊ฑด] :
asghd == > A-Ss-Ggg-Hhhh-Ddddd
ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์€ string์„ ์ฒซ๋ฌธ์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊พธ๊ณ , ํ•ด๋‹น index๋งŒํผ ๋ฐ˜๋ณตํ•˜์—ฌ return

โœ [์ฝ”๋“œ์ž‘์„ฑ]

function accum(str) {
    var getStr = str.split("");
    let newArr = [];
    for (var i = 0; i < str.length; i++) {
        newArr.push(getStr[i].repeat(i+1));
        // console.log(newArr) // ["a", "ss", "ggg", "hhhh", "ddddd"]
        newArr[i] = newArr[i].charAt(0).toUpperCase() + newArr[i].substr(1);
        var connectStr = newArr.join('-');
    }
    console.log(newArr);
    return connectStr;
}
accum("asghd");

โœ” [๊ฒฐ๊ณผ]
์ €๋ฒˆ์ฃผ ์ฃผ๋ง์— ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ์ฑ„ ๋ฐฉ์น˜ํ•ด๋’€๋‹ค๊ฐ€, ์ž๊พธ ์•„๋ฅธ๊ฑฐ๋ฆฌ๊ธธ๋ž˜ ๋Œ์•„์™”๋‹ค.

1) newArr[i] = newArr[i].charAt(0).toUpperCase() + newArr[i].substr(1);
2) newArr[i] = newArr[i].charAt(0).toUpperCase() // ["A", "S", "G", "H", "D"]

2)๋ฒˆ์œผ๋กœ ์ž‘์„ฑํ–ˆ๋”๋‹ˆ ๊ฒฐ๊ณผ๊ฐ’์ด ["A", "S", "G", "H", "D"] ์˜€๋‹ค.
newArr ์ด๋ž€ ๋ฐฐ์—ด์— ์ฒซ๋ฒˆ์งธ ๊ธ€์ž๋งŒ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜๋Š”๊ฒƒ์ด์˜€๋‹ค.
๋„์ €ํžˆ ์–ด๋–ค์‹์œผ๋กœ ๊ฐ€์ ธ์™€์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์„œ replace๋„ ์จ๋ณด๊ณ  ํ–ˆ๋Š”๋ฐ ๊ฒฐ๊ณผ๋Š” ์—ญ์‹œ ์‹คํŒจ ๐Ÿคฆโ€โ™‚๏ธ
๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ ๋‚˜์™€ ๊ฐ™์€ ์‚ฌ๋žŒ์ด ๋ช‡๋ช… ๋ณด์˜€๋‹ค.
stackoverflow์—์„œ + newArr[i].substr(1) ์ด ์ฝ”๋“œ๋ฅผ ์ฐพ์•˜๋‹ค.
์™œ ์ด์ƒ๊ฐ์„ ํ•˜์ง€ ๋ชปํ–ˆ๋Š”๊ฐ€ ...
substr() ๋ฉ”์„œ๋“œ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜์ผ์‹œ, ํ•ด๋‹น index๋ถ€ํ„ฐ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substr

repeat() ๋ฉ”์„œ๋“œ๋Š” ๋ฌธ์ž์—ด์„ ์ฃผ์–ด์ง„ ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•ด ๋ถ™์ธ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/repeat
join() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์—ฐ๊ฒฐํ•ด ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ ๋‹ค.

์ „์— ์ •๋ฆฌํ–ˆ๋˜๊ฑฐ ๋‹ค์‹œ ๋ณต์Šตํ•˜๋Ÿฌ ๊ฐ€์•ผ๊ฒ ๋‹น ๐Ÿคณ

profile
ํ”„๋ฆฐ์ด

0๊ฐœ์˜ ๋Œ“๊ธ€