๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿง  ์•Œ๊ณ ๋ฆฌ์ฆ˜

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ JS

by megan07 2024. 1. 12.

๋ฌธ์ œ๋งํฌ

ํ’€์ด ๋ฐฉ๋ฒ•

์ฒ˜์Œ์—๋Š” ํ•œ ๋ฒˆ bfs๋กœ ํ•ด๋ดค๋Š”๋ฐ ์ˆ˜๊ฐ€ ์ปค์„œ ๊ทธ๋Ÿฐ์ง€ 2๊ฐœ ๋นผ๊ณ  ๋‹ค ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๊ฑธ๋ฆฌ๋”๋ผ๊ตฌ์š” ๊ทธ๋ƒฅ ๊ทœ์น™์„ ์ฐพ์•„์„œ ์นด์šดํŠธ ํ•ด์คฌ์Šต๋‹ˆ๋‹ค

๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ์ ์€ ์ˆ˜๊ฐ€ 5์ผ ๋•Œ์˜€์Šต๋‹ˆ๋‹ค.

 

์ˆ˜๊ฐ€ 5์ผ ๋•Œ

  1. ๋‹ค์Œ ์ž๋ฆฌ์ˆ˜๊ฐ€ 5 ์ด์ƒ์ด๋ฉด +5๋ฅผ ๋”ํ•ด์„œ ๋‹ค์Œ ์ž๋ฆฌ์ˆ˜๋ฅผ +1 ํ•ด์ฃผ๊ณ 
  2. ๋‹ค์Œ ์ž๋ฆฌ์ˆ˜๊ฐ€ 5 ๋ฏธ๋งŒ์ด๋ฉด -5 ํ•ด์คฌ์Šต๋‹ˆ๋‹ค

5๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ์—๋Š” ๋ฌด์กฐ๊ฑด ๋‹ค์Œ ์ž๋ฆฌ ๊ฐ’์„ ์˜ฌ๋ ค์คฌ์Šต๋‹ˆ๋‹ค

๋งŒ์•ฝ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ์ˆ˜์ธ ๊ฒฝ์šฐ์—๋Š” 1์„ ํ‘ธ์‰ฌํ•ด์„œ ์ž๋ฆฌ์ˆ˜๋ฅผ ์˜ฌ๋ ค์คฌ์Šต๋‹ˆ๋‹ค

 

 


function solution(storey) {
  
    let cnt=0;
    const storey_arr = String(storey).split('').map(Number).reverse();
    

   for(let i=0;i<storey_arr.length;i++){
       const val = storey_arr[i];
       const hasNext = i+1<storey_arr.length;
       //5์ดํ•˜์ผ ๋•Œ๋Š” ๋ฐ”๋กœ -๋ฒ„ํŠผ
       if(val<5){
           cnt+=val;
           continue;
       }
       
       //5์ผ ๋•Œ
       if(val===5){
           //์•ž ์ˆ˜๊ฐ€ 5์ด์ƒ์ด๋ฉด +1ํ•ด์ค˜์•ผ ํ•จ
           if(hasNext&&storey_arr[i+1]>=5){
               storey_arr[i+1]++;
               cnt+=5;
               continue;
           }
           //์•ž ์ˆ˜๊ฐ€ 5๋ณด๋‹ค ์ž‘์œผ๋ฉด ๊ทธ๋ƒฅ 5๋งŒ ๋”ํ•จ
           cnt+=5;
           continue;
       }
       
       //5๋ณด๋‹ค ํด ๋•Œ ๋ฌด์กฐ๊ฑด ๋‹ค์Œ ์ž๋ฆฌ ๊ฐ’ ์˜ฌ๋ ค์ค˜์•ผ ํ•จ
       if(val>5){
           cnt+=10-val;
           hasNext?storey_arr[i+1]++:storey_arr.push(1);
       }
   }
    return cnt;
}