코딩테스트 준비/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();
}
}
}
반응형