import java.util.Scanner;
public class Zsum_of_num_11720 {
public static void main (String[] args) {
int sum = 0;
Scanner in = new Scanner(System.in);
int num = in.nextInt();
in.nextLine();
String ns = in.nextLine();
String[] str = ns.split("");
for (int i = 0; i < num; i++) {
sum += Integer.parseInt(str[i]);
}
System.out.println(sum);
}
}
원래는 두번째 줄 숫자를 입력받을 때 int를 사용했다.
num%10 으로 맨 뒷 자리 수를 추출한 다음 sum에 더하고, num /= 10 으로 맨 뒷 자리 수를 없앴다.
그런데 이렇게 하니 25자리의 큰 숫자를 입력받을 때 오류가 발생했다. int가 담을 수 있는 자릿수는 한정되어 있기 때문이다.
그래서 int 대신 string으로 수정했다.
string으로 받은 후 공백이 없는 숫자이기 때문에 한 자리씩 배열에 넣어주고, 반복문을 통해 각 숫자를 더했다.
이 과정에서 BigInteger 도 알게 되었는데, 코드 내에서 직접 값을 입력해줘야 했기에,
이번 문제에서는 적합하지 않은 형태였다.
'JAVA' 카테고리의 다른 글
[JAVA][백준] 1152_단어의 개수 (0) | 2024.04.15 |
---|---|
[JAVA][백준] 2884_알람시계 (0) | 2024.04.15 |
[JAVA][백준] 2562_최댓값 (0) | 2024.04.15 |
[JAVA][백준] 2439_별찍기2 (0) | 2024.04.15 |
2023-1주차 backjoon 문제풀이 (0) | 2023.09.04 |