728x90
반응형
문제
https://www.acmicpc.net/problem/16953
두 정수 입력받아 저장.
횟수를 저장하기 위한 변수 생성(1로 초기화).
a, b = map(int, input().split())
count = 1
a와 b가 서로 다른 동안 반복.
- b의 1의자리 숫자가 1이면 10으로 나눈 몫을 저장하고(맨 뒤에 숫자 제거) 횟수 1 증가.
- b가 0이 아니고, 2의 배수라면 2로 나누고 횟수 1 증가.
- 둘 다 아니면 횟수를 -1로 저장하고 반복 종료(만들 수 없는 경우).
횟수 출력.
while a != b:
if b % 10 == 1:
b //= 10
count += 1
elif b != 0 and b % 2 == 0:
b >>= 1
count += 1
else:
count = -1
break
print(count)
전체 코드.
a, b = map(int, input().split())
count = 1
while a != b:
if b % 10 == 1:
b //= 10
count += 1
elif b != 0 and b % 2 == 0:
b >>= 1
count += 1
else:
count = -1
break
print(count)
728x90
반응형
'코딩 > 공부' 카테고리의 다른 글
[Python] 백준 17615번 - 볼 모으기 (1) | 2024.04.26 |
---|---|
[Python] 백준 17609번 - 회문 (1) | 2024.04.26 |
[Python] 백준 12865번 - 평범한 배낭 (1) | 2024.04.26 |
[Python] 백준 11441번 - 합 구하기 (1) | 2024.04.26 |
[Python] 백준 9084번 - 동전 (0) | 2024.04.26 |