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'을 빼주면 숫자로 변환된다.
'코딩테스트 연습' 카테고리의 다른 글
코딩 테스트 - 정수 내림차순으로 배치하기 (0) | 2020.01.15 |
---|---|
코딩테스트 - 자연수 뒤집어 배열로 만들기 (0) | 2020.01.15 |
코딩테스트 - 이상한 문자 만들기 (0) | 2020.01.14 |
코딩테스트 - 비밀지도(카카오 공채 1차) (0) | 2020.01.14 |
코딩 테스트 - 최대값과 최솟값 (0) | 2020.01.14 |