규도자 개발 블로그
[백준/11720/자바(Java)] 숫자의 합 본문
문제
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이기 때문이다. 되게 이상하지만 뭐... 답은 도출했으니 된 것 같다.
'알고리즘 > 풀이' 카테고리의 다른 글
[백준/2839/파이썬3(python3)] 설탕 배달 (2) | 2018.09.19 |
---|---|
[백준/11721/자바(Java)] 열 개씩 끊어 출력하기 (0) | 2018.09.19 |
[백준/11719/자바(Java)] 그대로 출력하기 2 (2) | 2018.09.19 |
[백준/11718/자바(Java)] 그대로 출력하기 (0) | 2018.09.18 |
[백준/11654/파이썬3(python3)] 아스키 코드 (0) | 2018.09.18 |
Comments