본문 바로가기

프로그래머스(Kotlin)/Level 1

[프로그래머스 (Kotlin)] 자릿수 더하기

728x90

코드 힌트

  1. 각 자리수의 합 구하기:
    • 주어진 숫자 n의 각 자리수를 추출해서 더한 값을 구하는 문제입니다.
    • n = 1234라면, 1 + 2 + 3 + 4 = 10을 계산하는 방식입니다.
  2. 숫자의 마지막 자리 추출하기:
    • num % 10은 숫자의 마지막 자리를 가져오는 연산입니다.
    • 1234 % 10은 4를 반환합니다.
  3. 숫자 줄이기:
    • num /= 10은 마지막 자리를 제거하는 과정입니다.
    • 1234를 10으로 나누면 123이 되어, 다시 3을 처리할 수 있습니다.
  4. 반복:
    • 이 과정을 num이 0이 될 때까지 반복하여 각 자리수를 모두 더한 값을 계산합니다.
  5. 다른 방법
    • while 문을 사용하여 % 연산자를 이용해 자릿수를 구하는 방식도 있지만 문자열로 변경하여 풀 수도 있습니다.
    • 만약 조금 더 알고 싶다면 여기를 누르세요.

 

 


정답은 더보기 클릭

더보기
class Solution {
    fun solution(n: Int): Int {
        var result = 0  // 각 자리수의 합을 저장할 변수
        var num = n  // 원본 숫자 n을 num에 복사하여 사용. 나눗셈 연산을 통해 자리수를 구할 때 원본이 변경되지 않도록 하기 위함
        
        // num이 0보다 클 때까지 반복
        while (num > 0) {
            result += num % 10  // num의 마지막 자리를 result에 더함 (num % 10은 num의 마지막 자리 숫자를 반환)
            num /= 10  // num을 10으로 나누어 마지막 자리를 제거
        }
        
        return result  // 최종적으로 각 자리수의 합을 반환
    }
}

 

 

var num을 선언해야 하는 이유:

  • 코틀린에서 함수의 매개변수는 기본적으로 val로 처리되어 값을 변경할 수 없습니다.
  • 따라서, 함수 내부에서 값을 변경하며 사용할 수 있도록 var num을 새로 선언하여 n의 값을 복사해 사용하는 것입니다.
728x90