개발 일지
258. Add Digits (자릿수 더하기) C# 본문
Given an integer num, repeatedly add all its digits until the result has only one digit, and return it.
정수 num이 주어집니다. num의 모든 자릿수를 한자리수가 될 때까지 반복하면서 더합니다. 그리고 그 값을 반환합니다.
예시 1:
입력: num = 38
출력: 2
설명: 과정은
38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2
로 진행되며 2는 한자릿수이므로 반환합니다.
예시 2:
입력: num = 0
출력: 0
조건:
- 0 <= num <= 23^1 - 1
Follow up: Could you do it without any loop/recursion in O(1) runtime?
더 나아가기: 반복/재귀를 사용하지 않고 O(1)로 해결할 수 있나요?
O(1): 시간 복잡도가 1
정답:
public class Solution {
public int AddDigits(int num) {
if (num == 0)
return 0;
else if (num % 9 == 0)
return 9;
else
return num % 9;
}
}
해설: 자릿수근은 9로 나눈 나머지 값이기 때문에 0과 9는 따로 return 해주고 나머지는 모두 9로 나눈 나머지 값을 return 해주었다.
'코딩 테스트 > LeetCode' 카테고리의 다른 글
219. Contains Duplicate II (중복 포함 II) C# (0) | 2022.10.31 |
---|---|
1239. Maximum Length of a Concatenated String with Unique Characters (고유한 문자로 연결된 문자열의 최대 길이) C# (0) | 2022.10.25 |
38. Count and Say (세고 말하기) C# (0) | 2022.10.19 |
1832. Check if the Sentence Is Pangram (문장이 Pangram인지 확인하기) C# (0) | 2022.10.17 |
231. Power of Two (2의 거듭제곱) C# (0) | 2022.10.06 |