[Java]코딩테스트 연습 - 각 자리의 숫자 합 구하기(Lv1)

Gentlee's Self-Study Log·2023년 4월 22일
0

Java Coding Test

목록 보기
2/8
post-thumbnail

각 자리의 숫자 합 구하기

정답률 / 난이도 : Lv1

문제 설명

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

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

입출력 예

N(123) answer(6)
N(987) answer(24)

입출력 예 설명

9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.

나의 풀이

import java.util.*;

public class Solution {

    public int findNum(int n){
        int range=100000000;
        int plus= 0;
        int answer=0;
        int last=0;
        while(range>=10){
            plus=n/range;
            n = n%range;
            range= range/10;
            answer=answer+plus;
            last=n;
        }
        answer=answer+last;
        return answer;    
    }

    public int solution(int n) {

        int answer = this.findNum(n);
        return answer;
    }
}

다른 풀이

1.

import java.util.*;

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

        while (n != 0) {
            answer += n % 10;
            n /= 10;
        }

        return answer;
    }
}

다른 풀이 1
전체적으로 짧고 간결하게 코드를 작성함.
반복문을 활용하여 쉬운 코드, 가독성이 쉬운 코드로 작성함.

2.

import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        String[] array = String.valueOf(n).split("");
        for(String s : array){
            answer += Integer.parseInt(s);
        }
        return answer;
    }
}

다른 풀이 2
가독성은 좋아보이지만, 효율성이 떨어져보인다.
수학공식이 아닌 직관적인 코드로 작성함

피드백

수학공식을 접목해서 정답을 도출해 냈지만, 자바연산자를 정확히 파악하지 못해 코드가 복잡해졌다. 더 짧고 가독성이 쉬운 코드를 만들도록 노력해야겠다.

profile
https://github.com/SamGentlee

0개의 댓글