자릿수 더하기 Lv. 0

박영준·2022년 11월 22일
0

코딩테스트

목록 보기
22/300

문제 설명

정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요

class Solution {
    public int solution(int n) {
        int answer = 0;
        return answer;
    }
}

제한 사항

  • 0 ≤ n ≤ 1,000,000

입출력 예

입출력 예 설명

  • 입출력 예 #1

    • 1 + 2 + 3 + 4 = 10을 return합니다.
  • 입출력 예 #2

    • 9 + 3 + 0 + 2 + 1 + 1 = 16을 return합니다.

해결법

방법 1

import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;

		// 자연수 n을 문자열 s로 변환
        String s = Integer.toString(n);
        
        for (int i = 0; i < s.length(); i++) {
        	// 문자열 s를 int 타입 정수로 변환하고, 모두 더한다
            answer += Integer.parseInt(s.substring(i, i + 1));
        }
    

        return answer;
    }
}

방법 2

class Solution {
    public int solution(int n) {
        int answer = 0;

        while (n > 0) {
            answer += n % 10;
            n /= 10;
        }

        return answer;
    }
}
  • 정수 / 정수 = 정수 를 이용해서, 한 자리수만 남겨서 더하는 방식

    • 10의 나머지를 구하는 연산자로 뒷자리부터 따로 떼어낸다. 일의 자리부터 더한다

    • n 을 10으로 나눠줌으로써, 좀 전에 사용된 일의 자릿수를 n에서 날린다.

      주의!
      answer += n % 10; 에서 계산에 사용된 n이
      n /= 10; 에 있는 n으로 이어지지 않음.
      n 에 따로 조치를 취하지 않는 한 n의 값은 처음과 그대로다.


자릿수 더하기

profile
개발자로 거듭나기!

0개의 댓글