예제 설명
문자열 myString이 주어집니다. "x"를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 return 하는 solution 함수를 완성해 주세요.
단, 빈 문자열은 반환할 배열에 넣지 않습니다.
제한사항
- 1 ≤ myString ≤ 100,000
myString은 알파벳 소문자로 이루어진 문자열입니다
입출력 예
myString | result |
"axbxcxdx" | ["a","b","c","d"] |
"dxccxbbbxaaaa" | ["aaaa","bbb","cc","d"] |
입출력 예 설명
입출력 예 #1
myString을 "x"를 기준으로 자른 배열은 ["a","b","c","d"]이며, 이 배열은 이미 사전순으로 정렬된 상태입니다. 따라서 해당 배열을 return 합니다.
입출력 예 #2
myString을 "x"를 기준으로 자른 배열은 ["d","cc","bbb","aaaa"]이며, 이 배열을 사전순으로 정렬하면 ["aaaa","bbb","cc","d"]입니다. 따라서 해당 배열을 return 합니다.
자바스크립트 풀이, JS
해결법 : sptit(), filter(), sort() 사용하고 1줄 코드로 완성합니다.
원래 filter() 메서드 사용 안해도 되는데 마지막 빈 문자열도 생깁니다. 이유는 문자열의 끝에 "x"가 있어서 발생합니다. 그래서 filter () 메서드로 처리해줘야 깔끔하고 좋은 결과 나옵니다.
function solution(myString) {
return myString.split("x").filter(idx => idx != "").sort();
}
C++ 해결
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> solution(string myString)
{
vector<string> answer;
int idx = 0;
string tmp;
myString += "x";
for(int i=0; i<myString.length(); i++)
{
if(myString[i] =='x')
{
tmp = myString.substr(idx, i-idx);
if(!tmp.empty())
answer.push_back(tmp);
idx= i+1;
}
}
sort(answer.begin(), answer.end());
return answer;
}
[ 프로그래머스 ] 문자열 잘라서 정렬하기 JS, C++ 풀이
'Computer Science > Programmers' 카테고리의 다른 글
[C++] vector 벡터 사용법 / 장단점 / 쓰는이유 (28) | 2024.03.11 |
---|---|
[프로그래머스] 문자열 정렬하기 (1) Javascript C++ (0) | 2024.01.29 |
[프로그래머스] 주사위의 개수 Javascript, C++ (0) | 2024.01.25 |
[프로그래머스] 최댓값 만들기 (2) Javascript (1) | 2024.01.18 |
[ 프로그래머스 ] 가까운 1 찾기 C++, JS 풀이 (0) | 2024.01.17 |