-
코드업 행복한 수(c++)알고리즘 2024. 2. 17. 13:43
https://codeup.kr/problem.php?id=4032&rid=
#include <iostream> #include <vector> #include <algorithm> #include <cmath> using namespace std; #define MAXN ((int)1e3) int N; vector<int> v; void InputData(){ cin >> N; } int sum(int n) { int tmp = 0; while (n > 0) { tmp += pow(n % 10, 2); n /= 10; } return tmp; } bool isHappy(int n) { v.clear(); v.push_back(n); while (true) { n = sum(n); if (n == 1) return true; if (find(v.begin(), v.end(), n) != v.end()) { if (n != 1) { return false; } } v.push_back(n); } } int solve(int n) { while (n > 0) { if (isHappy(n)) return n; n--; } return 1; } int main(){ int ans = -1; InputData();//입력받는 부분 //여기서부터 작성 ans = solve(N); cout << ans << endl;//출력하는 부분 return 0; }
'알고리즘' 카테고리의 다른 글
2차원 배열 인덱스 조합 구하기 (0) 2023.05.14 compareTo 비교 (0) 2023.04.06 2차원 배열 복사 (0) 2022.12.16 투포인터(백준 2003번), 슬라이딩 윈도우(자바) (0) 2022.11.11 문자열 KMP 알고리즘 (0) 2022.10.18