[JS] l로 만들기 programmers

0

코딩테스트

목록 보기
58/80
post-thumbnail

🎀 문제

알파벳 소문자로 이루어진 문자열 myString이 주어집니다. 알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 return 하는 solution 함수를 완성해 주세요.

function solution(myString) {
    var answer = '';
    return answer;
}

🎀 찾아 본 답변

function solution(myString) {
    return [...myString].map((v) => v < 'l' ? 'l' : v).join('');
}
  1. spread를 사용하여 myString을 배열화 시킨다.
  2. map을 돌리며 각 v가 'I'보다 작다면(앞서있다면) 'I'를 반환하고, 그렇지 않다면 v를 그대로 반환한다.
  3. join("")으로 배열을 문자열로 합쳐준 뒤 반환한다.

JS에서 문자열을 서로 비교할 땐, 유니코드로 변환하여 비교한다고 한다.
그래서 'I'의 유니코드보다 작은지를 판단하여 알맞게 반환해 주는 것이다.

🎀 마치며

갈수록 어려워진다...
그리고 갈수록 머리가 굳는 느낌이다...
조금만 생각해 보면 풀 수 있었을 것 같은데 어쩐지 굴러가지 않는다 ^_ㅜ

profile
일단 해. 그리고 잘 되면 잘 된 거, 잘 못되면 그냥 해본 거!

0개의 댓글