► JS Algorithm/Programmers
[Programmers] JavaScript 알고리즘 | Lv.0 문자열 잘라서 정렬하기
다람트리
2024. 1. 16. 20:23
반응형
🔒 문제 설명
문자열 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 합니다.
🔐 solution of mine
String.split()
Array.sort()
for문
Array.push()
const solution = (myString, answer = []) => {
let replaced = myString.split("x").sort();
for (let i = 0; i < replaced.length; i++) {
if (replaced[i] !== "") answer.push(replaced[i]);
}
return console.log(answer);
};
solution("axbxcxdx"); // expected output: ["a","b","c","d"]
solution("dxccxbbbxaaaa"); // expected output: ["aaaa","bbb","cc","d"]
아래의 풀이로 했더니, '코드실행'에서는 성공했는데, '채점'에서는 모두 실패해서 멘붕이였다.
다른사람들 의견을 찾아보니, x 하나인 케이스 말고, x가 다중으로 있는 경우도 생각하라해서 두둥!,,,, 하고 해결완료 ㅎ
◆ 해설집
String.replace()
정규표현식
String.split()
Array.sort()
myString.replace(/^x/, "").replace(/x$/, "").split("x").sort()
처음에 x 한개인 케이스로 풀었다가 실패한 코드
◆ 해설집
정규표현식
기호 | 의미 |
^문자열 | 특정 문자열로 시작 (시작점) /^x/ → x로 시작 |
문자열$ | 특정 문자열로 끝남 (종착점) /com$/ |
🔐 solution of others
String.split()
Array.filter()
Array.sort()
const solution = (myString) => {
console.log(
myString
.split("x")
.filter((v) => v !== "")
.sort()
);
};
solution("axbxcxdx"); // expected output: ["a","b","c","d"]
solution("dxccxbbbxaaaa"); // expected output: ["aaaa","bbb","cc","d"]
🔐 solution of others
String.match() 정규표현식
Array.sort()
const solution = (myString) =>
console.log(myString.match(/[^x]+/g).sort());
solution("axbxcxdxx"); // expected output: ["a","b","c","d"]
solution("dxccxbbbxaaaa"); // expected output: ["aaaa","bbb","cc","d"]
◆ 해설집
정규표현식
기호 | 의미 |
[^문자] | 괄호안의 문자를 제외한 것 [^lgEn] "l" "g" "E" "N" 4개 문자를 제외 ※ ^가 대괄호 안에서 쓰면 제외의 뜻, 대괄호 밖에서 쓰면 시작점 뜻 |
+ | 최소 한개 or 여러개 /apple+/ |
반응형