문제
두 자리 이상 숫자에 대해 다음의 알고리즘을 사용한다.
- 마지막 자릿수가 0이 아니면 숫자에서 1을 뺀다.
- 마지막 자릿수가 0이면 숫자를 10으로 나눈다.
k번의 연산이 끝난 후 결과를 출력하라. 결과는 항상 양의 정수임이 보장된다.
풀이
Tanya의 알고리즘에 대한 함수 Tanya_subtract()를 작성한다.
마지막 자릿수가 0인지 확인하기 위해 n%10!=0을 확인한다.
조건을 만족하면 n-1을, 아니면 n//10을 return한다.
for문을 사용해 k번 Tanya_subtract()를 실행시켜 그 전의 결과를 다음 함수의 인수로 사용한다.
코드
def Tanya_subtract(n):
if (n%10!=0): return n-1
else: return n//10
n, k=map(int, input().split())
result=n
for _ in range(k):
result=Tanya_subtract(result)
print(result)
'Codeforces > Python' 카테고리의 다른 글
[Codeforces] 96A - Football (Python) (0) | 2025.06.03 |
---|---|
[Codeforces] 69A - Young Physicist (Python) (0) | 2025.06.01 |
[Codeforces] 59A - Word (Python) (0) | 2025.05.31 |
[Codeforces] 546A - Soldier and Bananas (Python) (0) | 2025.05.29 |
[Codeforces] 118A - String Task (Python) (0) | 2025.05.29 |