백준 1065번
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
1. 문제
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
2. 내가 작성한 알고리즘
#include <stdio.h>
#pragma warning (disable:4996)
int main()
{
int input;
scanf("%d", &input);
float a, b, c, d;
int count = 0;
for (int i = 1; i <= input; i++) {
if (i < 100) count += 1;
if (i >= 100) {
a = i / 100;
b = i % 100 / 10;
c = i % 10 / 1;
if ( (a+c)/2==b ) {
count += 1;
}
}
}
printf("%d", count);
return 0;
}
3. 이번 알고리즘을 통해 배운 점
이번 알고리즘을 따른 함수를 쓰지 않고 오직 알고리즘에 의존하여 풀었다.
이번 문제의 핵심은 문제를 얼마나 이해했는지, 어떻게 풀어나갈 것인가를 잘 생각하여야 한다는 것이다.
'C > 백준 알고리즘 (c언어)' 카테고리의 다른 글
문자열 practice 02_단어 공부 (0) | 2021.07.07 |
---|---|
문자열 practice 01_ 알파벳 찾기 (0) | 2021.07.06 |
함수 practice 01_셀프 넘버 (0) | 2021.07.01 |
1차원배열 practice 03_OX퀴즈 (0) | 2021.06.30 |
1차원 배열 practice 02_최댓값 구하기 (0) | 2021.06.29 |