HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤎
프론트엔드 데브코스 5기 교육생
/
🐥
김은수팀
/
🏆
6주차 : 기업 코테 딱대
/
5 : 1로 만들기

5 : 1로 만들기

문제 선택자
승민
URL
https://www.acmicpc.net/problem/1463
난이도
실버3

다윤 풀이

const filePath = process.platform === "linux" ? "/dev/stdin" : "input.txt"; let N = require("fs").readFileSync(filePath).toString().trim(); N = Number(N); const dp = new Array(N + 1).fill(0); for (let i = 2; i <= N; i++) { // 기본적으로 -1 한 것 dp[i] = dp[i - 1] + 1; // 2로 나누어 떨어짐 if (i % 2 == 0) { dp[i] = Math.min(dp[i / 2] + 1, dp[i]); } // 3으로 나누어 떨어짐 if (i % 3 == 0) { dp[i] = Math.min(dp[i / 3] + 1, dp[i]); } } console.log(dp[N]);

민수 풀이

let num = parseInt(require('fs').readFileSync(__dirname + "/../input.txt").toString().trim()); // let num = parseInt(require('fs').readFileSync("/dev/stdin").toString().trim()); const dp = new Array(num+1).fill(0); for(let i = 2; i <= num; i++){ dp[i] = dp[i-1] + 1; if(i % 2 == 0) dp[i] = Math.min(dp[i], dp[i/2]+1); if(i % 3 == 0) dp[i] = Math.min(dp[i], dp[i/3]+1); } console.log(dp[num])

송희 풀이

승민 풀이

let fs = require('fs'); //const inputs = fs.readFileSync('/dev/stdin').toString().split('\n'); const inputs = fs.readFileSync(__dirname+'/ex2.txt').toString().split('\n'); const n = Number(inputs[0]); let dp = [0, 0, 1, 1, 2]; for (let i=5; i<n+1; i++) { let a3 = a2 = 10000, a1 = dp[i-1]; if (i%3 === 0) { a3 = dp[i/3]; } if (i%2 === 0) { a2 = dp[i/2]; } dp.push(1 + Math.min(a1, a2, a3)); } console.log(dp[n]);

재현 풀이