ํ์ด ๋ฐฉ๋ฒ
์ฒ์์๋ ํ ๋ฒ bfs๋ก ํด๋ดค๋๋ฐ ์๊ฐ ์ปค์ ๊ทธ๋ฐ์ง 2๊ฐ ๋นผ๊ณ ๋ค ์๊ฐ์ด๊ณผ๊ฐ ๊ฑธ๋ฆฌ๋๋ผ๊ตฌ์ ๊ทธ๋ฅ ๊ท์น์ ์ฐพ์์ ์นด์ดํธ ํด์คฌ์ต๋๋ค
๊ณ ๋ คํด์ผ ํ๋ ์ ์ ์๊ฐ 5์ผ ๋์์ต๋๋ค.
์๊ฐ 5์ผ ๋
- ๋ค์ ์๋ฆฌ์๊ฐ 5 ์ด์์ด๋ฉด +5๋ฅผ ๋ํด์ ๋ค์ ์๋ฆฌ์๋ฅผ +1 ํด์ฃผ๊ณ
- ๋ค์ ์๋ฆฌ์๊ฐ 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;
}
'๐ง ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] ๋๋ก์ ๊ฐ์ 1577 JS (0) | 2024.01.29 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ซ์ ๋ณํํ๊ธฐ JS (1) | 2024.01.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ฐฐ ๋ฐฐ๋ฌ๊ณผ ์๊ฑฐํ๊ธฐ JS (0) | 2024.01.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ง๊ฟ JS (0) | 2024.01.09 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ค์ ์๋ ํฐ ์ ์ฐพ๊ธฐ JS (1) | 2024.01.07 |