[프로그래머스] 문자열 내 마음대로 정렬하기

김태영·2022년 5월 23일
0
post-thumbnail

문제 자세히 보기



[나의 풀이]

function solution(strings, n) {
    let arr = strings.sort((a, b) => {
        if (a[n] > b[n]) return 1
        else if (a[n] < b[n]) return -1
        else {
            if (a > b) return 1
	        else return -1
        }
    })
  
  return arr
}

이번 문제도 결국 정렬문제이기에 sort() 메소드가 가장 먼저 생각나서 해당 메소드를 사용했다 다만 여러가지 조건이 있다보니 if, else if를 사용하여 조건에 맞게 정렬할 수 있도록 하였다.

        if (a[n] > b[n]) return 1
        else if (a[n] < b[n]) return -1
}

위의 두 조건에서는 a와 b로 주어지는 요소의 n번째 index를 비교하여 a의 n번째가 크다면 1을 리턴 반대로 작다면 -1을 리턴

        else {
            if (a > b) return 1
	        else return -1
        }

마지막으로 n번째의 요소가 동일하다면 해당 요소의 앞 요소를 비교하여 정렬하도록 하였다.

이렇게 작성하고 보니 뭔가 코드가 보기 애매한 느낌이라 if를 여러개 사용하였는데 코드를 보기에는 아래의 코드가 더 읽기 쉬운거 같다.

function solution(strings, n) {
  let arr = strings.sort((a, b) => {
    if (a[n] > b[n]) return 1;
    if (a[n] < b[n]) return -1;
    if (a[n] === b[n]) {
      if (a > b) {
        return 1
      } else return -1
    }
  })
  
  return arr
}
profile
즐거운 개발을 위해~

0개의 댓글