코드
#include <iostream>
#include <string>
using namespace std;
class answer // 객체 개념
{
public:
// 생성자 -> private 변수 초기화
answer() : count(0), Y(0)
{
}
string XY; // -> public 변수
void check3() {
// X가 한 자리 숫자 인 경우
if (XY.size() == 1) {
if ((XY[0] - '0') % 3 == 0) { // 3의 배수인 경우
cout << count << "\n";
cout << "YES";
}
else { // 3의 배수가 아닌 경우
cout << count << "\n";
cout << "NO";
}
}
else {
while (true) {
for (int i = 0; i < XY.size(); ++i){
Y = Y + (XY[i] - '0'); // 각 자리 수만큼 Y에 추가 합 연산
}
++count; // 그 과정을 몇번 했는지 카운트
if (Y < 10) { // 10보다 작아지는 시점에서 반복문 탈출
break;
}
XY = to_string(Y); // Y를 다시 XY에 정수 -> 문자열로 변환
Y = 0; // Y값은 다시 0으로
}
cout << count << "\n";
if (Y % 3 == 0) { // 3의 배수면 YES
cout << "YES";
}
else {
cout << "NO"; // 아니면 NO
}
}
}
protected:
private:
int count;
int Y;
};
int main()
{
string x;
cin >> x;
answer NewAnswer = answer(); // 객체 생성 및 초기화
NewAnswer.XY = x; // NewAnswer.XY : public : 외부에서 사용 가능
NewAnswer.check3(); // check3() -> public : 외부에서 사용 가능
}
'C++ > 백준 C++' 카테고리의 다른 글
[C/C++] 백준 30999번 민주주의 (2) | 2023.12.26 |
---|---|
[C/C++] 백준 10801번 카드게임 (0) | 2023.12.24 |
[C/C++] 백준 30007번 라면 공식 (0) | 2023.12.21 |
[C/C++] 백준 1075번 나누기 (2) | 2023.12.20 |
[C/C++] 백준 30957번 빅데이터 vs 정보보호 vs 인공지능 (2) | 2023.12.19 |