본문 바로가기

Programming/Algorithm (C++)

[백준 1065번] c언어 :: 한수

#include <stdio.h> 

int han(int n) {

	int A, B, C;
	int count = 0;

	if (n < 100)
		return n;
	else {
		for (int i = 100; i <= n; i++) {
			A = i / 100;
			B = (i / 10) % 10;
			C = (i % 10) % 10;

			if ((A - B) == (B - C))
				count++;

		}

		return (99 + count);
	}

}

int main() {
	int ans;
	int num;
	scanf("%d", &num);

	ans=han(num);
	printf("%d\n", ans);


	return 0;
}

문제 풀기 위해 문제 이해 능력부터 길러야할 것 같다..

100이하일 때는 1씩 커지는 그 갯수 그대로.

100넘어가면 99에서 갯수 올리기.

100 이상일 때는 100의자리 10의자리 1의 자리 모두 같은 차수로 커지고 작아지는것 비교하는 알고리즘짜기가 관건