-
1475 본문
틀린 코드:
틀린 이유느 1123699 입력이 있으면 2가 나와야하는데 3이나온다. 이유는 아래 알고리즘에 따라 단순하게 같은 숫자가 나오거나 6과 9의 경우 cnt를 증가시켰기 때문이다.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int check_1=0;
int n;
int num=0,i=0,cnt=1;
cin>>n;
num = n;
while(num>0)
{
num /= 10;
i++;
}
int arr[i]; i=0; num = n;
while(num>0)
{
arr[i++] = num%10;
if(arr[i-1] == 6 || arr[i-1] == 9)
{
check_1++;
if(check_1 %2 != 0 && check_1 > 2)
{
cnt++; // this point
}
}
for(int j=0; j<i-1; j++)
{
if(arr[j] == arr[i-1])
{
if(arr[j]==6 || arr[j]==9) continue;
cnt++;
}
}
num /= 10;
}
cout<<cnt;
return 0;
}
해설을 잘 살펴보니 생각지 못한 풀이였다.
int check[10];
string str;
getline(cin, str);
for (int i = 0; i < str.size(); i++)
{
check[str[i] - '0']++;
}
'Algorithm > Baekjoon' 카테고리의 다른 글
2750 - 버블정렬 (0) | 2018.01.09 |
---|---|
6064 카잉달력 (0) | 2018.01.09 |
2775 (0) | 2018.01.03 |
10250 (0) | 2018.01.03 |
1011(다른 방법으로 꼭 다시 풀어 보기) (0) | 2018.01.03 |