๋ฌธ์
์ฝ๋
class Solution {
public:
bool isHappy(int n) {
string s;
s = to_string(n);
while(true){
unsigned long long temp = 0;
for(int i=0; i<s.length(); i++){
temp += pow(s[i]-'0',2);
}
if(temp==1||temp==7) return true;
if(temp<10&&temp!=1) return false;
s = to_string(temp);
}
}
};
ํ์ด
Happy Number, ์ฆ ํ๋ณตํ ์ ์ธ์ง ์๋์ง ํ๋ณํ๋ ๋ฌธ์ ์ ๋๋ค. ํ๋ณตํ ์๋ ์์ฐ์๊ฐ ์ฃผ์ด์ก์ ๋ ์์ฐ์์ ๊ฐ ์๋ฆฟ์์ ์ ๊ณฑ์ ํฉ์ด ๊ฒฐ๊ตญ 1์ด ๋๋ ๊ฒฝ์ฐ๋ฅผ ํ๋ณตํ ์๋ผ๊ณ ์นญํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
n = 19
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
๊ฒฐ๊ตญ 1์ด ๋์ด 19๋ ํ๋ณตํ ์๊ฐ ๋ฉ๋๋ค.
n = 7
7^2 = 49
4^2 + 9^2 = 97
9^2 + 7^2 = 130
1^2 + 3^2 + 0^2 = 10
1^2 + 0^2 = 1
๊ฒฐ๊ตญ 1์ด ๋์ด 7์ ํ๋ณตํ ์๊ฐ ๋ฉ๋๋ค.
ํ๋ณตํ ์์ ๋ํ ์ ์์ธํ ์ค๋ช ์ ์๋ ๋ธ๋ก๊ทธ์ ์ ๋์ ์์ผ๋ ํ๋ฒ ๋ณด์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
Input์ผ๋ก ๋ค์ด์ค๋ ์ต๋ ์๊ฐ 2^31- 1 ์ผ๋ก์จ 21์๋ฆฌ ๋ฐ์ ๋์ง ์๊ธฐ ๋๋ฌธ์ for๋ฌธ์ผ๋ก ๊ฐ ์๋ฆฟ์๋ฅผ ์ ๊ณฑํด๊ฐ๋ฉด์ ๋ง์ฝ ์์ฐ์๊ฐ ํ์๋ฆฌ ์ ์ผ ๋ 1 ํน์ 7์ด๋ฉด true๋ฅผ return ํด์ฃผ๋ ์์ผ๋ก ํ์ดํ์ต๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > Leetcode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Leetcode,c++] Add Digits (0) | 2022.03.02 |
---|---|
[Leetcode,c++] Majority Element (0) | 2021.11.28 |
[Leetcode,c++] Network Delay Time (0) | 2021.11.22 |
[Leetcode,c++] Valid Anagram (0) | 2021.11.20 |
[Leetcode,c++] Single Number (0) | 2021.11.19 |
[Leetcode,c++] Combination Sum II (0) | 2021.11.16 |
๋๊ธ