자료구조/문제풀이

[백준 JAVA] 11720번 숫자의 합

휴먼코딩 2024. 7. 1. 10:18

 

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));

        int N = Integer.parseInt(br.readLine()); //문자열을 정수로 변환, 숫자의 개수
        int sum = 0; //합계
        String str = br.readLine(); //문자열로 숫자 입력

        for (int i = 0; i < N; i++){
            sum += str.charAt(i) - 48; //문자를 정수로 변환
        }

        System.out.println(sum);
        br.close();
    }
}

 

특이한 점은 문자열을 정수로 변환할때 48을 뺀다는 거다.

 

java에서 문자는 유니코드 값으로 저장된다.

유니코드에서 0부터 9까지의 코드 값은 48부터 57까지 이다.

 

문자열에서 숫자로 변환하려면 해당 문자의 유니코드 값에서 48을 빼면(0의 유니코드값) 정수가 된다.

신기하다...