programmers - 문자열 내 마음대로 정하기 with JS

@p-iknow 🎹 · November 21, 2019

Problem

image

출저: 프로그래머스

Solve

내 풀이

function solution(strings, n) {
  strings.sort(function(a, b) {
    const first = a[n];
    const second = b[n];
    if (first === second) {
      return (a > b) - (a < b);
    } 
      return (first > second) - (first < second);
    
  });
  return strings;
}

What I learned

 if (first === second) {
      return (a > b) - (a < b);
    } 
      return (first > second) - (first < second);

문자열의 정렬 함수 구성

문자열의 경우 대소 비교를 통해 Boolean 값으로 변환한 뒤 해당 Boolean 을 피연자로 활용한다. Boolean type 에 뺄셈을 하면 Boolean 은 각각 0 과 1 로 암묵적 형변환이 일어난다.

(a > b) - (a < b); 는 아래와 같이 평가될 수 있다.

  • true(1) - false(0) = 1
  • false(0) - true(1) = -1
  • fasle(0) - fasle(0 ) = 0
@p-iknow 🎹
많은 것을 이해하고 싶습니다. 더 이해하기 위해 노력합니다.