[프로그래머스/JAVA] 자릿수 더하기

2024. 6. 11. 15:14·TIL 🔖/코딩테스트

문제설명

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


제한사항

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

나의 풀이

import java.util.*;

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

	// n이 0이 될 때까지 반복	
        while (n > 0) {
            answer += n % 10; //n의 마지막 자릿수를 answer에 더함
            n /= 10;	 // 마지막 자릿수를 제거 
        }

        return answer;
    }

 

  • while 루프는 n이 0보다 큰 동안 반복. (n의 모든 자릿수를 처리할 때까지 반복)
  • n % 10은 n의 마지막 자릿수를 구함. ex) n이 123이면 n % 10은 3을 반환.
  • answer += n % 10은 answer에 마지막 자릿수를 더함
  • n /= 10은 n의 마지막 자릿수를 제거. ex) n이 123이면 n /= 10 후에는 12.
  • 이 과정을 반복하여 모든 자릿수를 answer에 더함
public static void main(String[] args) {
        Solution sol = new Solution();
        System.out.println(sol.solution(123)); // 6
        System.out.println(sol.solution(987)); // 24
    }
}

 

참고할 만한 다른 사람의 풀이

import java.util.*;

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

        while(true){
            answer+=n%10;
            if(n<10)
                break;

            n=n/10;
        }

        // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
        System.out.println("Hello Java");

        return answer;
    }
}
  • 내가 작성한 코드는 while(n>0) 조건을 사용해 n이 0보다 큰 동안 루프를 계속하지만 이 코드는 while(true) 무한 루프를 사용한 후, n이 10보다 작을때 break 로 루프를 종료함. 

'break' 주의사항

  • 가독성 : 코드가 더 명확하고 가독성이 좋아지지만 과도한 사용은 코드를 복잡하게 만들 수 있음 
  • 반복문 탈출 : 가장 가까운 반복문 또는 switch 문만 탈출함. 중첩된 반복문에서는 내부의 반복문만 종료되므로 주의해야함 
  • 루프 조건 : break 를 사용하는 무한 루프에서는 탈출 조건을 명확히 정의 하는 것이 중요함. 

 

 

'TIL 🔖/코딩테스트' 카테고리의 다른 글
  • [프로그래머스/JAVA] 나머지가 1이 되는 수 찾기
  • [프로그래머스/JAVA] 약수의 합
  • [프로그래머스/JAVA] 평균 구하기
  • [프로그래머스/JAVA] 짝수와 홀수
fargoe
fargoe
    fargoe
    fargoewave
    fargoe
    GitHub
    전체
    오늘
    어제
    • 분류 전체보기 (166)
      • TIL 🔖 (140)
        • TIL (69)
        • 코딩테스트 (71)
      • DEV (14)
        • Java & Spring (7)
        • MySQL (3)
        • Git&Github (4)
      • 개발지식 (10)
        • 알고리즘 (2)
        • 자료구조 (8)
        • CS (0)
      • 3D (1)
        • Unity (1)
      • ETC (0)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
fargoe
[프로그래머스/JAVA] 자릿수 더하기
상단으로

티스토리툴바