프로그래머스 레벨 1 테스트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
int solution(int n)
{
    int answer = n % 10;
        
    for(int i = 10 ; ; i *= 10 )
    {
        if(i > n)
            break;
        
        int Numb = n / i;
        answer += Numb % 10;
    }
    
    return answer;
}
 

직접 푼것.

 

while (n > 0)

{

    answer += n % 10;

    n /= 10;

}

 

while을 활용한 방법도 있다.

 

모범답안

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
 
using namespace std;
int solution(int n)
{
    int answer = 0;
 
    string s = to_string(n);
 
    for(int i = 0; i < s.size(); i++)
        answer += (s[i] - '0');
 
    return answer;
}
 

스트링을 이용해서 푸는 것은 생각했으나 ascii 코드를 활용해 푸는 것은 생각못해서 가져온 모범답안.

ascii 코드로 숫자는 '0'(48) 이후의 숫자이기 문자열에서 '0'을 빼주면 숫자로 변환된다.

 

+ Recent posts