Algorithm/프로그래머스 문제풀이
[C++] 점프와 순간이동
계속지나가기
2020. 10. 7. 19:50
반응형
programmers.co.kr/learn/courses/30/lessons/12980
코딩테스트 연습 - 점프와 순간 이동
OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈�
programmers.co.kr
c++ 코드
#include <iostream>
using namespace std;
int solution(int n){
int tmp, ans;
ans = 1;// 순간이동을 하기 위해서는 최초 1칸은 이동
while( n != 1){
tmp = 0;
// 입력받은 길이가 홀수 일 경우 teleport후 jump 1번을 더 해줘야 하므로 비용 1 증가
if( n % 2 != 0){
n -= 1;
tmp = 1;
}
// 입력받은 길이가 짝수 일 경우 (길이/2)지점에서 텔레포트
else
n /= 2;
// 비용이 들었을 경우 ans + 1
if( tmp )
ans += tmp;
}
return ans;
}
반응형