규도자 개발 블로그

[백준/11720/자바(Java)] 숫자의 합 본문

알고리즘/풀이

[백준/11720/자바(Java)] 숫자의 합

규도자 (gyudoza) 2018. 9. 19. 00:11

문제

N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

출력

입력으로 주어진 숫자 N개의 합을 출력한다.

입출력 예

입력출력
1
1
1
5
54321
15
25
7000000000000000000000000
7
11
10987654321
46

풀이

import java.util.Scanner;
 
class Main {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int a = scan.nextInt();
    String sum = scan.next();
    int result = 0;
    if(!((1<=a)&&(a<=100))) {
      System.exit(0);
    }
    for(int i = 0; i < a; i++) {
      result += (sum.charAt(i)-'0');
    }
    System.out.println(result);   
  }// end of main
}

설명

첫번째 자료형은 Int로, 두번째 자료형은 String으로 입력받은 뒤에 String으로 입력받은 내용을 정수화하여 모두 더하는 형태이다. 문제를 풀었을 당시 왜 강제형변환이 아니라 (sum.charAt(i) - '0')이라는 괴랄한 방법을 썼을까 생각이 나질 않는다. 해당 방법은 각 문자들에 대한 ASCII값을 구해서 더하는 방식이다. 0의 ASCII값은 48인데 1~9는 차례대로 49~57이기 때문이다. 되게 이상하지만 뭐... 답은 도출했으니 된 것 같다.

Comments