728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/12980?language=csharp
using System;
class Solution
{
public int solution(int n)
{
int answer = 1;
while (n != 1)
{
if (n % 2 == 0)
n /= 2;
else
{
n -= 1;
++answer;
}
}
return answer;
}
}
어찌 됐든 1칸은 앞으로 가야 순간이동 가능하니까 그냥 answer을 진즉 1로 두고
건전지를 최대한 덜 쓰고 순간이동을 많이 이용해야 하니까
즉
가장 큰 값으로 순간이동이 되려면 가장 큰 값인 도착점부터 가장 작은 값인 시작점으로 간다고 가정을 하면 되니까
6 -> 순 3 -> 건 2 -> 순 1
이런 식으로 갈 수 있다
순간이동은 2배 가니까 2배 줄이면 되고
홀수일 경우 예로 7이면
7 -> 건 6 -> 나머지 그대로
이렇게 가면 되니까
반응형
'프로그래머스_C# > Level_2' 카테고리의 다른 글
[프로그래머스 C#] 모음사전 (1) | 2021.11.15 |
---|---|
[프로그래머스 C#] 이진 변환 반복하기 (0) | 2021.11.14 |
[프로그래머스 C#] n^2 배열 자르기 (0) | 2021.11.10 |
[프로그래머스 C#] 쿼드압축 후 개수 세기 (0) | 2021.11.09 |
[프로그래머스 C#] 스킬트리 (0) | 2021.11.04 |