문자열 내림차순으로 배치하기

Creating the dots·2021년 10월 9일
0

Algorithm

목록 보기
23/65

프로그래머스

https://programmers.co.kr/learn/courses/30/lessons/12917

나의 풀이

입력된 s(문자열)를 반복문을 통해 배열에 한 글자씩 넣어준 후 sort()시킨다. 그 결과 문자열이 오름차순으로 정렬되므로 reverse()시켜 내림차순으로 만들고, join('')시켜 하나의 문자열로 합쳐 리턴시킨다.

function solution(s){
  const arr = [];
  for(let i=0;i<s.length;i++){
    arr.push(s[i]);
  }
  return arr.sort().reverse().join("");
}

다른 사람 풀이

반복문을 통해 배열에 글자를 넣지 않고 split("")을 사용해서 더 간단히 표현했다.

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

sort([compareFunction])

인자로 들어가는 비교 함수가 생략되면 배열의 elements들은 문자열로 취급되고, 유니코드 값 순서대로 정렬된다.

s.split("").sort() 결과 유니코드 값 순서대로 정렬되는데, 소문자가 대문자보다 큰 값을 갖고, 오름차순으로 정렬된다.


문자열과 배열과 관련된 메소드를 알고는 있지만 문제를 풀때면 생각을 못하고 반복문을 쓰게 된다. 좀 더 코드를 간결하게 작성하기 위해서 이런 메소드들을 적절히 활용하는 연습을 해야겠다.

reference

profile
어제보다 나은 오늘을 만드는 중

0개의 댓글