[Leetcode,c++] Add Digits
λ¬Έμ
https://leetcode.com/problems/add-digits/
Add Digits - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
μ½λ
(1) μ¬κ·, λ°λ³΅λ¬Έμ μ¬μ©ν νμ΄
class Solution {
public:
int addDigits(int num) {
int temp1=0, temp2=0, ans=num;
while(true){
while(num>9){
temp1 = num%10;
temp2 = num/10;
ans = temp1 + temp2;
num = ans;
}
if(num<10){
num = ans;
return num;
}
}
}
};
(2) 쑰건μμ νμ©νμ¬ O(1) μκ° λ³΅μ‘λλ‘ ν΄κ²°ν νμ΄
class Solution {
public:
int addDigits(int num) {
if(num==0)
return 0;
else if(num%9==0)
return 9;
else
return num%9;
}
};
νμ΄
μ΄ λ¬Έμ λ 2^31- 1κΉμ§ λ€μ΄μ€λ μμ°μμ κ° μλ¦Ώμλ₯Ό ν μλ¦Ώμκ° λ λκΉμ§ λν΄μ μΆλ ₯νλ λ¬Έμ μ λλ€.
μ²μμλ λ°λ³΅λ¬Έμ νμ©ν΄μ κ° μλ¦Ώμλ₯Ό λΌμ΄κ°λ©° νμμ§λ§ λ¬Έμ μμ Follow up: Could you do it without any loop/recursion in O(1) runtime? λΌλ 쑰건μ μ€ κ²μ 보면 λ°λ³΅λ¬Έμ΄λ μ¬κ·λ₯Ό μ¬μ©νμ§ μκ³ O(1)μ μκ°μΌλ‘ ν΄κ²°νλΌλ λ¬Έμ μ΄κΈ°μ μ’ λ κ³ λ―Όμ΄ νμνλ λ¬Έμ μμ΅λλ€.
κ²°κ³Όμ μΌλ‘ O(1)λ‘ ν΄κ²°ν λ λ²μ§Έ νμ΄λ₯Ό 보면 μκ² μ§λ§ 9λ‘ λͺ¨λλ¬ μ°μ°μ νμ λμ κ°μ΄ κ²°κ³Όμ μΌλ‘ μ°λ¦¬κ° μνλ κ°μ΄ λ¨μ μ μ μλλ° κ·Έ μ΄μ λ μ«μ 9λΌλ κ°μ μμΈν μ΄ν΄λ³΄λ©΄ μλμ νΉμ§μ μ§λκ³ μμ΅λλ€.
4λ²μ§Έ νΉμ§μ μ μ΄ν΄λ³΄λ©΄ 9μ μ΄λ€ μλ₯Ό κ³±νλλΌλ, λμ€λ κ°μ κ° μ리 μ«μλ₯Ό λͺ¨λ ν©νλ©΄ 9μ λ°°μ κ°μ΄ λ©λλ€.
else if(num%9==0) return 9;
λ°λΌμ μ μ½λ 쑰건 λΆλΆμ 9λ‘ modμ°μ°μ κ³μν΄μ£Όμμ λ 0μ΄ λμ¨λ€λ©΄ 9μ λ°°μκ° λκΈ°μ κ²°λ‘ μ μΌλ‘ 9κ° λ©λλ€.
λ μμΈν μμλ΄ μλ€. μλμ νλ 1~100κΉμ§μ digits μ κ²°κ³Όμ λλ€.
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
---------
10 1
11 2
12 3
13 4
14 5
15 6
16 7
17 8
18 9
--------
19 1
20 2
21 3
22 4
23 5
24 6
25 7
26 8
27 9
-------
28 1
29 2
30 3
31 4
32 5
33 6
34 7
35 8
36 9
-------
37 1
38 2
39 3
40 4
41 5
42 6
43 7
44 8
45 9
------
46 1
47 2
48 3
49 4
50 5
51 6
52 7
53 8
54 9
--------
55 1
56 2
57 3
58 4
59 5
60 6
61 7
62 8
63 9
--------
64 1
65 2
66 3
67 4
68 5
69 6
70 7
71 8
72 9
--------
73 1
74 2
75 3
76 4
77 5
78 6
79 7
80 8
81 9
--------
82 1
83 2
84 3
85 4
86 5
87 6
88 7
89 8
90 9
-------
91 1
92 2
93 3
94 4
95 5
96 6
97 7
98 8
99 9
------
100 1
9κ°μ μκ° μ£ΌκΈ°μ μΌλ‘ κ°μ΄ 1~9κ° λμ΄μ μ μ μμ΅λλ€. mod 9 μ°μ°μ ννλ κ²μ λλ€.