Lv 0. 자릿수 더하기

https://school.programmers.co.kr/learn/courses/30/lessons/120906

 

 

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    while(n>0){
        answer+=n%10;
        n/=10;
    }
    return answer;
}

처음에 풀이를 제출할때, 

n&10; 으로 작성해서 제출했다가 왜 틀렸지 싶어서 잠깐 헷갈렸다. 

몇번 저런식으로 나머지 계산을 할때 %을 써야하는데 &을 사용하는 경우가 있었다. 

그러지 않도록 주의하도록 하자. 

 

이번 문제의 경우는 각 1의 자리수로 해결하는 방식을 택했는데, 각 숫자를 string 으로 바꾸고, 배열의 원소별로 char에 접근한뒤, 해당 값들을 int로 변경하는 형태로도 해결할 수 있고, 해당 풀이를 다른 사람의 풀이를 통해 첨부해보면, 

 

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    string s = to_string(n);
    for(char c : s)
        answer += (c - '0');
    return answer;
}

이와 같다. 이러한 풀이도 물론 사용할 수 있으니까 상황에 따라 잘 취사선택 해보도록 하자. 

 

  Comments,     Trackbacks