๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programmers

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ

by ์ฝ”ํŒŒ์นด 2022. 12. 7.
728x90

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต > ์—ฐ์Šต๋ฌธ์ œ > ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ


๐Ÿ’ฉ ๋ฌธ์ œ ์„ค๋ช…

์ˆ˜์›…์ด๋Š” ๋งค๋‹ฌ ์ฃผ์–ด์ง„ ์Œ์‹์„ ๋นจ๋ฆฌ ๋จน๋Š” ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ๋ฅผ ๊ฐœ์ตœํ•ฉ๋‹ˆ๋‹ค. ์ด ๋Œ€ํšŒ์—์„œ ์„ ์ˆ˜๋“ค์€ 1๋Œ€ 1๋กœ ๋Œ€๊ฒฐํ•˜๋ฉฐ, ๋งค ๋Œ€๊ฒฐ๋งˆ๋‹ค ์Œ์‹์˜ ์ข…๋ฅ˜์™€ ์–‘์ด ๋ฐ”๋€๋‹ˆ๋‹ค. ๋Œ€๊ฒฐ์€ ์ค€๋น„๋œ ์Œ์‹๋“ค์„ ์ผ๋ ฌ๋กœ ๋ฐฐ์น˜ํ•œ ๋’ค, ํ•œ ์„ ์ˆ˜๋Š” ์ œ์ผ ์™ผ์ชฝ์— ์žˆ๋Š” ์Œ์‹๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ, ๋‹ค๋ฅธ ์„ ์ˆ˜๋Š” ์ œ์ผ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ์Œ์‹๋ถ€ํ„ฐ ์™ผ์ชฝ์œผ๋กœ ์ˆœ์„œ๋Œ€๋กœ ๋จน๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ค‘์•™์—๋Š” ๋ฌผ์„ ๋ฐฐ์น˜ํ•˜๊ณ , ๋ฌผ์„ ๋จผ์ € ๋จน๋Š” ์„ ์ˆ˜๊ฐ€ ์Šน๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
์ด๋•Œ, ๋Œ€ํšŒ์˜ ๊ณต์ •์„ฑ์„ ์œ„ํ•ด ๋‘ ์„ ์ˆ˜๊ฐ€ ๋จน๋Š” ์Œ์‹์˜ ์ข…๋ฅ˜์™€ ์–‘์ด ๊ฐ™์•„์•ผ ํ•˜๋ฉฐ, ์Œ์‹์„ ๋จน๋Š” ์ˆœ์„œ๋„ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ด๋ฒˆ ๋Œ€ํšŒ๋ถ€ํ„ฐ๋Š” ์นผ๋กœ๋ฆฌ๊ฐ€ ๋‚ฎ์€ ์Œ์‹์„ ๋จผ์ € ๋จน์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ฐฐ์น˜ํ•˜์—ฌ ์„ ์ˆ˜๋“ค์ด ์Œ์‹์„ ๋” ์ž˜ ๋จน์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋Œ€ํšŒ๋ฅผ ์œ„ํ•ด ์ˆ˜์›…์ด๋Š” ์Œ์‹์„ ์ฃผ๋ฌธํ–ˆ๋Š”๋ฐ, ๋Œ€ํšŒ์˜ ์กฐ๊ฑด์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ์Œ์‹์„ ์ฃผ๋ฌธํ•˜์—ฌ ๋ช‡ ๊ฐœ์˜ ์Œ์‹์€ ๋Œ€ํšŒ์— ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, 3๊ฐ€์ง€์˜ ์Œ์‹์ด ์ค€๋น„๋˜์–ด ์žˆ์œผ๋ฉฐ, ์นผ๋กœ๋ฆฌ๊ฐ€ ์ ์€ ์ˆœ์„œ๋Œ€๋กœ 1๋ฒˆ ์Œ์‹์„ 3๊ฐœ, 2๋ฒˆ ์Œ์‹์„ 4๊ฐœ, 3๋ฒˆ ์Œ์‹์„ 6๊ฐœ ์ค€๋น„ํ–ˆ์œผ๋ฉฐ, ๋ฌผ์„ ํŽธ์˜์ƒ 0๋ฒˆ ์Œ์‹์ด๋ผ๊ณ  ์นญํ•œ๋‹ค๋ฉด, ๋‘ ์„ ์ˆ˜๋Š” 1๋ฒˆ ์Œ์‹ 1๊ฐœ, 2๋ฒˆ ์Œ์‹ 2๊ฐœ, 3๋ฒˆ ์Œ์‹ 3๊ฐœ์”ฉ์„ ๋จน๊ฒŒ ๋˜๋ฏ€๋กœ ์Œ์‹์˜ ๋ฐฐ์น˜๋Š” "1223330333221"์ด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1๋ฒˆ ์Œ์‹ 1๊ฐœ๋Š” ๋Œ€ํšŒ์— ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜์›…์ด๊ฐ€ ์ค€๋น„ํ•œ ์Œ์‹์˜ ์–‘์„ ์นผ๋กœ๋ฆฌ๊ฐ€ ์ ์€ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด food๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋Œ€ํšŒ๋ฅผ ์œ„ํ•œ ์Œ์‹์˜ ๋ฐฐ์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ’ฉ ์ œํ•œ ์กฐ๊ฑด

โ˜๏ธ 2 โ‰ค food์˜ ๊ธธ์ด โ‰ค 9
โœŒ 1 โ‰ค food์˜ ๊ฐ ์›์†Œ โ‰ค 1,000
๐Ÿ‘Œ food์—๋Š” ์นผ๋กœ๋ฆฌ๊ฐ€ ์ ์€ ์ˆœ์„œ๋Œ€๋กœ ์Œ์‹์˜ ์–‘์ด ๋‹ด๊ฒจ ์žˆ์Šต๋‹ˆ๋‹ค.
๐ŸคŸ food[i]๋Š” i๋ฒˆ ์Œ์‹์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.
๐Ÿ–– food[0]์€ ์ˆ˜์›…์ด๊ฐ€ ์ค€๋น„ํ•œ ๋ฌผ์˜ ์–‘์ด๋ฉฐ, ํ•ญ์ƒ 1์ž…๋‹ˆ๋‹ค.
โœ‹ ์ •๋‹ต์˜ ๊ธธ์ด๊ฐ€ 3 ์ด์ƒ์ธ ๊ฒฝ์šฐ๋งŒ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

๐Ÿ’ฉ ๋ฌธ์ œ ํ’€์ด

function solution(food) {
    let plating = [0];
    let plate = "123456789";
    let foods = "";
    for(i=1; i<food.length; i++){
        plating[i] = Math.floor(food[i]/2);
    }
    for(i=1; i<10; i++){
        foods += plate[i-1].repeat(plating[i])
    }
    return foods+"0"+foods.split("").reverse().join("");
}

plating์˜ ์ธ๋ฑ์Šค๋Š” ์Œ์‹ ๋ฒˆํ˜ธ์ด๊ณ , ๊ฐ๊ฐ์˜ ์›์†Œ๋Š” ๊ฐ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ฒˆํ˜ธ ์Œ์‹์˜ ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ƒ๊ฐํ•ด ๋ณด๋‹ˆ, [0]์„ ๋จผ์ € ๋‹ด์„ ํ•„์š”๋„ ์—†์—ˆ๋„ค์š”... ใ… 
food์˜ ๊ธธ์ด๋Š” ์ตœ๋Œ€ 9์ด๋‹ˆ, ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ์Œ์‹๋“ค์˜ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” plate ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„, ๊ฐ๊ฐ์˜ ์Œ์‹์„ repeat๋กœ foods์— ๋‹ด์•„์ค๋‹ˆ๋‹ค. foods์— ๋ฌผ(0)์„ ๋”ํ•˜๊ณ , ๋ฐ˜๋Œ€๋กœ ์ •๋ ฌํ•œ ๊ฐ’์„ ๋”ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ํ’€๋ฉด์„œ๋„ ๊ณ„์† ์‚ฝ์งˆํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋Š”๋ฐ์š”... ์•„๋‹ ๊ฒƒ์ด๋ผ ๋ฏฟ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ฉ ๋‹ค๋ฅธ ํ’€์ด

function solution(food) {
    let res = '';
    for (let i = 1; i < food.length; i++) {
        res += String(i).repeat(Math.floor(food[i]/2));
    }

    return res + '0' + [...res].reverse().join('');
}

๊ตณ์ด foods ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค์ง€ ์•Š๊ณ , String(i)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„ค์š”. ์ œ ์‚ฝ์งˆ์ด ๋‹ค ๋…น์•„์žˆ์œผ๋ฉด์„œ๋„ ๋„ˆ๋ฌด๋‚˜๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ–ˆ๋„ค์š”. ์˜ค๋Š˜ ์ œ ์ปจ๋””์…˜์ด ์•ˆ ์ข‹์€ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

728x90

๋Œ“๊ธ€

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿฆ™

CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘