https://school.programmers.co.kr/learn/courses/30/lessons/12980
설명
거리를 이동하는 아이언 슈트, 이동시에 배터리를 소모한다.
이동하고자 하는 거리가 주어졌을 때 최소한의 배터리를 소모하여 이동하는 방법을 찾기.
점프: 한번에 K칸을 점프하여 이동
워프: 현재까지 이동한거리 x 2 만큼 이동
점프 시 배터리를 소모하지만 워프 시 배터리를 소모하지 않는다.
방법
주어진 목표 거리를 역순으로 나누어 파악
2로 나누다가(워프)
나누어지지 않는다면 거리에(점프필요) -1을 실행(점프) 후 배터리소모를 1 증가
import java.util.*;
public class Solution {
public int solution(int n) {
int ans = 0;
while (n > 0) {
//2로 나누어 질 때
if(n % 2 == 0){
n = n / 2;
} else {
//나누어지지 않을 때
n--; //거리 -1
ans++;//배터리소모 +1
}
}
return ans;
}
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 올바른 괄호 (0) | 2023.08.14 |
---|---|
[프로그래머스] 최솟값 만들기 (0) | 2023.08.11 |
[프로그래머스] 핸드폰 번호 가리기 (0) | 2023.05.25 |
[프로그래머스] 추억 점수 (0) | 2023.05.22 |
[programmers] 최소직사각형 (1) | 2023.05.17 |