티스토리 뷰

https://www.acmicpc.net/problem/1463

 

1463번: 1로 만들기

첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.

www.acmicpc.net

const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim();
const N = +input;
let memo = Array(N+1).fill(-1);
memo[1]=0;

let cnt = 1;
let temp = [1];

while(memo[N]==-1){
    let temptemp = [];
    temp.forEach(v=>{

        if(memo[v*3]==-1){
            memo[v*3]=cnt;
            temptemp.push(v*3);
        }
        if(memo[v*2]==-1){
            memo[v*2]=cnt;
            temptemp.push(v*2);
        }
        if(memo[v+1]==-1){
            memo[v+1]=cnt;
            temptemp.push(v+1);
        }

    })


    temp = temptemp
    cnt++;
}

console.log(memo[N])

 

 

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함