자릿수 더하기
프로그래머스의 문제 중 하나이다.
https://school.programmers.co.kr/learn/courses/30/lessons/12931
매개변수 N 이 주어지면 N 의 각 자릿수의 합을 구하는 문제이다.
내가 생각한 방법은 이렇다.
- 받아온 매개변수 int n 을 string 으로 변환
- 변환한 string 을 foreach 를 사용해 char 로 하나씩 가져오면서 answer 에 += 대입
- answer 반환
using System;
public class Solution
{
public int solution(int n)
{
int answer = 0;
string text = n.ToString();
foreach(char c in text)
{
answer += int.Parse(c.ToString());
}
return answer;
}
}
문자열 변환 없이 각 자릿수 분리
다른 사람은 어떻게 풀었는지 봤는데 이 생각은 진짜 못했었는데, 다음에 이런 문제가 있으면 사용해보려고 정리한다.
using System;
public class Solution
{
public int solution(int n)
{
int answer = 0;
while(n > 0)
{
answer += n % 10;
n = n / 10;
}
return answer;
}
}
n = 123 일때
- 번째 : 123 % 10 = 3 ( 일의 자리 숫자 ) → answer = 3 , n = 123 / 10 → 12
- 번째 : 12 % 10 = 2 ( 십의 자리 숫자 ) → answer = 5, n = 12 / 10 → 1
- 번째 : 1 % 10 = 1 ( 백의 자리 숫자 ) → answer = 6 , n = 1 / 10 → 0
즉, % 10 으로 각 자릿수를 분리하고, / 10 으로 일의 자리를 버리는 방식이다.
문자열 변환 없이 순수 수학으로 푸는 방식이라 더 빠르고 효율적이다.
나중에 비슷한 문제가 나오면 해당 방법으로 풀어봐야겠다.
'📖TIL > ✅CodingTest' 카테고리의 다른 글
| 문자 리스트를 문자열로 변환 (0) | 2026.05.29 |
|---|---|
| 숨어있는 숫자의 덧셈 (0) | 2026.05.16 |
| 문자열 패딩 ( Padding ) (0) | 2026.05.14 |
| 등차수열의 합 (0) | 2026.05.12 |
| 반복문 없이 반복된 문자열 만들기 (0) | 2026.05.10 |