개발에 AtoZ까지

[JAVA][D1] 2058. 자릿수 더하기 본문

코딩테스트 준비/SWEA

[JAVA][D1] 2058. 자릿수 더하기

AtoZ 개발자 2021. 1. 3. 16:55
반응형

문제 

하나의 자연수를 입력 받아 각 자릿수의 합을 계산하는 프로그램을 작성하라.


[제약 사항]

자연수 N은 1부터 9999까지의 자연수이다. (1 ≤ N ≤ 9999)


[입력]

입력으로 자연수 N이 주어진다.


[출력]

각 자릿수의 합을 출력한다.

예시

 

풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Solution {
	public static void main(String[] args) {
		/*
		 * 1) N을 문자열로 바꾸고 2) 그 문자를 자릿수마다 split해주고 3) int로 변환해서 계산해주는 방법
		 * 1) N이 몇자리수인지 확인하고 2) 각 자릿수*10^n하여 몫을 구해주기 3) 몫을 구한값은 빼주면서 반복 (적용)
		 */
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		try {
			int N = Integer.parseInt(br.readLine());
			//몇자리수인지 확인
			int length=Integer.toString(N).length();
			//각 자릿수의 합
			int sum=0;
			for(int i=length-1;i>=0;i--) {
				//각 자릿수 구하기
				int quotient= N/(int)Math.pow(10, i);
				sum+=quotient;
				//구한 자릿수는 N에서 제외하기
				N=N-quotient*(int)Math.pow(10, i);
			}
			System.out.println(sum);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
반응형
Comments