코딩테스트/백준

[백준]11720 - 숫자의 합

민톨이 2024. 10. 10. 17:34
728x90

📋 문제

 

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

 

📋 입력

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

 

📋 출력

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

 
 

 


📋 풀이

package string;

import java.util.Scanner;

public class SumOfNum {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //자릿수 N
        int n1 = sc.nextInt();
        //둘째 줄 숫자 N개
        //둘째 줄에 숫자 N개가 공백없이 주어진다. => next() 사용
        String n2 = sc.next();
        //합계 선언
        int sum = 0;

        for (int i = 0; i < n1; i++) {
            sum += n2.charAt(i) - '0';
        }
        System.out.println(sum);
    }
}

 

출력 예시에 따르면, 첫 번째 줄에는 자릿수 N이 주어진다.

그래서 이를 저장하기 위해 int n1으로 선언함.

n2는 nextLine() 대신 next()를 사용하여 입력받는다. 이는 공백 없이 숫자들이 주어지기 때문.

 

각 숫자를 더하기 위해 sum 변수를 선언함.

이제 반복문을 사용하여 n2의 각 인덱스에서 숫자 값을 구해야함.

여기서는 charAt(i)로 각 문자를 가져오고, 그 문자를 실제 숫자로 변환하기 위해 **아스키 코드에서 '0'**을 뺀다.

 

아스키 코드 상 '0'은 48에 해당하므로, 이를 빼면 문자가 나타내는 실제 숫자 값으로 변환된다.

예를 들어 '3' - '0'은 51 - 48로 실제 숫자 3이 되는 것임

따라서 sum에 변환된 숫자를 더해주면 됨.

 

 

 

 

'코딩테스트 > 백준' 카테고리의 다른 글

[백준] 10773 제로  (1) 2024.10.20
[백준] 10818 최소, 최대  (0) 2024.10.17
[백준] 10871 X보다 작은 수  (0) 2024.10.17
[백준] 2480 주사위 세개  (0) 2024.10.15
[백준] 9086 문자열  (1) 2024.10.13