https://school.programmers.co.kr/learn/courses/30/lessons/12980
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[C++][프로그래머스][Lv2] 12980. 점프와 순간이동
❗풀이방법
1. 배터리를 최소로 사용하려면 ? ▶️순간이동을 최대한 많이 해야한다.
예시1) 거리가 5일 때
: 2에서 순간이동 한 뒤 1칸을 점프하면 된다.
: 2는 ? 1에서 순간이동 하면된다.
: 1은? 0에서 한칸 점프하면 된다.
예시2) 거리가 6일 때
: 3에서 순간이동 하면 된다.
: 3은 ? 2에서 1칸을 점프하면 된다.
: 2는 ? 1에서 순간이동 하면 된다.
: 1은 ? 0에서 1칸 점프하면 된다.
예시3) 거리가 5000일 때
: 2500에서 순간이동 하면된다.
: 2500는 ? 1250에서 순간이동
: 1250은? 625에서 순간이동
: 625는 ? 한칸 점프해서 624로 간 뒤 312에서 순간이동
: 312는 ? 156에서 순간이동
: 156은? 78에서 순간이동
.....
: 순간이동은 거리가 짝수 일때만 할 수 있다. 순간이동을 하기 위해서는 홀수인 거리에서 한칸 점프(거리 -1 )해서 짝수로 만들어줘야한다.
✅풀이
#include <iostream>
using namespace std;
int solution(int n)
{
int answer = 0;
while(true)
{
if (n == 0)
break;
// 짝수면 > 나누기 2
if (n % 2 == 0)
n /= 2;
// 홀수면 > 빼기 1
else
{
n -= 1;
answer += 1;
}
}
return answer;
}
https://github.com/kimYouChae/C-Programmers
GitHub - kimYouChae/C-Programmers
Contribute to kimYouChae/C-Programmers development by creating an account on GitHub.
github.com
'프로그래머스' 카테고리의 다른 글
[C++][프로그래머스][Lv2] 138476. 귤 고르기 (1) | 2025.01.22 |
---|---|
[C++][프로그래머스][Lv2] 12981. 영어끝말잇기 (2) | 2025.01.21 |
[C++][프로그래머스][Lv2] 42842. 카펫 (1) | 2024.07.18 |
[C++][프로그래머스][Lv2] 12911. 다음 큰 숫자 (0) | 2024.07.11 |
[C++][프로그래머스][Lv2] 70129. 이진 변환 반복하기 (0) | 2024.07.08 |