https://www.acmicpc.net/problem/1769
문제
큰 자연수 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";
}
'Koala - 14기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[Programmers/Java] 디스크 컨트롤러 (0) | 2024.04.15 |
---|---|
[백준/Python] 22252 정보 상인 호석 (0) | 2024.04.14 |
[백준/Python] 2346 풍선 터뜨리기 (0) | 2024.04.12 |
[백준/python3] 25603번 : 짱해커 이동식 (0) | 2024.04.08 |
[백준/python] 19951 태상이의 훈련소 생활 (0) | 2024.04.08 |