문제는 다음과 같다.
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을 빼주면 정수 값을 얻어낼 수 있다.
'코딩일기' 카테고리의 다른 글
| [알고리즘] 백준 #2018 수들의 합5 - C# (0) | 2025.05.07 |
|---|---|
| [알고리즘] 백준 #1546 평균 - C# (0) | 2025.05.01 |
| [알고리즘 순서도] (0) | 2024.09.09 |
| [알고리즘] 백준 #3004 체스판조각 -Java (0) | 2022.03.03 |
| [알고리즘] 백준 #2530 인공지능 시계-Java (0) | 2022.03.03 |