자바스크립트 알고리즘 문제풀이 등수구하기

버건디·2023년 1월 31일
0

N(1<=N<=100)명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요.

▣ 입력설명

첫 줄에 N(3<=N<=1000)이 입력되고, 두 번째 줄에 국어점수를 의미하는 N개의 정수가 입력 된다. 같은 점수가 입력될 경우 높은 등수로 동일 처리한다.
즉 가장 높은 점수가 92점인데 92점이 3명 존재하면 1등이 3명이고 그 다음 학생은 4등이 된다.

▣ 출력설명
입력된 순서대로 등수를 출력한다.

▣ 입력예제 1
5
87 89 92 100 76

▣ 출력예제 1
43215

- 풀이

const input = `5
87 89 92 100 76`.split("\n");
const num = Number(input[0]);
const inputArr = input[1].split(" ");

function solution(inputArr) {
  let answer = [];
  let scores = [...inputArr].sort((a, b) => b - a);

  for (let i = 0; i < num; i++) {
    let num = inputArr.indexOf(scores[i]) + 1;
    answer.push(num);
  }

  return answer;
}

console.log(solution(inputArr));

- 답지 풀이

const input = `5
87 89 92 100 76`.split("\n");
const num = Number(input[0]);
const inputArr = input[1].split(" ");

function solution(inputArr) {
  let answer = Array.from({ length: num }, () => 1);

  for (let i = 0; i < num; i++) {
    for (j = 0; j < num; j++) {
      if (Number(inputArr[j]) > Number(inputArr[i])) {
        answer[i]++;
      }
    }
  }

  return answer;
}

console.log(solution(inputArr));
profile
https://brgndy.me/ 로 옮기는 중입니다 :)

0개의 댓글