https://www.acmicpc.net/problem/1065
1위분 코드를 보니 100 이상이면 99를 더해준 후, 그 이후부터 탐색하였다.
이러한 방법이 맞는건가..? 시간적으로만 본다면 훨씬 효율적이다. 실제로는 어떻게 사용해야할까..
마치 예전에 본 개발 밈이 생각났다.
*출력 문제에서 초보자는 의도대로 알고리즘을 짜 출력하고, 전문가는 *출력을 그대로 입출력하는 밈이었다.
using System;
using System.IO;
namespace B1065
{
class Program
{
static int count = 0;
static void AP(int x)
{
int n = 10;
while (true)
{
if (x < 10) //10미만일 경우 종료
{
count++;
break;
}
//각 자리 차이 비교
int a = x % 10;
x /= 10;
int b = x % 10;
int m = a - b;
if (n == 10) n = m;
else if (n != m) break; //등차수열이 아닌 경우
}
}
static void Main()
{
StreamReader sr = new StreamReader(Console.OpenStandardInput());
StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
int n = int.Parse(sr.ReadLine());
for (int i = 1; i <= n; i++) AP(i);
sw.Write(count);
sr.Close();
sw.Flush();
sw.Close();
}
}
}
'알고리즘 > 백준 BOJ' 카테고리의 다른 글
[ BOJ/C# ] 9655 돌 게임 (0) | 2023.11.11 |
---|---|
[ BOJ/C# ] 1475 방 번호 (1) | 2023.11.10 |
[ BOJ/C# ] 4673 셀프 넘버 (0) | 2023.11.07 |
[ BOJ/C# ] 2941 크로아티아 알파벳 (0) | 2023.11.06 |
[ BOJ/C# ] 1789 수들의 합 (0) | 2023.11.06 |