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 |