문제 설명
알파벳 소문자로 이루어진 문자열 myString이 주어집니다. 알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 return 하는 solution 함수를 완성해 주세요.
문자열은 반복작업이 안 되니까 배열로 바꿔야겠다.
➡ 문자열간 크기 비교를 어떻게 하지?
➡ MDN에서 String 객체 문서를 읽다가 localeCompare() 메소드를 발견.
그렇게 해서 나온 나의 풀이 :
function solution(myString) {
return [...myString].map((str) => str.localeCompare('l') >= 0 ? str : "l").join("");
}
다른 사람들의 풀이를 보니 해결 방향 자체는 나와 비슷한 사람이 많았으나 방식은 생각보다 제각각이었다.
아래는 배우고 싶은 다른 사람의 풀이 :
const solution = myString => myString.replace(/[a-k]/g,'l')
function solution(myString) {
return [...myString].map((v) => v < 'l' ? 'l' : v).join('');
}
문자열끼리도 크기 비교로 참/거짓 결과가 나온다는 걸 완전히 잊어버리고 있었다!!!
그리고 역시 제일 깔끔한 코드는 정규표현식을 이용하는 코드인데
정규표현식이 어려워서 아직 문법을 익히지 못했다...
정규식을 쓸 수 있냐 없냐로 활용할 수 있는 범위가 달라지니까 역시 시간을 들여서 제대로 공부해야겠다.
'코딩테스트 > 프로그래머스 기초 트레이닝' 카테고리의 다른 글
[Javascript] Set 객체 (0) | 2023.06.10 |
---|---|
[Javascript] 부분 문자열 이어 붙여 문자열 만들기 - 구조분해 (0) | 2023.06.06 |
[Javascript] 0 떼기 (0) | 2023.06.06 |
[Javascript] for 반복문에서 i를 2씩 증가하는 법 (0) | 2023.06.06 |
[Javascript] 배열의 원소만큼 추가하기 - new Array(), fill() (0) | 2023.05.27 |
[Javascript] 마지막 두 원소 - at() (, reverse()) (0) | 2023.05.27 |
[Javascript] 테스트에서 사용한 배열(Array) 메소드 정리 (1) - join() reduce() sort() splice() (0) | 2023.05.27 |
[Javascript] 글자 이어 붙여 문자열 만들기 (0) | 2023.05.22 |