๋ฌธ์ œ

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;
}