Slow but steady wins the race

[JAVA] 백준 11720번 : 숫자의 합 본문

Programming Language/자료구조와 알고리즘

[JAVA] 백준 11720번 : 숫자의 합

BS Kwak 2021. 2. 3. 21:34

1. 문제

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

 

2. 코드

import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String num = sc.next();
		int sum=0;
		for(int i=0;i<N;i++) {
			sum+=num.charAt(i)-48;
			
		}
		System.out.println(sum);
		sc.close();
	}

}

 

3. 풀이

공백없이 숫자N개를 입력받는다? => 문자열로 입력받는다? 이런 생각의 흐름을 거쳤다

막상 문자열로 입력을 받고 보니, 문자열에서 하나씩 뽑아 숫자를 출력해야하는데 charAt은 해당문자의 아스키코드값을 반환하기 때문에 48을 빼주거나 '0'을 빼줘야 한다.

 

num에 123이 저장되어 있다는 가정하에 num.charAt(0)을 출력하면 1이 아닌, 49가 출력된다. 따라서 48을 빼주는 것이다. 48은 '0'의 아스키코드 값이기 때문에 48대신 '0'을 빼도 무방하다.

 

4. 링크

www.acmicpc.net/problem/11720

 

11720번: 숫자의 합

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

www.acmicpc.net

 

Comments