[白俊/python]1105腕
白駿1105号アーム
今回解決すべき問題は1105番腕です1105番の問題は、最適な年を探すグリディの問題です.
問題を理解するのはあまり難しくなく、頭の中にはこのような考えがあります.
まず、少し拡大すると、同じ数字と異なる数字を思い浮かべるかもしれません.
桁数が異なる場合は、8は必要ありません.
だから私たちが考えているのは数字が同じ時です
ビット数が同じ場合、必要な答えはどのように得られますか?
1.数値が等しいかどうかを比較します.の場合、値が8の場合はカウントが必要です. のように見えますが、8でなければ次の数字を1番で作ったものと見なします. 2.2桁の値が異なる場合は終了します.もう考える必要はない.
今回解決すべき問題は1105番腕です1105番の問題は、最適な年を探すグリディの問題です.
問題を理解するのはあまり難しくなく、頭の中にはこのような考えがあります.
まず、少し拡大すると、同じ数字と異なる数字を思い浮かべるかもしれません.
桁数が異なる場合は、8は必要ありません.
だから私たちが考えているのは数字が同じ時です
ビット数が同じ場合、必要な答えはどのように得られますか?
1.数値が等しいかどうかを比較します.
コードは次のとおりです。
L, R = map(int, input().split())
left = []
right = []
while True:
if L//10 != 0:
left.append(L%10)
L //= 10
if R//10 != 0:
right.append(R%10)
R //= 10
if L//10 == 0 and R//10 == 0:
left.append(L%10)
right.append(R%10)
break
cnt = 0
#자릿수가 같을때
if len(left) == len(right):
cnt = 0
#리스트에 숫자의 일의자리부터 인덱스0으로 저장되어 있다.
#그래서 인덱스의 마지막 부분이 숫자의 가장 큰 부분이다.
for i in range(len(left)-1, -1, -1):
#자릿수의 값이 같다면
if left[i] == right[i]:
#그 값이 8인지 확인한다.
if left[i] == right[i] == 8:
cnt += 1
#자릿수의 값이 틀리면. 더이상 고려해주지 않아도 된다.
else:
break
print(cnt)
Reference
この問題について([白俊/python]1105腕), 我々は、より多くの情報をここで見つけました https://velog.io/@rooster100/백준-파이썬-1105-팔テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol