2022년 2월 08일 화요일 - 오늘 첫 야근 해봄...
오늘 올려볼 문제는 258번 Add Digits 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 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 문제 풀이' 카테고리의 다른 글
[LeetCode] 560번 문제를 풀어보았다. (ft. java) (0) | 2022.02.10 |
---|---|
[LeetCode] 532번 문제를 풀어보았다. (ft. java) (0) | 2022.02.09 |
[LeetCode] 389번 문제를 풀어보았다. (ft. java) (0) | 2022.02.07 |
[LeetCode] 80번 문제를 풀어보았다. (ft. java) (3) | 2022.02.06 |
[LeetCode] 23번 문제를 풀어보았다. (ft. java) (0) | 2022.02.05 |