본 페이지는 C++ 독학을 위해 작성한 포스트입니다 풀이과정도 포함되어있지만 문법공부에 대한 비중이 있습니다.
(+ Java언어 내용도 포함되어있을 수 있습니다. )
https://school.programmers.co.kr/learn/courses/30/lessons/120850?language=cpp
1.문제설명
문제 설명
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.
제한사항
1 ≤ my_string의 길이 ≤ 100my_string에는 숫자가 한 개 이상 포함되어 있습니다.my_string은 영어 소문자 또는 0부터 9까지의 숫자로 이루어져 있습니다. - - -
2. 문제해결 접근
- 반복문으로 my_string의 요소를 모두 검사한다.
- 조건문으로 ( 값이 숫자일 때 ) answer에 값을 추가한다
- 아스키 코드 변환하여 검사한다,
- 값이 숫자일때 검사하는 함수 isdigit()
- 요소는 문자열 형태, 반환하는 vector<int> answer;는 정수형
3. C++ 답안
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(string my_string) {
vector<int> answer;
for(int i=0;i<my_string.size();i++){
// my_string[i]가 정수인지 확인한다.
if(isdigit(my_string[i]))
//answer에 요소를 추가한다(int로 변환하여 ( my_string의 i인덱스부터 + 1개 인덱스까지 ))
answer.push_back(stoi(my_string.substr(i,1)));
}
// 오름차순으로 정렬한다
sort(answer.begin(),answer.end());
return answer;
}
4. C++ 문법 설명과 표현법
isdigit()
인수로 들어온 char 타입이 10진수 숫자로 변경이 가능하면 0이 아닌 숫자( true ), 아니면 0
(false)를 반환하는 함수
확인할문자열.isdigit(확인할 문자열[index]);
https://blockdmask.tistory.com/362
stoi()
string to int
다시말해 string을 int형으로 사용할 때 사용하는 메서드로
stoi( 변환할문자열 변수 );
stoi( 변환할문자열 변수, 다음에 올 값, 표현할 진수 );
https://blockdmask.tistory.com/333
substr()
문자열의 일부를 추출할때 사용하는 메서드
추출할 문자열 변수.substr(추출할 시작인덱스, 추출할 마지막 인덱스);
//기본값( pos = 0, len = npos )
인수를 지정하지 않으면, 문자열 전체를 저장된 기본값 pos = 0 , len = npos에 따라 문자열 전체를 추출하게 된다.
https://psychoria.tistory.com/773
'알고리즘 > [프로그래머스]Lv.0' 카테고리의 다른 글
[프로그래머스]Lv .0 배열 회전시키기 (0) | 2022.11.15 |
---|---|
[프로그래머스]Lv 0. 인덱스 바꾸기 (0) | 2022.11.07 |
[프로그래머스]Lv 0. 중복된 문자 제거 (0) | 2022.11.07 |
[프로그래머스]Lv0. 숨어있는 숫자의 덧셈 (1) (0) | 2022.11.03 |
[프로그래머스]Lv0. 문자열안에 문자열 (0) | 2022.11.03 |