2022년 2월 08일 화요일 - 오늘 첫 야근 해봄...


오늘 올려볼 문제는 258번 Add Digits 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

오늘은 1분컷!


입력


사진에서도 볼 수 있듯이 int 1개가 주어진다.



풀이 및 코드


주어진 하나의 int 숫자를 각 자리수를 모두 더한 값이 1자리 수가 될 때 까지 반복하여 나온 결과를 리턴하는 문제다.


오늘은 처음부터 정답을 생각해냈다.

일단 결과를 저장하는 변수에 입력받은 수를 저장한다.

입력받은 수가 0이 될 때까지 10의 나머지를 결과값에 더하고 10으로 더한다.

결과값이 10 미만이 될 때까지 위 과정을 반복한다.

이런식으로 시간복잡도 O(logN)에 풀 수 있는 방법을 생각해냈다.


이제 코드를 봐보자!

오늘은 숏코딩 한 코드도 가져왔으니 한 번 구경하시라! ㅋㅋㅋ


풀이코드

class Solution {
    public int addDigits(int num) {
        int result = num;

        while(result >= 10)
        {
            num = result;
            result = 0;

            while(num != 0)
            {
                result += num % 10;
                num /= 10;
            }
        }

        return result;
    }
}

숏코드

class Solution {
    public int addDigits(int num) {
        while(num >= 10){int i = num; num = 0;for(; i != 0; i /= 10) num += i % 10;} return num;
    }
}



제출 화면

leetcode 문제 맞았습니다


오늘은 어렵지 않게 풀었던 문제였다.

요즘 문제가 계속 쉬워서 뭔가 아쉽다..


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts