백준 1065번 한수(C언어)

최정우·2022년 7월 3일
0

백준 문제풀이

목록 보기
15/26


Code

#include <stdio.h>

int main()
{
	int N, ans=0, N1=0, N2=0, N3=0;
	scanf_s("%d", &N);

	if (N < 100)
	{
		ans = N;
	}
	else if (N >= 100 && N <= 1000)
	{
		ans = 99;
		for (int i = 100; i <= N; i++)
		{
			N1 = i / 100;
			N2 = (i - (N1 * 100)) / 10;
			N3 = i - (N1 * 100 + N2 * 10);
			if ((N3 - N2) == (N2 - N1))
			{
				ans++;
			}
		}
	}
	printf("%d", ans);
	return 0;
}

Key Points

  1. 1~99까지의 모든 수는 '한수'이므로 100부터 카운트를 할때 +99를 해줌
  2. 세자리 수의 각 자리수를 분리한 후 if((백의자리-십의자리)=(십의자리-일의자리))인지 비교
profile
WHEN LIFE GIVES YOU LEMONS, MAKE LEMONADE

0개의 댓글