본문 바로가기
알고리즘/Programmers

[TIL] 2023.03.24 Programmers 문제 풀기

by heereal 2023. 3. 24.

Today I Learend

  • Programmers 문제 풀기
  • 내일배움캠프 오프라인 모각지!

 


Programmers 문제 풀기

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

나의 풀이

function solution(s) {
    let upperCase = [];
    let lowerCase = [];
    s.split("").forEach((str) => str !== str.toUpperCase() ? lowerCase.push(str) : upperCase.push(str))
    return lowerCase.sort().reverse().join("") + upperCase.sort().reverse().join("");
}

대문자인 경우와 소문자인 경우로 나눠서 배열에 push한 후에 sort, reverse 메서드와 join메서드를 이용해서 정렬한 후 다시 문자열로 변환했다.

 

다른 사람의 풀이 01

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

음 그냥 sort 메서드가 알아서 소문자와 대문자까지 나눠서 정렬해주는 거였구나 ㅎㅎ 이렇게 새로 배워간다....

 

다른 사람의 풀이 02

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

reverse 메서드를 사용하지 않고 sort 메서드만으로 정렬 조건을 설정할 수 있다.

 

function compare(a, b) {
  if (a is less than b by some ordering criterion) {
    return -1;
  }
  if (a is greater than b by the ordering criterion) {
    return 1;
  }
  // a must be equal to b
  return 0;
}

sort 메서드의 compare 함수 형식

 


회고

오늘은 저녁에 서울에 가서 스파르타 오프라인 행사에 참여해야하기 때문에 오전에 프로그래머스 문제 하나만 풀었다. 깃헙 잔디깔기랑 TIL 작성 완료👍

 

댓글