저장을 습관화
프로그래머스 LV.0 세 개의 구분자 본문
프로그래머스 LV.0 세 개의 구분자
https://school.programmers.co.kr/learn/courses/30/lessons/181862
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 명
세 개의 구분자
2. 문제 설명
임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다.
예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"] 가 됩니다.
문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다.
3. 제한 사항
- 1 ≤ myStr의 길이 ≤ 1,000,000
- myStr은 알파벳 소문자로 이루어진 문자열 입니다.
4. 예시
myStr | result |
"baconlettucetomato" | ["onlettu", "etom", "to"] |
"abcd" | ["d"] |
"cabab" | ["EMPTY"] |
5. 기본 제공 코드
function solution(myStr) {
var answer = [];
return answer;
}
6. 제출한 내 답
const solution = (myStr) => {
let answer = myStr
.replace(/[a-c]/g, " ")
.split(" ")
.filter((v) => v);
return answer.join("") ? answer : ["EMPTY"];
};
6-2. VSC에 작성한 내용
const solution = (myStr) => {
let answer = myStr
.replace(/[a-c]/g, " ")
.split(" ")
.filter((v) => v);
return answer.join("") ? answer : ["EMPTY"];
};
// 테스트
console.log(solution("baconlettucetomato"));
console.log(solution("abcd"));
console.log(solution("cabab"));
7. 특이사항
제대로 작동은 하는데 실행 시간이 너무 오래걸려서 찝찝하다
테스트 1 〉 통과 (75.24ms, 74.1MB)
테스트 2 〉 통과 (61.13ms, 68.7MB)
테스트 3 〉 통과 (9.13ms, 43MB)
테스트 4 〉 통과 (6.40ms, 41.7MB)
테스트 5 〉 통과 (22.90ms, 50.4MB)
테스트 6 〉 통과 (22.84ms, 55.5MB)
테스트 7 〉 통과 (25.06ms, 51.1MB)
테스트 8 〉 통과 (47.30ms, 66.2MB)
테스트 9 〉 통과 (31.10ms, 56.8MB)
테스트 10 〉 통과 (46.63ms, 72MB)
테스트 11 〉 통과 (32.00ms, 60.4MB)
8. 다른 사람이 작성한 답
8-1. 좋아요 가장 많이 받은 풀이법
//const solution=s=>s.match(/[^a-c]+/g)||['EMPTY']
8-2. 내 코드 개선
function solution(myStr) {
const list = myStr.split(/[a|b|c]/).filter(str => str);
return list.length ? list : ["EMPTY"];
}
function solution(myStr) {
const arr = myStr.split(/[abc]/).filter(e => e);
return arr.length == 0 ? ["EMPTY"] : arr;
}
replace 과정을 생략하고 바로 spilit 대상을 정규표현식으로 지정..
'코딩 테스트 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 LV.0 한 번만 등장한 문자 (0) | 2023.09.26 |
---|---|
프로그래머스 LV.0 간단한 논리 연산 (0) | 2023.09.26 |
프로그래머스 LV.0 문자열이 몇 번 등장하는지 세기 (0) | 2023.09.26 |
프로그래머스 LV.1 제일 작은 수 제거하기 (0) | 2023.09.26 |
프로그래머스 LV.0 진료순서 정하기 (0) | 2023.09.25 |