반응형
https://school.programmers.co.kr/learn/courses/30/lessons/181909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

답
#include <bits/stdc++.h>
using namespace std;
vector<string> solution(string my_string) {
vector<string> answer;
for(int i=0;i<my_string.size();i++){
answer.push_back(my_string.substr(i,my_string.size()-i));
}
sort(answer.begin(),answer.end());
return answer;
}
1. 변수
- 'answer': 'my_string'의 모든 가능한 접미사를 저장한다.
2. 접미사 생성
- 'for'을 사용하여 'my_string'의 모든 가능한 접미사를 생성한다.
이를 위해 'substr'을 사용하여 'i'부터 마지막 까지의 부분 문자열을 추출한다.
('i'는 1부터 'my_string'의 길이까지 증가한다.)
3. 접미사 정렬
- 접미사가 있는'answer'을 사전 순으로 정렬한다.
'sort'를 사용해서 'answer'의 처음 부터 끝까지 사전 순으로 정렬해준다.
('sort'는 기본적으로 사전순으로 정렬해준다.)
4. 결과
- 'answer'을 반환한다.
참고
'substr' 함수
- 문자열의 특정 부분을 추출하는데 사용한다.
str.substr(시작 인덱스, 길이);
my_string.substr(0,i)
- '시작 인덱스'는 추출을 시작하는 위치, '길이'는 추출할 문자열의 길이이다.
- 'my_string' 문자열에서 0번째(처음)부터 i만큼 을 추출할 수 있다.
'sort' 함수
- 주로 vector의 요소를 정렬하는데 사용한다.
- '<agorithm>' 해더파일에 있다.
sort(시작 반복자, 끝 반복자);
sort(answer.begin(),answer.end());
- '시작 반복자'는 정렬을 시작할 위치를 가리키고,
'끝 반복자'는 정렬을 끝낼 위치를 가리키는 반복자이다. (이 위치의 바로 앞까지 정렬된다.)
- 'answer' vector을 처음 부터 끝까지 오름차순으로 정렬했다.
끝
반응형
'c++ > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 정사각형으로 만들기(c++) (2) | 2024.01.31 |
|---|---|
| [프로그래머스] 코드 처리하기(c++) (2) | 2024.01.31 |
| [프로그래머스] 접미사인지 확인하기(c++) (2) | 2024.01.28 |
| [프로그래머스] 접두사인지 확인하기(c++) (2) | 2024.01.27 |
| [프로그래머스] 간단한 식 계산하기(c++) (4) | 2024.01.23 |