https://www.acmicpc.net/problem/4673
아스키코드로 자릿수를 푸는 방향으로 해결하였다.
풀고 C# 1등분의 코드를 보니 각 자릿수를 더해가는 방향으로 풀었다.
using System;
using System.IO;
using System.Text;
namespace B4673
{
class Program
{
static void Main()
{
StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
StringBuilder sb = new StringBuilder();
bool[] selfNums = new bool[10001]; //생성자가 없으면 false
//int index = 1;
int num = 0;
for(int index=1; index < selfNums.Length; index++)
{
if (index < 10) selfNums[index * 2] = true; //10이하는 2배
else
{
string str = index.ToString();
num = index;
for (int i = 0; i < str.Length; i++) num += (str[i] - 48);
if (num <= 10000) selfNums[num] = true;
}
}
//출력
for (int i = 1; i < selfNums.Length; i++) if (!selfNums[i]) sb.Append(i + "\n");
sw.Write(sb);
sw.Flush();
sw.Close();
}
}
}
'알고리즘 > 백준 BOJ' 카테고리의 다른 글
[ BOJ/C# ] 1475 방 번호 (1) | 2023.11.10 |
---|---|
[ BOJ/C# ] 1065 한수 (0) | 2023.11.08 |
[ BOJ/C# ] 2941 크로아티아 알파벳 (0) | 2023.11.06 |
[ BOJ/C# ] 1789 수들의 합 (0) | 2023.11.06 |
[ BOJ/C# ] 16435 스네이크버드, 골드 (0) | 2023.11.05 |