[Java] char형 -> int형 변환 (백준 11720번)

Jina·2023년 7월 22일
0

Java

목록 보기
6/13

(int)char형 - 48

백준 11720번

백준 11720번을 풀다가, 숫자를 char 형으로 받은 후 (int)형으로 형변환을 했더니 이상한 숫자 값이 나왔다.

char형은 숫자로 변환할 시 아스키 코드로 저장하기 때문이었다! 그래서 변환된 숫자 값에 48이나 '0'을 빼주면 원하는 숫자값을 얻을 수 있었다.

  1. char형을 숫자형으로 변환하기 위해 (int)를 붙여준다.
  2. char형은 숫자를 저장할 때 아스키코드 값으로 저장되므로, 48 또는 '0'을 빼 주어 숫자로 활용한다.
import java.io.*;

public class Main {

    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException {

        // 입력받기
        int N = Integer.parseInt(br.readLine());    // 입력 숫자의 개수
        char[] ch = br.readLine().toCharArray();

        // 숫자 N개의 합 계산
        int sum = 0;
        for(int i=0; i<N; i++){
            sum += (int)ch[i] - 48 ; // char형 숫재를 int형 숫자로 변환
        }


        // 합 출력
        System.out.println( sum );
    }
}

Character.getNumericValue(char형)

하지만 번거롭게 48을 빼주지 않아도, Character 클래스에 char형 숫자를 int형으로 '그대로' 변환해주는 메소드가 있다!
Character.getNumericValue() 를 활용해보자.

import java.io.*;

public class Main {

    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException {

        // 입력받기
        int N = Integer.parseInt(br.readLine());    // 입력 숫자의 개수
        char[] ch = br.readLine().toCharArray();

        // 숫자 N개의 합 계산
        int sum = 0;
        for(int i=0; i<N; i++){
            sum += Character.getNumericValue(ch[i]);    // char형 숫재를 int형 숫자로 변환
        }

        
        // 합 출력
        System.out.println( sum );
    }
}

0개의 댓글

관련 채용 정보