https://www.acmicpc.net/problem/2231
B2 문제라도 1~n 찾는 건 좀 재미없어서 추가 조건을 연구해봤다.
생성자 X가 3자리의 수라면, X + X[0] + X[1] + X[2]가 나온다. 여기서 X[?]의 최솟값은 1, 최댓값은 9다. 그리고 해당 수는 무조건 더해야 하므로 최대로 더했을 때, 최소로 더했을 때 목표 숫자가 나오는지 확인하면 된다.
즉 3자리의 수는 자기 수에서 (3 ~ 27) 사이의 값이 더해졌을 때 목표 숫자가 나와야 한다. => N - (자릿수 * 9)부터 확인하자.

using System;
using System.Linq;
class Baekjoon
{
public void Solution(int n)
{
var start = n - 9 * n.ToString().Length;
for (var i = start; i < n; i++)
{
var calc = i + i.ToString().Select(c => c - '0').Sum();
if (calc == n)
{
Console.WriteLine(i);
return;
}
}
Console.WriteLine(0);
}
static void Main(string[] args)
{
var n = int.Parse(Console.ReadLine()!);
new Baekjoon().Solution(n);
}
}

사실 이거 자랑하려고 글 썼음.

게임 큐 돌리는 느낌으로 열심히 했다.