본문 바로가기
프로그래머스/Lv. 0

[Java/자바] 프로그래머스 Lv. 0 자릿수 더하기

by 감자감자곰 2023. 7. 19.

문제

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를 들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

제한사항

  • N 범위 : 100,000,000 이하의 자연수

입출력 예

N answer
123 6
987 24

입출력 예 설명

입출력 예 #1
문제의 예시와 같습니다.

입출력 #2
9 + 8 + 7 = 24이므로 24 return 하면 됩니다.


Solution.java

import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        String answerS = Integer.toString(n);
        char[] answerC = answerS.toCharArray();
        
        for(int i=0; i<answerC.length; i++){
            answer += answerC[i]-'0';
        }

        return answer;
    }
}

주어진 n의 타입을 int ➝ String ➝ char array로 변환해 문제를 해결하고자 했다. 이 과정은 순조롭게 되었지만, for 문 안에서 char array인 answerC[i]를 int로 형변환하는 부분에서 조금 시간을 소요했다. 흔히 아는 형변환처럼 앞에 '(int)'만을 붙이면 원하는 대로 결과가 나오지 않았고, 구글링을 통해 방법을 알아냈다. 관련 내용은 아래 글을 참고하길 바란다.

 

 

[Java/자바] char to int : 문자를 정수로 변환하는 방법

자바에서 char 타입의 숫자 문자를 int로 형변환할 때 변수 앞에 (int)를 붙이면 원하는 값을 얻지 못한다(결괏값으로 char 타입의 숫자 문자의 ASCII 값이 나오기 때문). 이 게시글에서는 char 타입의

daljyeong.tistory.com

 

댓글