[C++] 숫자로 이루어진 String 원소를 각 int로 바꾸기

minzero·2024년 7월 12일

Cpp

목록 보기
1/7
post-thumbnail

프로그래머스 lv0. 문자열 정수의 합

1. 문제

한자리 정수로 이루어진 문자열의 각 자리 합을 return 하라

2. 예시

입력 "123456789", 출력 45

3. 풀이 과정에서 막혔던 부분

문자열의 원소를 for문을 이용해 조회하여 int로 바꾸려 했으나, stoi가 적용되지 않았다.
항상 놓치고 있는 부분은 문자열의 원소는 아스키코드의 10진수로 접근 가능하다는 것이다.
따라서 각 숫자를 조회한 뒤 '0'를 빼주면 원래 디지털 숫자를 얻을 수 있다.

<아스키 코드표>

예를 들어 문자열 "7"이라면, 아스키코드 상 십진수 55이고, '0'은 48이기 때문에 55-48=7로 원하는 int값을 얻을 수 있다.

잊지말자! 문자 0을 빼서 원하는 디지털 숫자 얻기 !

4. 작성 코드

int solution(string num_str) {
    int answer = 0;
    for (int i=0; i<num_str.size(); i++){
        answer+=(num_str[i]-'0');
    }
    return answer;
}

0개의 댓글