소프트웨어 스터디/알고리즘문제풀이

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

로 얄 2021. 1. 5. 14:18
반응형

문제

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

  • 제한사항
    • N의 범위 : 100,000,000 이하의 자연수

풀이

문제 그대로 자연수의 각 자리수를 더하여 결과로 리턴하는 문제입니다. 간단한 문제로 두가지 방법으로 풀어보았습니다. 어렵지 않은 문제기 때문에 설명할 부분도 별로 없는 듯 합니다.

 

1. 각 자릿수를 나눗셈을 이용하여 구분하기

모듈러 연산자를 이용하여 각 자릿수를 구해 더하는 방법입니다.

public int solution(int n) {
    int input = n;
    int answer = 0;
    while(input > 0) {
        answer += (input % 10);
        input /= 10;
    }

    return answer;
}

2. String으로 변환하여 각 자릿수를 구해내는 방법

입력받은 값을 String으로 변환한 후 각 자릿수의 숫자를 더하는 방법입니다.

public int solution(int n) {
    String input = Integer.toString(n);
    char[] chars = input.toCharArray();
    int answer = 0;
    for(char ch: chars) {
        answer += (ch - '0');
    }

    return answer;
}

결과

더보기

방식1

방식2

반응형