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()
메서드를 떠올리지 못해 접근자체를 못했다.