[アルゴリズム]白駿Python 1475102

5120 ワード

1475号室番号

# https://www.acmicpc.net/problem/1475
input_data=input()
card=[0]*10
for i in input_data:
    if i=='9' or i=='6':
        if card[6]==card[9]:
            card[6]+=1
        else:
            card[9]+=1
    else:
        card[int(i)]+=1

print(max(card))

1052水瓶

# https://www.acmicpc.net/problem/1052
import sys

input = sys.stdin.readline

N, K = map(int, input().split())

answer = 0
# 3 이진수 11 -> 2개 만들어지는 물병 개수
# 4-> 100 -> 1개 만들어지는 물변 개수
# 위 이진수 이용 -> 물병의 개수보다 크면 마트에서 물병 사옴
while bin(N).count('1') > K:
    # 역순으로 index가 1인 경우
    plus = 2 ** (bin(N)[::-1].index('1'))
    answer += plus
    N += plus
print(answer)
1052は最初は2に分けて、残りとシェアで計算して、解いた結果、多くの先生がバイナリ数で解いていることに気づき、アイデアを考えると、この問題は簡潔だと思います.