본 페이지는 C++ 독학을 위해 작성한 포스트입니다 풀이과정도 포함되어있지만 문법공부에 대한 비중이 있습니다.
(+ Java언어 내용도 포함되어있습니다. )
https://school.programmers.co.kr/learn/courses/30/lessons/120851
1.문제설명
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ my_string의 길이 ≤ 1,000my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.
2. 문제해결 접근
- 문자열값을 정수형변수 int에 담으면 아스키코드로 변환되어진다.
- 반복문을 통해, 각 문자열을 조건문을 통해 정수형만 가려 합산한다.
- 정수형의 합은, 정수형 그대로 합산되는것이 아닌, 아스키코드 변환 숫자가 들어가므로 -'0' 처리하여 연산해준다.
3.C++ 답안
#include <string>
#include <vector>
using namespace std;
int solution(string my_string) {
int answer = 0;
for (int i = 0; i < my_string.size(); i++)
{
if( my_string[i] >= '0' && my_string[i] <= '9' )
{
answer += my_string[i]-'0';
}
}
return answer;
}
4. C++ 문법 설명과 표현법
answer += my_string[i]-'0';
반복문안에서 합산중,
각 값의 아스키코드 변환값을 더해준다.
이때, 문자'1'은 아스키코드 변환값은 49이므로,
일반적인 정수형 10진수 연산이 되는것이 아니라 아스키코드의 연산합이 출력된다.
그러므로 문자'0'의 아스키코드 변환값을 48을 감해주므로해서
각 문자를 정수와 동일한 값으로 조정한다.
'알고리즘 > [프로그래머스]Lv.0' 카테고리의 다른 글
[프로그래머스]Lv 0. 문자열 정렬하기 (1) (0) | 2022.11.07 |
---|---|
[프로그래머스]Lv 0. 중복된 문자 제거 (0) | 2022.11.07 |
[프로그래머스]Lv0. 문자열안에 문자열 (0) | 2022.11.03 |
[프로그래머스]Lv0. 두 수의 나눗셈 (0) | 2022.11.03 |
[프로그래머스]Lv0. 문자 반복 출력하기 (0) | 2022.10.31 |