코드
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <string>
using namespace std;
typedef long long ll;
int res;
string s, n;
void FASTIO() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
int main() {
FASTIO();
cin >> n;
s = n; // 비교할 값 저장
while (1) {
if (n.length() == 1) {
string m = "0";
m += n; // 문자열 앞에 더해주어야 함
n = m;
}
int tmp = 0;
string stmp;
for (int i = 0; i < n.length(); i++) {
tmp += (n[i] - '0');
}
string k = to_string(tmp);
stmp += n[n.length() - 1]; // 가장 오른쪽에 있는 수 더하기
stmp += k[k.length() - 1]; // 가장 오른쪽에 있는 수 더하기
stmp = to_string(stoi(stmp));
n = stmp;
res++;
if (s == n) break;
}
cout << res << '\n';
return 0;
}
풀이
문제에 있는 조건을 그대로 구현했다. 문자열에 더하다가 아스키 코드로 변환되어 더해져 이상한 값이 나오기도 하는 일을 겪기도 했다.
'백준' 카테고리의 다른 글
[백준] 1747번 소수&팰린드롬 C++ 코드 (2) | 2024.11.05 |
---|---|
[백준] 1652번 누울 자리를 찾아라 C++ 코드 (2) | 2024.11.05 |
[백준] 2621번 카드게임 C++ 코드 (1) | 2024.11.05 |
[백준] 10819번 차이를 최대로 C++ 코드 (3) | 2024.11.05 |
[백준] 9370번 미확인 도착지 C++ 코드 (2) | 2024.10.17 |