Tiny Bunny
본문 바로가기
Algorithm/Python

[BOJ #25418] 정수 a를 k로 만들기

by nowag 2024. 4. 15.

문제

입력으로 양의 정수 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