728x90
indexOf의 특성을 활용해서 l과 r의 index를 구한 후, 그에 따라 더 앞선 값에 따라서 왼쪽 혹은 오른쪽으로 잘리게 해 두었고, l과 r이 없는경우는 따로 예외처리를 해주었다.
function solution(str_list) {
const [l,r] = [str_list.indexOf('l') , str_list.indexOf('r')]
if (l===-1 && r===-1) return []
else if (l===-1) return str_list.slice(r+1)
else if (r===-1) return str_list.slice(0,l)
else return l<r ? str_list.slice(0,l) : str_list.slice(r+1)
}
그런데 indexOf라는 함수에 너무 갇혀있던 것 같다. 다른사람들의 풀이들을 보다가. for문으로 단순히 배열을 순회하면서 l혹은 r값이 나올때 처리를 해주는 로직을 보았는데 훨씬 깔끔하면서도 좋았다.
너무 내장함수에 의존하지 않고 반복문을 잘 활용해 봐야겠다..
728x90
'FrontEnd > 프로그래머스' 카테고리의 다른 글
[JS] 두 원 사이의 정수쌍 (1) | 2023.05.16 |
---|---|
[JS] 요격 시스템 (0) | 2023.05.16 |
[JS] 배열만들기2 (0) | 2023.05.04 |
[JS] 조건 문자열 (0) | 2023.05.04 |
[JS] 정수 내림차순으로 정렬하기 (0) | 2023.05.03 |