#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의 자리 모두 같은 차수로 커지고 작아지는것 비교하는 알고리즘짜기가 관건
'Programming > Algorithm (C++)' 카테고리의 다른 글
[백준 11729번] c언어 :: 하노이탑 이동 순서 (0) | 2020.12.27 |
---|---|
[백준 2750번] c언어 :: 수 정렬하기 (0) | 2020.12.27 |
[백준 4344번] c언어 :: 평균은 넘겠지 (0) | 2020.12.27 |
[백준 15596번] c언어 :: 정수 N개의 합 (0) | 2020.12.25 |
[백준 1546번] c언어 :: 평균 (0) | 2020.12.25 |