반응형
[ 문제 ]
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
[ 코드 ]
using System;
class Program
{
static bool IsHansu(int number)
{
if (number < 100)
return true;
char[] digits = number.ToString().ToCharArray();
int diff = digits[1] - digits[0];
for (int i = 1; i < digits.Length - 1; i++)
{
if (digits[i + 1] - digits[i] != diff)
return false;
}
return true;
}
static int CountHansu(int N)
{
int count = 0;
for (int num = 1; num <= N; num++)
{
if (IsHansu(num))
count++;
}
return count;
}
static void Main(string[] args)
{
int N = int.Parse(Console.ReadLine());
Console.Write(CountHansu(N));
}
}
10의 자리까지는 모두 한수이기때문에 true로 하고 그 이후부터 검사를 해준다.
이때 차가 다르면 한수가 아니기때문에 false로 반환한다.
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/1065
반응형
'Language > C#' 카테고리의 다른 글
[C#] 백준 1032번 명령 프롬프트 (0) | 2024.04.09 |
---|---|
[C#] 백준 2606번 바이러스 (0) | 2024.04.08 |
[C#] 백준 1654번 랜선 자르기 (0) | 2024.04.07 |
[C#] 백준 1388번 바닥 장식 (그래프- 깊이 우선 탐색(DFS)) (0) | 2024.04.06 |
[C#] 백준 11659번 구간 합 구하기 4 (1) | 2024.04.05 |