Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- TLS
- SSL
- nextJS
- CI
- 자동화
- SSH
- 이미지 포맷 변경
- 검색엔진최적화
- 성능 개선
- gitgub actions
- 무중단
- tcp
- 렌더링 과정
- 리버스 프록시
- 이미지 최적화
- 이미지 압축
- 3-Way HandShake
- 로드 밸런싱
- certbot
- ec2
- pm2
- nginx
- webp
- 배포
- workflow
- DNS
- https
- 브라우저
- aws
- 인증서
Archives
- Today
- Total
개발일기
[JavaScript] 세 개의 구분자 본문
문제
임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다.
예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"] 가 됩니다.
문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다.
제한 사항
- 1 ≤ myStr의 길이 ≤ 1,000,000
- myStr은 알파벳 소문자로 이루어진 문자열 입니다.
풀이
function solution(myStr) {
const answer = [...myStr]
.map((item) => (item === "a" || item === "b" || item === "c" ? " " : item))
.join("")
.split(" ")
.filter((item) => item !== "");
return answer.length === 0 ? ["EMPTY"] : answer;
}
풀이 내용
1. map을 사용해서 a,b,c를 하나의 공통된 요소로 변경 해준다. 이전에 map을 사용하기 위해 myStr을 배열로 변경 해준다. 나는 아래의 코드와 같이 a,b,c를 공백으로 변경해 주었다.
// Expected output : [
' ', ' ', ' ', 'o', 'n',
'l', 'e', 't', 't', 'u',
' ', 'e', 't', 'o', 'm',
' ', 't', 'o'
]
2. split() 메서드를 사용해서 문자열을 나눠줘야 하기 때문에 먼저 join()을 사용해 문자열로 변환 해준다.
// Expected output : " onlettu etom to"
3. split() 메서드를 사용하여 공백이란 구분자로 문자열을 나눈다.
// Expected output : [ '', '', '', 'onlettu', 'etom', 'to' ]
4. 앞의 공백 요소 3개를 삭제하기 위해서 filter를 사용하여 공백이 아닌 문자열만 나오게 해준다.
// Expected output : [ 'onlettu', 'etom', 'to' ]
5. 만약 myStr가 전부 a,b,c로 이루어져 있어서 빈 배열(answer.length === 0)이 결과가 된다면 ["EMPTY"]를 리턴한다.
'Algorithm' 카테고리의 다른 글
[JavaScript] 왼쪽 오른쪽 (0) | 2024.06.24 |
---|---|
[JavaScript] 조건에 맞게 수열 변환하기 2 (0) | 2024.06.22 |
[JavaScript] 리스트 자르기 (1) | 2024.06.19 |
[JavaScript] 2의 영역 (0) | 2024.06.18 |
[JavaScript] 배열의 원소만큼 추가하기 (0) | 2024.04.18 |