이거는 아무리 생각해도 모르겠어서 찾아봤다. 2진수를 이용해서 푸는 문제였다...
내 코드로 하면 시간 초과가 난다. 왜 그런지 모르겠다...
import sys
def check(n, k):
result = 0
while bin(n).count('1') > k:
cnt = 0
cnt += bin(n).count('1')
n += 1
result += 1
return result
if __name__ == '__main__':
N, K = map(int, sys.stdin.readline().split())
print(check(N, K))
그래서 다른 사람 코드로 제출했다.
import sys
input = sys.stdin.readline
N, K = map(int, input().split())
answer = 0
while bin(N).count('1') > K:
plus = 2 ** (bin(N)[::-1].index('1'))
answer += plus
N += plus
print(answer)