본문 바로가기
코딩일기

[알고리즘] 백준 #11720 숫자의 합 - C#

by 심다린 2025. 5. 1.

문제는 다음과 같다.

https://www.acmicpc.net/problem/11720

 

입력받은 N개의 수를 더한 값을 출력하는 간단한 문제이다. 

 

<나의 풀이>

using System;
namespace CodingTest
{
    public class B_11720
    {
        public static void Main(String[] args)
        {
            int n = int.Parse(Console.ReadLine());
            string num = Console.ReadLine();

            char[] array = num.ToCharArray();
            int sum = 0;

            for (int i = 0; i < array.Length; i++)
            {
                sum += int.Parse(array[i].ToString());
            }

            Console.WriteLine(sum);
        }
    }
}

 

 

여기서 알아둬야할 것은 

1. ToCharArray()

: 문자열을 Char형 배열로 바꿔주는 메서드이다. 

스트링 값으로 입력받은 수를 하나하나 배열로 나눠서 저장할 때, ToCharArray()를 사용하면 아주 간단하게 구현할 수 있다.

 

2. Char형 -> int()형으로 변환하기 

①int.Parse() 사용하기 

나의 풀이에서는 array[i].ToString() 을 이용해서 배열의 Char 값을 다시 스트링으로 형변환 한 후 그것을 int.Parse()를 통해 다시 형변환 해줬다.

※ int.Parse() : 문자열을 int형으로 변환한다. 

Parse 메서드는 문자열을 특정 타입으로 강제 변환하는 메서드이다. Parse메서드 사용시 변환하고자 하는 것이 String 타입인지 반드시 확인할 것 

 

Char.GetNumericValue() 사용하기 

for (int i = 0; i < array.Length; i++)
   {
      sum += (int)char.GetNumericValue(array[i]);
   }

내장된 GetNumericValue() : 숫자 유니코드 문자를 해당 숫자로 변환하는 방법

 

③'0' 빼주기

for (int i = 0; i < array.Length; i++)
   {
       sum += array[i] - '0';
   }

 숫자의 아스키 값은 48번 부터 0~9를 할당하고 있다.

char형 '1'은 정수값 49를 가진다. 

따라서 0의 아스키 값인 48을 빼주면 정수 값을 얻어낼 수 있다.