[Programmers] #181914 - 9로 나눈 나머지 [Java][C++][Python]
각 자리 숫자의 합을 9로 나눈 나머지로 정수를 9로 나눈 나머지를 구하는 워밍업 문제.
[Programmers] #181914 - 9로 나눈 나머지 [Java][C++][Python]
1. 아이디어
음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자 합을 9로 나눈 나머지와 같다는 성질을 이용하는 문제다. number의 길이가 최대 100,000이라 정수형으로 직접 변환하면 오버플로우가 발생하므로, 각 문자를 순회하며 숫자로 변환해 합산한 뒤 9로 나눈 나머지를 반환하면 된다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(N)$ | $O(1)$ |
($N$ = number의 길이)
3. 코드
풀이 [Java][C++][Python]
1
2
3
4
5
6
7
8
9
10
class Solution {
public int solution(String number) {
int sum = 0;
for (char c : number.toCharArray()) {
sum += c - '0';
}
return sum % 9;
}
}
1
2
3
4
5
6
7
8
#include <bits/stdc++.h>
using namespace std;
int solution(string number) {
int sum = 0;
for (char c : number) sum += c - '0';
return sum % 9;
}
1
2
def solution(number):
return sum(int(c) for c in number) % 9
This post is licensed under CC BY 4.0 by the author.