백준 1000

YJ·2021년 7월 29일
0
post-thumbnail

- 문제




- 풀이

package algorithm;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String num = sc.nextLine();
        int sum = 0;
        for (int i = 0; i < num.length(); i++) {
            if(num.charAt(i)-48 > 0 && num.charAt(i)-48 < 10) {
                sum += (num.charAt(i)-48);
            } else {
                continue;
            }
        }
        System.out.println(sum);
    }
}

해당 풀이 과정에서 char를 int로 변환시켜야 되는데 그 부분을 생각하지 못해 풀이가 힘들었다.



🎬 Java에서 char를 int로 변환시키는 방법

Java에서 char를 int로 변환시키기 위해서는 유니코드를 이용해야한다.
즉, '1'-48 = 1, '2'-48 = 2 이런식으로 정수로 변환할 수 있다.
이유는 '1'이 정수 값 49를 가지고 있기 때문이고, 2는 50 ... 

추가로 '1' - '0'을 해줘도 된다. 이유는 문자 1은 정수 값 48, 문자 0은
정수 값 1을 가지기 떄문이다. 그리고 int 보다 크기가 작은 자료형 short,
byte, char 등 끼리 연산 시 결과가 int로 출력된다. 



👆 참고로 백준에서 Hello World! 출력을 6번 이상 틀린 것 같은데,

1. 사용 언어 체크 
2. Java의 경우 최상단 package 경로 삭제
3. Class명 Main으로 설정 (백준에서 Main.java로 읽는다고 함)
이 세가지 과정이 필요하다.
profile
hi

0개의 댓글

관련 채용 정보