본문 바로가기
👩‍💻 Programming/Coding Test 문제 풀이

[Programmers] level 1: 문자열 내림차순으로 배치하기 by JavaScript

by codingBear 2022. 7. 9.
728x90
반응형

이번 문제를 풀어 보고 싶다면? 아래 링크를 클릭하세요!

 문제 풀러 가기!


 문제를 읽어보면 주어진 문자열을 내림차순으로 정렬하는데 대문자는 소문자보다 적은 것으로 취급한다고 되어 있다. 여기에 겁먹지 말고 그냥 sort() 메서드를 활용하여 내림차순으로 정렬하면 된다. sort() 메서드에 대한 자세한 활용법은 다른 문제 풀이(문자열 내 마음대로 정렬하기)가 크게 도움 될 것이다.

 유의할 점은 오름차순이 아니고 내림차순이기 때문에 sort() 메서드의 compareFunction() 반환값을 반대로 생각해야 한다는 점이다. 즉 오름차순에서 -1은 a를 b보다 작은 색인으로 여긴다는 뜻인데 내림차순으로 정렬하려면 a가 b보다 클 경우에 -1을 반환해줘서 b를 a보다 작은 색인으로 인식하게 해야 한다.

 두 번째 Solution은 내가 작성한 코드를 삼항 연산자를 활용하여 간결하게 나타낸 것이고 세 번째 Solution은 reverse() 메서드를 활용하여 보다 간단히 작성한 것이다.

 

Solutions

function solution(s) {
  /* My Solution */
  s = [...s];

  s.sort((a, b) => {
    if (a < b) return 1;
    else if (a > b) return -1;
    return 0;
  });
  return s.join('');
  
  /* 삼항 연산자 Ver. */
  return s.split('').sort((a, b) => a > b ? -1 : 1).join('')

  /* reverse() Ver.*/
  return s.split('').sort().reverse().join('');
}
728x90
반응형

댓글