[프로그래머스] Java 코딩테스트 - 자릿수 더하기

yihyun·2025년 4월 3일

코딩테스트

목록 보기
37/105
post-thumbnail

모음 제거

✅ 문제 설명

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

✅ 제한사항

0 ≤ n ≤ 1,000,000

🔽 소스코드 1 (문자열 -> 정수로 변환)

💻 풀이

  • String.valueOf() 를 사용해 n을 문자열 배열로 담아준다.

  • 이때 split("") 를 이용해 한 자리 씩 분리해서 배열에 담아준다.

  • 이후 반복문을 이용해 배열의 길이만큼 반복해 sum에 누적합해준다.

  • 정수를 더해야 하기 때문에 Integer.parsInt() 를 사용해 정수로 변경해 더해준다.

시간 0.09ms ~ 0.13ms

public int solution(int n){
	String[] arr = String.valueOf(n).split("");
    
    int sum = 0;
    
    for(int i = 0; i < arr.length; i++){
    	sum += Integer.parsInt(arr[i]);
    }
    
    return sum;
}

🔽 소스코드 2 (나머지 연산 이용)

💻 풀이

  • n 이 0보다 큰 경우에만 반복문이 실행되도록 설정해 준다.

  • 이후 n을 10으로 나눈 나머지를 sum에 누적합 해준다.
    ※ n을 10으로 나눈 나머지를 구해보면 가장 숫자의 가장 마지막 숫자만 남게 된다.

  • 이후 이미 계산한 마지막 숫자를 버리기 위해서 n = n / 10 을 해준다.
    ※ ex) 1234 -> 123 으로 남게 된다.
    시간 0.01ms ~ 0.02ms

전체코드

public int solution1(int n){
	int sum = 0;
    
    while(n > 0){
    	sum += n % 10;
        n /= 10;
    }
    
    return sum;
}
profile
개발자가 되어보자

0개의 댓글