본문 바로가기
Code/JavaScript & Node.js

[프로그래머스] 완주하지 못한 선수 - javascript

by 코드포휴먼 2020. 3. 6.

<문제>

 

<해결방법>

function solution(participant, completion) {
    var answer = '';
    participant.sort();
    completion.sort();
    
    for(let i=0; i<participant.length; i++){
        if(participant[i] !== completion[i]){
            answer += participant[i]
            return answer;
        }
    }
}

 

<사용된 개념>

1. sort() 함수

arr.sort([compareFunction])

 

- 매개변수 : compareFunction (optional)

정렬 순서를 정의하는 함수.

생략하면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니코드 코드 포인트 값에 따라 정렬된다.

const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]

const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]

 

- 반환값 : 정렬한 배열. 원래 배열이 정렬되는 것에 유의하자. 복사본이 만들어지는 것이 아니다.

 

compareFunction이 제공되면 배열 요소는 compare 함수의 반환 값에 따라 정렬된다. a와 b가 비교되는 두 요소라면,

  • compareFunction(a, b)이 0보다 작은 경우   : a를 b보다 낮은 색인으로 정렬한다. 즉, a가 먼저온다.
  • compareFunction(a, b)이 0을 반환하면       : a와 b를 서로에 대해 변경하지 않고 모든 다른 요소에 대해 정렬한다.
  • compareFunction(a, b)이 0보다 큰 경우      :  b를 a보다 낮은 인덱스로 소트한다.

compare 함수의 형식은 다음과 같다.

//문자열 비교
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;
}
//숫자 비교

//오름차순 정렬
function compareNumbers(a, b) {
  return a - b;
}
//내림차순 정렬
function compareNumbers(a, b) {
  return b - a;
}

 

예시는 다음과 같다.

var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
  return a - b;
});
console.log(numbers);
// 결과 : [1, 2, 3, 4, 5]


numbers.sort(function(a, b){
	return b - a;
});
console.log(numbers);
// 결과 : [5, 4, 3, 2, 1]

<출처>

sort() 함수

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort 

'Code > JavaScript & Node.js' 카테고리의 다른 글

[React] LifeCycle API  (0) 2020.09.22
[Nodejs] 차근차근 Nodejs - 쿠키(cookie)  (0) 2020.07.21
html에서 js 연동 시 주의할 점  (0) 2020.03.04
Javascript의 window.print() 기능  (0) 2019.10.21
Javascript 날짜 함수  (0) 2019.10.21

댓글