내일배움캠프 16일차 TIL <C# 문제은행 > 04/28

정광훈(Unity_9기)·2025년 4월 28일

TIL (Today I Learned)

목록 보기
27/110
post-thumbnail

using System;

public class Solution
{
    public int solution(int n)
    {
        int answer = 0;

        int a = (int)Math.Log10(n);

        for (int i = a; i >= 0; i--)
        {
            int b = n / (int)Math.Pow(10, i);
            n = n - b * (int)Math.Pow(10, i);
            answer += b;
        }

        return answer;
    }

// 윗 부분만 정답, 아래 부분은 확인용
    static void Main(string[] args)
    {
        Solution s = new Solution();

        Console.WriteLine(s.solution(1234));
    }
}

★Math.Pow(밑, 지수): 제곱근을 표현하는 메서드

10^n이런 식으로 처음에 사용했다가 이상한 값이 나오길래 혹시나 해서 검색해 봤다더니 다른 메서드라 존재했었다.

i는 0부터 a의 지수 만큼 반복
( a = (int)(Math.Log(1234)) = 3 (최대 10의 3승))

b는 해당 숫자의 앞자리를 추출하기 위한 과정
(1234 -> 1 추출)

n에 추출한 숫자부분을 제거한 남은 숫자
(1234 -> 234)

answer에 추출한 숫자를 더함
(answer = 1, 추출한 숫자를 answer에 더함)

이걸 반복해서

answer = 1 + 2 + 3 + 4 순으로 더해진다.

0개의 댓글