반응형
https://school.programmers.co.kr/learn/courses/30/lessons/181912
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
답
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<string> intStrs, int k, int s, int l) {
vector<int> answer;
int temp;
for(int i=0;i<intStrs.size();i++){
temp=stoi(intStrs[i].substr(s,l));
if(temp>k){
answer.push_back(temp);
}
}
return answer;
}
1. 변수
- 'answer': 조건의 맞는 정수들을 저장하기 위해 사용된다, 최종적으로 반환된다. (초기에는 비어있다.)
- 'temp': for문 안에서 각 문자열의 부분 문자열을 정수로 변환한 값을 임시로 저장하는 변수이다.
2. 메인 for문
- 입력된 문자열 vector 'intStrs'의 각 문자를 순차적으로 처리한다.
- 'i'는 0부터 'intstrs.size()' 까지 증가한다.
2-1. 문자열에서 정수 추출 / 조건 검사 및 결과 추가
- temp = stoi( intStrs[i].substr(s, l) );
- 'substr(s, l)'는 'intStrs[i]'문자열에서 's'인덱스부터 'l'의 부분 문자열을 추출한다.
- 'stoi'함수는 이 부분 문자열을 정수( int )로 변환한다.
- if( temp > k){
- 추출된 정수 'temp'가 매개변수 'k'보다 큰지 확인한다.
- 조건이 참이면, 즉 'temp'가 'k'보다 크면
'temp'는 'answer'에 추가한다.
- 'else'는 현재 문자가 '0'이 아니거나, 이미 '0'이 아닌 문자를 만났을때에 해당한다.
- 'a'를 'false'로 하여 '0'을 찾는 과정이 끝났음을 표시한다.
- 현재 문자를 'answer'에 추가한다.
3. 결과
- 'answer'을 반환한다.
- 'answer'은 조건을 만족하는 정수들을 포함한다.
참고
'substr' 함수
- 문자열의 특정 부분을 추출하는데 사용한다.
str.substr(시작 인덱스, 길이);
intStrs[i].substr(s,l)
- '시작 인덱스'는 추출을 시작하는 위치, '길이'는 추출할 문자열의 길이이다.
- 'intStrs[i]' 에서 's'번째 부터 'l'만큼 을 추출할 수 있다.
'stoi' : 문자열를 정수로
'stof' : 문자열를 float로
'stol' : 문자열을 long으로
'stod' 문자열을 double
끝
반응형
'c++ > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 두 수의 합(c++) (0) | 2024.03.02 |
---|---|
[프로그래머스] 왼쪽 오른쪽(c++) (2) | 2024.02.02 |
[프로그래머스] 커피 심부름(c++) (2) | 2024.02.01 |
[프로그래머스] 0 떼기(c++) (0) | 2024.01.31 |
[프로그래머스] 정사각형으로 만들기(c++) (2) | 2024.01.31 |