[Algorithm] _ 등수구하기

이지·2021년 9월 26일
0

algorithm

목록 보기
1/10

출처: 인프런

function solution(arr){  
  const len = arr.length;
  // arr.length 길이의 배열을 초깃값 1로 세팅하여 초기에 생성. 
  const answer = Array.from({length:n},()=>1);
  
  //한개의 값이 고정된 동안, 배열 전체의 값을 순회하면서 고정값과의 크기비교.
  //고정값보다 비굣값의 크기가 클때마다(점수가 높은 사람이 발견될 때마다) 
  // answer 배열의 해당 idx값(=고정값의 idx)이 1씩 증가한다. 
  for(let i=0; i<len; i++) {
    for(let j=0;j<len; j++){
     if(arr[i]<arr[j]){
     	anwer[i]++;
     }
    }
  }
    return answer;
}

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


//my sol

//두번째 풀이에서는 초기 array를 1로 세팅하지 않고, 한번의 순회가 끝날때마다 도출된 결괏값을 빈 arr 에 push 하는 방식으로 구현했다. 

function solution(arr){  
    let n=arr.length;
    let array= [];
    for(let i=0; i<n; i++){
      //초깃값을 1로 리셋함
        let num = 1; 
        for(let j=0; j<n; j++){
            if(arr[j]>arr[i]) 
   //한개의 값이 고정된 동안, 배열 전체의 값을 순회하면서 고정값과의 크기비교.
  //고정값보다 비굣값의 크기가 클때마다(점수가 높은 사람이 발견될 때마다) num이 1씩 증가한다.
            num++;
        }
        array.push(num)
    }             
    return array;
}

let arr=[87, 89, 92, 100, 76];
console.log(solution(arr));
profile
이지피지레몬스퀴지🍋

0개의 댓글

Powered by GraphCDN, the GraphQL CDN