문제
N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
출력
입력으로 주어진 숫자 N개의 합을 출력한다.
두가지 방식으로 풀어보았다.
1. 예제에 매우 큰수가 들어가기에 string 으로 받을 수를 하나하나 쪼개서 총합을 구함.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
using System;
class Program
{
static void Main(string[] args)
{
int iNum = int.Parse(Console.ReadLine());
string sNum = Console.ReadLine();
int total = 0;
for (int i = 0; i < iNum; i++)
{
total += int.Parse(sNum[i].ToString());
}
Console.WriteLine(total);
}
}
|
cs |
2. Linq 를 사용하여 int 배열로 변환 후 sum() 메서드를 사용.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
int iNum = int.Parse(Console.ReadLine());
string sNum = Console.ReadLine();
int[] arrNum = new int[iNum];
arrNum = sNum.Select(n=>int.Parse(n.ToString())).ToArray();
Console.WriteLine(arrNum.Sum());
}
}
|
cs |
2번 방식이 Linq로 인해 조금 더 느리고 배열 사용으로 메모리를 더 사용하는 걸로 보인다.
https://www.acmicpc.net/problem/11720
'void Algorithm' 카테고리의 다른 글
백준 문제 번호 : 2675 - 문자열 반복 (0) | 2020.07.07 |
---|---|
백준 문제 번호 : 10809 - 알파벳 찾기 (0) | 2020.07.07 |
백준 문제 번호 : 11654 - 아스키 코드 (0) | 2020.07.07 |
백준 문제 번호 : 1065 - 한수 (0) | 2020.07.07 |
백준 문제 번호 : 4673 - 셀프 넘버 (0) | 2020.07.07 |