백준 1065번

CharliePark·2020년 9월 23일
0

TIL

목록 보기
45/67

BOJ 1065번 : 한수

#include <stdio.h>


int main()
{
	int count = 0;

	int N, index;

	char arr[3] = { 0, };

	while (scanf("%d", &N) != 1) continue;

	if (N == 1000)
		N--;

	if (N >= 100)
	{
		count = 99;

		for (int n = 100; n <= N; n++)
		{
			int temp = n;

			for (int i = 0; i < 3; i++)
			{
				arr[i] = temp % 10;
				temp /= 10;
			}

			if ((arr[2] - arr[1]) == (arr[1] - arr[0]))
				count++;
		}
	}
	else
		count = N;

	printf("%d", count);

	return 0;
}

100 미만의 자연수는 모두 한수이기 때문에 경우를 나눠서 진행했고

1000이 입력되었을 때와 999가 입력되었을 때 한수의 개수가 같으므로

1000이 입력되면 999로 바꾸는 치팅을 했다

.. 부끄럽다

1065번과 어제 푼 4673번은 다시 좀 더 깔끔히 풀어볼 필요가 있을 것 같아 체크해두었다

0개의 댓글