https://codeforces.com/contest/1553/problem/A
시간 1초, 메모리 256MB
input :
output :
조건 :
Let's define S(x) to be the sum of digits of number x written in decimal system. For example, S(5)=5, S(10)=1, S(322)=7.
S(x)를 x의 숫자들을 더한 값이라 합니다. 예를 들어 S(5)=5, S(10)=1, S(322)=7이 됩니다.
We will call an integer x interesting
if S(x+1) < S(x)
만약 S(x+1) < S(x)인 수가 존재한다면 interesting
하다 합니다.
interesting
한 수의 조건은 마지막 자리가 9여야 합니다.
그런 경우 x + 1의 값은 숫자의 개수는 1개 늘지만 이 값은 1이 되고 x의 값은 숫자의 개수는 적지만 이 값이 9이기 때문에 위의 조건을 만족합니다.
그렇기 때문에 9보다 크거나 같은 값들 중에 10으로 나눠서 얻은 값을 출력하게 하였습니다.
이 떄 숫자의 마지막이 9로 끝나는 경우를 포함하지 않아 이러한 테케에서 실패가 있었다.
그렇기에 나머지를 계산해서 9인 경우에 정답의 개수를 하나 더 늘려주고
정답을 출력하게 하는 방법이 제일 좋다.
import sys
t = int(sys.stdin.readline())
for _ in range(t):
n = int(sys.stdin.readline())
ans = n // 10
if n % 10 == 9:
ans += 1
print(ans)
계속 9를 가지는 수가 맞긴 한데 왜 첫 제출이 안 되지 하면서 B로 넘어가는 바람에 중간에 공간이 생겼다.
문제 자체를 이해는 했는데 정확한 알고리즘을 생각하지 않은 것이 시간을 많이 가져갔다.