๋ฌธ์
https://www.acmicpc.net/problem/1475
์ค๋ช
๋ฌธ์ ๋ ์ฌ์ค์ ์ ๋ ฅ๋ ๊ฐ์ ๊ฐ์๋ฆฟ์์ ์๋ฅผ ์ซ์๋ณ๋ก ์นด์ดํธ ํ์ฌ ์นด์ดํธ ๋ ๊ฐ์ค ์ ์ผ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ฉด ๋๋, ์ฌ๊ธฐ์๋ 6๊ณผ 9๋ ๋์ผํ ์๋ก ์ทจ๊ธํด์ผํ๋ ์กฐ๊ฑด์ด ์กด์ฌํ๋ฏ๋ก ๊ทธ๋ถ๋ถ์ ๊ฐ์ํ์ฌ ์นด์ดํธ ํ๋๋ก ํด์ผ๋๋ค. ๋ฐ๋ผ์ ๋์ ๊ฒฝ์ฐ 6๊ณผ 9๋ ๋ฐ๋ก ์กฐ๊ฑด๋ฌธ์ ์ด์ฉํด ๋ถ๋ณํ์ฌ 6์ด๋ 9๊ฐ ๋์ค๋ฉด 6์ ๊ฐฏ์์ 9์ ๊ฐฏ์๋ ๋์ผํ๊ฒ +1ํ์ฌ ๋์ผํ ์นด์ดํธ ์๋ฅผ ์ ์งํ๋๋กํ๊ณ ์ต์ข ์ ์ผ๋ก ์นด์ดํธ ๋ ์ ์ฒด์์ ์ต๋๊ฐ์ ๊ตฌํ์ฌ ์ถ๋ ฅํ๋๋ก ํ์๋ค.
์ฝ๋
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int n, num[10] = {0,0,0,0,0,0,0,0,0,0},_6_9=0, len,max = 0;
scanf("%d", &n);
for (len = 6; len; len--) //๋ช์๋ฆฌ ์ ์ธ์ง ๊ตฌํ๊ธฐ
if (n % (int) pow(10, len) != n)
break;
for (len; len>=0; len--) //๊ฐ ์ซ์ ์นด์ดํธ
{
int temp = (n / (int)pow(10, len));
if(temp != 6 && temp != 9)
num[temp]++;
else
{
if (_6_9 % 2 == 0)
{
num[6]++;
num[9]++;
}
_6_9++;
}
max = num[temp] > max ? num[temp] : max;
n -= temp * (int)pow(10, len);
}
printf("%d", max);
return 0;
}