코딩문제/구름 IDE
1단계 : 369 게임
Drill_Labito
2020. 7. 1. 10:41


#include <iostream>
#include <cstring>
using namespace std;
int count(char *s){
int count =0;
for(int i=0;i<strlen(s);i++){
if(s[i]=='3' || s[i]=='6' || s[i]=='9')
count++;
}
return count;
}
//반복문을 통해 입력받은 숫자까지 올린다.
//숫자를 문자열로 변환후, 3,6,9에 해당하는 문자가 있는지 판단 후, 일치하는만큼 개수를 카운트
//최종적으로 모든 숫자에서 이 카운터를 합해줌. 이를 프린트.
int main() {
char arr[1000];
int num;
int tmp = 0;
cin >> num;
int sum = 0;
for(int i=1; i<num;i++){
sprintf(arr,"%d",i);
tmp = count(arr);
sum+=tmp;
}
cout << sum << endl;
return 0;
}
처음엔 숫자형을 받아와서 처리를 해주려 했으나, 채점 데이터 6케이스중 2케이스를 통과하지 못하여 문자열로 입력받은 후, 각각 문자로 분리하여 각 자리가 3,6,9 에 해당하면 카운트 증가시켜주는 함수를 구현. 해당함수를 메인함수에서 반복문을 통해 처음 입력받은 숫자까지 369 게임을 하면서, 일치하는 곳이 있으면, sum 함수를 통하여 모든 경우의 카운트를 더하게 함으로 문제를 해결함.