int put = int.Parse(Console.ReadLine());
int result = 0;
for(int i = 0; i <= put; i++) {
string temp = i.ToString();
int arrSum = 0;
for(int j = 0; j < temp.Length; j++) {
arrSum += int.Parse(temp[j].ToString());
}
if(i + arrSum == put) {
result = i;
break;
}
}
Console.Write(result);
처음 보자마자 생각 났던게 문제 그대로 풀이하는 것이 였는데 결과가 처참해서 다른 사람이 한 것을 찾아보았다,,
int put = int.Parse(Console.ReadLine());
int result = 0;
for (int i = 1; i <= put; i++)
{
int sum = i;
int num = i;
while (num != 0)
{
sum += num % 10;
num /= 10;
}
if (sum == put)
{
result = i;
break;
}
}
Console.Write(result);
다른 사람이 한 것을 통하여 이런 식으로 개선!! for문을 계속 도는 대신 한 자리수식 나누면서 연산을 한다고 이해하였으니,, 확실히 연산량이 100000 * 6 = 600000번에서 많아봐야 while(true) 100000 / 10 에서는 5번인가로 확실히 줄고, 나머지 값을 통하여 값을 가져오는 식인듯허다..
어렵당..