N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
입력으로 주어진 숫자 N개의 합을 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int sum = 0;
Scanner sc = new Scanner(System.in);
int strLength = sc.nextInt();
String inputStr = sc.next();
for (int i = 0; i < strLength; i++) {
sum += inputStr.charAt(i) - '0';
}
System.out.println(sum);
}
}
import java.util.Scanner;
public class P11720_숫자의합 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
// String 변수로 받아 배열 변수로 변환하기
String sNum = sc.next();
char[] cNum = sNum.toCharArray();
int sum = 0;
for (int i = 0; i < cNum.length; i++) {
sum += cNum[i] - '0'; // 문자 값을 정수 형으로 변환하여 더해주기
}
System.out.print(sum);
}
}
먼저 처음에 문자열을 sc.next()가 아니라 sc.nextLine()으로 입력받았는데, 계속하여 문자열을 제대로 갖고 오지 못하는 문제가 발생하였다.
그 이유를 찾아보니 아래 내용과 같았다.
https://velog.io/@alswp2274/JAVA-next-nextLine%EC%9D%98-%EC%B0%A8%EC%9D%B4
예제 풀이와 비교하면, 내 풀이는 따로 string을 char array로 변환하지 않고 바로 charAt()으로 바로 sum에 추가하였다.