[Golang] 프로그래머스 Lv.1 자릿수 더하기
자릿수 더하기 문제에 대해 풀이하고 테스트 코드를 작성 해보겠습니다.
문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한사항
- N의 범위 : 100,000,000 이하의 자연수
입출력 예
N | answer |
---|---|
123 | 6 |
987 | 24 |
입출력 예 설명
입출력 예 #1
- 문제의 예시와 같습니다.
입출력 예 #2
- 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
풀이
1
2
3
4
5
6
7
8
9
10
func solution(n int) int {
answer := 0
for n > 0 {
answer += n % 10
n /= 10
}
return answer
}
n
의 값을 10 으로 나눈 나머지answer
에 더함n
을 10으로 나눈 몫을n
에 저장n > 0
조건을 충족하는 동안 순회answer
반환
테스트코드
유닛 테스트
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const TESTCOUNT = 2
var (
N = [TESTCOUNT]int{
123,
987,
}
answer = [TESTCOUNT]int{
6,
24,
}
)
func TestSolution(t *testing.T) {
for i := 0; i < TESTCOUNT; i++ {
fmt.Println("N : ", N[i])
fmt.Println("answer : ", answer[i])
r := solution(N[i])
fmt.Println("solution result : ", r)
if r != answer[i] {
t.Errorf("testcase [%d] failure", i)
}
}
}
1
2
3
4
5
6
7
8
9
10
11
$ go test -v
=== RUN TestSolution
N : 123
answer : 6
solution result : 6
N : 987
answer : 24
solution result : 24
--- PASS: TestSolution (0.00s)
PASS
ok golang-coding-test/Lv1/sum_digits 0.163s
Github 바로가기
This post is licensed under CC BY 4.0 by the author.