본문 바로가기
Algorithm/Beakjoon

[Java] baekjoon 11720 : 숫자의 합 / 문자열

by Amy97 2021. 8. 4.
728x90

문제 


https://www.acmicpc.net/problem/11720

 

11720번: 숫자의 합

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

www.acmicpc.net

해결 


출처 : https://shaeod.tistory.com/228

문자열로 입력받은 수의 각 자릿수를 모두 더해야 하는 문제이다.

자바 charAt() 메서드를 통해 문자열의 i번째 값을 구할 수 있는데 데이터형이 문자임을 유의해야 한다.

예를 들어 입력받은 문자열이 12일 때 (String str = "12";) str.charAt(0) + str.charAt(1)의 계산은 1 + 2가 아닌 각 문자를 10진수로 환산한 값을 더하는 49 + 50이 된다.

문자열로 입력받은 수의 각 자릿수를 더한 값을 구하려면 문자마다 '0'(48) 만큼 빼서 계산해야 한다.

str.charAt(0) - '0' + str.charAt(1) - '0' = (49 - 48) + (50 - 48) = 1 + 2

 

구현 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.*;
 
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
 
        int n = sc.nextInt();
        String str = sc.next();
        int res = 0;
        for (int i = 0; i < n; i++) {
            res += str.charAt(i) - '0';
        }
        System.out.println(res);
    }
}
cs

 

결과 


728x90

댓글