[프로그래머스] lv1. 없는 숫자 더하기 / Javascript
반응형
[프로그래머스] lv1. 없는 숫자 더하기 / Javascript

1. 문제
임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다. 예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"] 가 됩니다. 문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다.
제한사항
1 ≤ myStr의 길이 ≤ 1,000,000
- myStr은 알파벳 소문자로 이루어진 문자열 입니다.
입출력 예

2. 풀이
function solution(str) {
const result = [];
let temp = [];
for (let char of str) {
if (char === 'a' || char === 'b' || char === 'c') {
if (temp.length > 0) {
result.push(temp.join(''));
temp = [];
}
} else {
temp.push(char)
}
}
if (temp.length > 0) {
result.push(temp.join(''));
}
return result.length === 0 ? ["EMPTY"] : result;
}
temp 배열에 push하고 concat 한 이유(vs temp += char 방식)
+= 로 처리하게되면 루프를 돌 때 마다 중간 과정의 문자값이 메모리에 생성되기 때문에!
3. 시간복잡도
O(N)
→ 따라서 최악의 경우에도 O(1,000,000)
반응형
'프로그래밍 > Algorithm' 카테고리의 다른 글
| [프로그래머스] lv1. 조건에 맞게 수열 변환하기 2 / Javascript (1) | 2025.04.29 |
|---|---|
| [프로그래머스] lv1. 문자열 묶기 / Javascript (0) | 2025.04.28 |
| [프로그래머스] lv1. 특별한 이차원 배열 1 (0) | 2025.04.28 |
| [Softeer] lv1. 나무심기 / Javascript (0) | 2025.04.28 |
| [프로그래머스] lv1. 없는 숫자 더하기 / Javascript (0) | 2025.04.26 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스] lv1. 조건에 맞게 수열 변환하기 2 / Javascript
[프로그래머스] lv1. 조건에 맞게 수열 변환하기 2 / Javascript
2025.04.29 -
[프로그래머스] lv1. 문자열 묶기 / Javascript
[프로그래머스] lv1. 문자열 묶기 / Javascript
2025.04.28 -
[프로그래머스] lv1. 특별한 이차원 배열 1
[프로그래머스] lv1. 특별한 이차원 배열 1
2025.04.28 -
[Softeer] lv1. 나무심기 / Javascript
[Softeer] lv1. 나무심기 / Javascript
2025.04.28