[JS알고리즘] 등수구하기



N(1<=N<=100) 명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하시오. (단 같은 점수가 입력될 경우 높은 등수로 동일 처리한다)


function solution(arr){
  let n = arr.length;
	let answer = Array.from({length:n}, ()=>1);
  for(let i = 0; i<n; i++){
    for(let j =0; j<n; j++){
      if(arr[j] > arr[i]) answer[i]++;
    }
  }
  
  return answer;
}

let arr =[ 87, 89, 92, 100, 76 ];
console.log(solution(arr))

2중 for를 이용해서 해결해야 하는 문제.

1번 for i를 기준으로 2번 for j를 비교하여 구하면 된다.

i번째 값을 기준으로 j의 값이 i보다 큰지 작은지를 비교하여 작으면 넘어가고 크면 등수를 ++시킨다

cf. Array.from({length:n}, ()=>1) 는 length가 n인 배열을 만들고, 그 배열의 값들을 1로 초기화 해주겠다는 뜻




inflearn 자바스크립트 알고리즘 강의 내용 =)




© 2018. by sora

Powered by sora