[프로그래머스/181914] 9로 나눈 나머지

☑️ 문제

프로그래머스 181914

☑️ 풀이

  • number.charAt(i)의 반환타입인 Character에서 int으로 변환한 값을 sum에 더해주는 부분에서 막혀서 변환 방법을 검색하여 풀었다.
    • Character 타입은 ASCII 코드로 출력되는 걸 알고있었는데도 고민하지 않고 바로 검색한 것을 반성 또 반성한다…
class Solution {
    public int solution(String number) {
        int sum = 0;
        for (int i = 0; i < number.length(); i++) {
            sum += number.charAt(i) - '0';
        }
                
        return sum % 9;
    }
}

☑️ 문법 정리 - Char → int로 변환

Char 출력

  • char 타입의 1int으로로 형변환 시, 문자 1의 아스키코드인 49가 출력된다.
int cnt = 0;

char c = '1';

cnt = c;
System.out.println(cnt); // 결과 : 49
  • 아스키(ASCII) 코드
    • 문자 0~9는 48~57로 이루어져 있다.

    image

1. ASCII 코드를 사용하여 ‘0’ 빼주기

  • 문자 ‘0’의 ASCII 코드인 48을 빼주면 원하는 숫자를 얻을 수 있다.
int cnt = 0;

char c = '1';

cnt = c - '0';
System.out.println(cnt); // 결과 : 1

2. Character.getNumericValue()

  • 자바의 Character 클래스의 내장 함수인 Character.getNumericValue()를 사용하면 형변환이 된다.
char c = '1';
System.out.println(Character.getNumericValue(c)); // 결과 : 1

© 2021. All rights reserved.

yaejinkong의 블로그