한 걸음씩
[프로그래머스][JS] 왼쪽 오른쪽 본문
https://school.programmers.co.kr/learn/courses/30/lessons/181890
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 과정
function solution(str_list) {
const l = str_list.indexOf('l')
const r = str_list.indexOf('r')
if (!str_list.includes('l') && !str_list.includes('r')){
return []
}else if (!str_list.includes('l')){
return str_list.slice(r + 1)
}else if (!str_list.includes('r')){
return str_list.slice(0, l)
}else if (l < r){ // l이 먼저 나오는 경우
return str_list.slice(0, l)
}else if (l > r){ // r이 먼저 나오는 경우
return str_list.slice(r + 1)
}
}
문제 마지막에서 'l'이나 'r'이 없다면 빈 리스트를 리턴하라고 해서 or조건으로 해줬는데 통과가 안 돼서 and 조건으로 바꿔줬더니 통과를 했다. 문제가 좀 모호해서 풀기가 힘들었다.
위의 조건들 중 하나라도 빠지면 통과가 안되기 때문에 그 부분을 주의해서 풀어야한다.
리뷰
문제가 좀 더 명확했다면 푸는데 수월했을 것 같다. 그렇지만 어려운 문제는 아닌 것 같다.
다른 사람 풀이를 보니까 for문을 사용해서 푸는게 좀 더 간단한 것 같다.
function solution(arr) {
for(let i = 0; i < arr.length; i++) {
if (arr[i] === 'l') return arr.slice(0, i);
if (arr[i] === 'r') return arr.slice(i + 1);
}
return [];
}
l이 먼저 나오면 처음부터 l전까지 자르고
r이 먼저 나오면 r+1부터 끝까지 자르고
'Programmers' 카테고리의 다른 글
[프로그래머스][JS] 이진수 더하기 (0) | 2023.06.23 |
---|---|
[프로그래머스][JS] 로그인 성공? (0) | 2023.06.22 |
[프로그래머스][JS] 외계어 사전 (0) | 2023.06.20 |
[프로그래머스][JS] 문자 개수 세기 (0) | 2023.06.20 |
[프로그래머스][JS] 커피 심부름 (0) | 2023.06.20 |