본문 바로가기

프로그래머스/구현

[일반] 프로그래머스 '점프와 순간 이동' - js

반응형

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/12980

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2. 코드

부분 정답 및 타임 오버)

n이 작은 경우에는 적용되었는데, n이 크면 적용이 되지 않았다. 방법이 잘 못 된 것 같다.

function solution(n)
{
    let cnt = 1;
    let cur = 1;
    
    while(cur < n){
        if((n - cur) % 2 === 1 ) {
          cur *= 2; 
        }
        else if((n - cur) % 2 === 0) {
          ++cur;++cnt;
        }
    }
    
    return cnt;
}

정답)

앞에서부터 가면 따져줄 조건이 많으니 뒤에서 부터 역으로 오는 방식을 사용한다.

도착 지점 n이 2로 나누어 떨어진다면 2로 계속해서 나눠주고, 2로 나누어 떨어지지 않는다면 한칸만 뒤로 돌아간다고 생각하여 n에 1을 빼준다. 

function solution(n) {
    let answer = 0;
    while(n > 0) {
        if(n % 2 === 0) {
            n /= 2;
        } else {
            n--;
            answer++;
        }
    }
    
    return answer;
}

 

아...누가 뒤에서부터 따지는 것을 대번에 생각하냐고.. 난 아직 멀었다.. 코테 준비 더 열심히 해야해ㅠㅠㅠ노트에 열심히 그림그리고 경우의 수 따져가며 풀었던 시간들이 스쳐지나가면서 눈물도 눈에서 살짝 스쳐지나가는 것 같기도하고^^

응 복기 할 때도 뒤에서부터 따지는 거 생각못했고~~~ 

 

복기

5/23
반응형