[프로그래머스_JavaScript] 문자열 내림차순으로 배치하기 문제풀이

🔔 해당 문제

💻 문자열 내림차순으로 배치하기 (클릭)


📖 문제 설명

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해
새로운 문자열을 리턴하는 함수, solution을 완성해주세요.

s는 영문 대소문자로만 구성되어 있으며,
대문자는 소문자보다 작은 것으로 간주합니다.


🚫 제한사항

  • str은 길이 1 이상인 문자열입니다.

🤔 입출력 예



📝 삽질하던 풀이


function solution(s) {
    let answer = s.split('').sort((a, b) => b - a).join('');
    return answer;
}


function solution(s) {
    let answer = s.split('').sort().join('');
    return answer;
}

이전에 풀었던 문제들이 쌓여서

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬
👉 sort() 써야겠다.

새로운 문자열을 리턴하는 함수
👉 s.split('')로 먼저 쪼개고 마지막에 .join('')으로 합쳐줘야지

여기까지는 생각해냈는데
's는 영문 대소문자로만 구성되어 있으며,
대문자는 소문자보다 작은 것으로 간주합니다.' 흐음,,

걷기반 챌린지에 있는 문제라고 이 부분을 너무 꼬아서 생각했다.
대문자를 어떻게 뒤에 따로 빼지?!!
이 생각하면서 삽질을 엄청나게 했다

.sort() 공부해놓고는 .sort() 메서드 자체적으로
대문자와 소문자별로 정렬시켜준다는 점을 깨달았을 때의 허무함이란,,,ㅎ,,

나 자신에게 노래 추천합니다,,



📝 제대로 된 풀이1


function solution(s) {
    let answer = s.split('').sort().reverse().join('');
    return answer;
}


function solution(s) {
    return s.split('').sort().reverse().join('');
}

아무튼 드디어 제대로 된 풀이입니다.
s를 .split('')으로 쪼개고
.sort()로 정렬해서
.reverse() 대문자를 뒤로 보내야하니까 거꾸로 해주고
.join('') 다시 문자열로 합쳐서 완성!!!

다른 분들 답변 보니까
애초에 let으로 따로 선언할 필요도 없었다😩😩😩

이렇게 간단하게 끝날 코드를 계속 삽질했다니,,
내 자신,, 반성해라😡


그래도 오늘 제일 이상적 풀이 답안 가까이 갔네 칭찬해~😝

(거의 감정변화 지킬 앤 하이드급😋😉)




🍒 참고하면 좋을 자료 🍒

📘 다른 분의 풀이 (클릭)
📘 JavaScript .sort() Mozila (클릭)

좋은 웹페이지 즐겨찾기