동캄의 코딩도장

백준 1052 [물병] 파이썬 본문

코테/BOJ

백준 1052 [물병] 파이썬

동 캄 2024. 1. 16. 22:27

https://www.acmicpc.net/problem/1052

 

1052번: 물병

지민이는 N개의 물병을 가지고 있다. 각 물병에는 물을 무한대로 부을 수 있다. 처음에 모든 물병에는 물이 1리터씩 들어있다. 지민이는 이 물병을 또 다른 장소로 옮기려고 한다. 지민이는 한 번

www.acmicpc.net

import sys
sys.setrecursionlimit(1000000) //재귀 제한 범위 확장
N,K=map(int,sys.stdin.readline().split()) //N,K 입력받음


def check(n,k):
  val=1
  while val<n: // 2의 제곱이 n보다 커질때까지 반복
    val*=2
  if k==1: // k가 1이면 val과 n의 차 만큼 물병이 더 필요
    return val-n
  else: // k가 1이 아니라면 
    val//=2 // val<n으로 변경
    return check(n-val,k-1) // n-val개의 물병으로 k-1만큼 물병을 만드는 것으로 생각가능


if N<K:
  print(0) 
else:
  print(check(N,K))

 

'코테 > BOJ' 카테고리의 다른 글

백준 1484 [다이어트] 파이썬  (0) 2024.01.17
백준 11286 [절댓값 힙] 파이썬  (0) 2023.03.21
백준 1074 [Z] 파이썬  (0) 2023.03.21
백준 11403 [경로 찾기] 파이썬  (0) 2023.03.21
백준 5525 [IOIOI] 파이썬  (0) 2023.03.21