PROBLEM SOLVING

[백준] 숫자의 합

sooindev 2025. 4. 29. 00:05
728x90

문제


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

 

 

 

입력


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

 

 

 

출력


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

 

 

 

문제 풀이


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // 첫째 줄에서 숫자의 개수 N을 읽어옴
        int N = Integer.parseInt(br.readLine());

        // 둘째 줄에서 공백 없이 주어진 숫자들을 읽어옴
        String numbers = br.readLine();

        int sum = 0;

        // 각 자리의 숫자를 하나씩 읽어서 합을 계산
        for (int i = 0; i < N; i++) {
            // 문자를 숫자로 변환하여 더함
            sum += numbers.charAt(i) - '0';
        }

        // 합을 출력
        System.out.println(sum);

        br.close();
    }
}

숫자들을 각각 한줄로 입력을 받아 출력하는 것까지는 구현했었다.

 

하지만 공백 없이 숫자들을 입력 받는 부분을 어떻게 접근해야할지 몰라 결국 도움을 받았다.

 

// 첫째 줄에서 숫자의 개수 N을 읽어옴
int N = Integer.parseInt(br.readLine());

우선 BufferedReader를 이용하여 숫자의 개수 N을 받아온다.

// 둘째 줄에서 공백 없이 주어진 숫자들을 읽어옴
String numbers = br.readLine();

그리고 공백 없이 주어진 숫자들을 BufferedReader를 사용해서 받는다.

int sum = 0;

// 각 자리의 숫자를 하나씩 읽어서 합을 계산
for (int i = 0; i < N; i++) {
    // 문자를 숫자로 변환하여 더함
    sum += numbers.charAt(i) - '0';
}

for문을 돌려 N까지 순회한다.
순회하면서 charAt() 메서드를 이용해서 문자를 읽는다.
그리고 - '0' 연산을 통해 문자를 숫자로 변환하고, += 연산을 한다.

 

마지막으로 결과값인 sum을 출력한다.

 

 

이번 문제는 내가 charAt() 메서드를 떠올리지 못해 접근자체를 못했다.