문제
입력으로 양의 정수 A와 K가 주어지면, 아래 연산을 이용하여 A를 K로 변경하려고 한다. 정수 A를 변경할 때 사용할 수 있는 연산 종류는 다음과 같다.
- 연산 1: 정수 A에 1을 더한다.
- 연산 2: 정수 A에 2를 곱한다.
정수 A를 정수 K로 만들기 위해 필요한 최소 연산 횟수를 출력하자.
입력
첫 번째 줄에 양의 정수 A와 K가 빈칸을 사이에 두고 순서대로 주어진다.
출력
첫 번째 줄에 양의 정수 A를 양의 정수 K로 만들기 위해 필요한 최소 연산 횟수를 출력한다.
내가 쓴 코드
from sys import stdin; input = stdin.readline
A, K = map(int, input().split())
# +1, *2 -> -1, /2
cnt = 0
while A < K:
if K % 2 == 0:
K //= 2
cnt += 1
if A > K:
K *= 2
K -= 1
else:
K -= 1
cnt += 1
print(cnt)
제출 결과

제발 맞아라 x200번 외쳤는데 맞아서 너무 행복한 인간..
오늘 소정언니 덕에 행복하게 잔다 ㅎㅎ
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
| [BOJ #30892] 상어 키우기 (0) | 2024.04.16 |
|---|---|
| [BOJ #10994] 별 찍기 - 19 (2) | 2024.04.16 |
| [BOJ #1743] 음식물 피하기 (0) | 2024.04.14 |
| [BOJ #4963] 섬의 개수 (0) | 2024.04.14 |
| [BOJ #14888] 연산자 끼워넣기 (2) | 2024.04.14 |