본문 바로가기

Codeforces/Python

[Codeforces] 977A - Wrong Subtraction (Python)

문제

문제링크

두 자리 이상 숫자에 대해 다음의 알고리즘을 사용한다.

  • 마지막 자릿수가 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)