Koala - 14기/코딩테스트 준비 스터디
[백준/C++] 1769번 3의 배수
nunomi0
2024. 4. 14. 01:24
https://www.acmicpc.net/problem/1769
1769번: 3의 배수
문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를
www.acmicpc.net
문제
큰 자연수 X가 주어질 때, 각 자릿수의 합이 한 자리수가 될 때 까지 몇 번의 과정을 거쳤는지 출력하고, 둘째 줄에는 그 한 자리 수가 3의 배수이면 "YES", 아니면 "NO"를 출력한다.
풀이
- 큰 수는 1,000,000 자리 이하의 수임에 주의한다. -> string 이용
- cnt++를 해주며 횟수를 저장하고, s의 각 자릿수의 합을 계산한다.
#include <iostream>
#include <string>
using namespace std;
string s;
int cnt = 0;
int main() {
cin >> s;
while (s.length()!=1) {
cnt++;
int tmp = 0;
for (int i = 0; i < s.length(); i++) {
tmp += s[i] - '0';
}
s = to_string(tmp);
}
cout << cnt << '\n';
if ((s[0] - '0') % 3 == 0) cout << "YES";
else cout << "NO";
}