반응형
문제 2-5번
N(1<=N<=100)명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요.
🍄 입력설명
첫 줄에 N(3<=N<=1000)이 입력되고, 두 번째 줄에 국어점수를 의미하는 N개의 정수가 입력 된다. 같은 점수가 입력될 경우 높은 등수로 동일 처리한다. 즉 가장 높은 점수가 92점인데 92점이 3명 존재하면 1등이 3명이고 그 다음 학생은 4등이 된다.
🍄 출력설명
입력된 순서대로 등수를 출력한다.
🍄 입력예제 1
5
87 89 92 100 76
🍄 출력예제 1
4 3 2 1 5
정답 코드
- Array.from() 메서드는 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운Array 객체를 만듭니다.
Array.from({length: 5}, (v, i) => i);
// [0, 1, 2, 3, 4]
87 | 89 | 92 | 100 | 76 |
1 | 1 | 1 | 1 | 1 |
- 점수에 해당하는 1로 초기화된 배열 answer을 만든다. 이중 for문을 돌면서 예를 들면 87보다 큰 수를 만날때 answer값을 1씩 증가한다. 87보다 큰 수인 89,92,100을 만나서 총 3번 증가되어 answer[87]은 1+3 = 4가 되어 4등이 되는 원리이다.
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[i] < arr[j]) answer[i]++;
}
}
return answer;
}
let a = [87, 89, 92, 100, 76];
console.log(solution(a));
// (5) [4, 3, 2, 1, 5] 출력
728x90
반응형
'알고리즘' 카테고리의 다른 글
[JS] 알고리즘 기초 정복 2-7번 - 봉우리 🌟 (0) | 2021.07.13 |
---|---|
[JS] 알고리즘 기초 정복 2-6번 - 격자판 최대합 (0) | 2021.07.13 |
[JS] 알고리즘 기초 정복 2-4번 - 점수계산 (0) | 2021.07.13 |
[JS] 알고리즘 기초 정복 2-3번 - 가위 바위 보 (0) | 2021.07.13 |
[JS] 알고리즘 기초 정복 2-2번 - 보이는 학생 (0) | 2021.07.13 |