값을 더하면서 한 자리수가 나올 때까지 돌려고 했다. 만약 숫자가 230(대략 1,000,000,000)이면 시간초과가 날 수밖에 없다. 힌트에 O(1)로 풀어보라고 해서 이게 되나? 싶었다.
각 자리수를 더하는 문제를 풀 때는 합쳐서 9
가 되는지 확인해보면 좋다는 이야기를 들은 적이 있다. 이 문제를 풀 때는 왜 기억을 못 했는지🫡
num | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
---|---|---|---|---|---|---|---|---|---|---|---|
sum | 8 | 9 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
class Solution:
def addDigits(self, num: int) -> int:
if num < 10: return num
if num % 9 == 0: return 9
return num % 9