내가 구현한 코드 (실패)
function solution(n) {
let q = [];
let arr = [];
arr[0] = 0;
q.push(0);
while(q.length > 0){
let cur = q.shift();
if(cur == n){
return arr[cur];
}
if(arr[cur * 2] === undefined){
arr[cur * 2] = arr[cur];
q.push(cur * 2);
}
if(arr[cur + 1] === undefined){
arr[cur + 1] = arr[cur] + 1;
q.push(cur + 1);
}
}
}
- BFS로 목표 n에 도달할 때 값 반환
정확성 테스트는 모두 통과 했지만 효율성 테스트에서 시간 초과로 실패
성공 코드
function solution(n)
{
var ans = 1;
while(n!==1){
if(Number.isInteger(n/2)){
n/=2;
}
else{
n-=1
ans++
}
}
return ans;
}
- 초기값 n으로부터 짝수일 때는 순간이동(n/2), 홀수일 때는 배터리 소모(n-1)
'[LG 유플러스] 유레카 > 코딩테스트' 카테고리의 다른 글
[JS]프로그래머스 - 프로세스 (Lv.2) (0) | 2025.02.24 |
---|---|
[JS]프로그래머스 - 기능개발 (Lv.2) (0) | 2025.02.24 |
[JS]프로그래머스 - 최솟값 만들기 (Lv.2) (0) | 2025.02.23 |
[JAVA]SWEA - 2001 파리 퇴치 (D2) (0) | 2025.02.23 |
[JAVA]SWEA - 1208 Flatten (D3) (0) | 2025.02.23 |