Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 자동화
- 렌더링 과정
- SSL
- 검색엔진최적화
- 무중단
- 배포
- webp
- 3-Way HandShake
- DNS
- nginx
- 이미지 포맷 변경
- 로드 밸런싱
- 브라우저
- tcp
- 이미지 압축
- certbot
- 성능 개선
- gitgub actions
- ec2
- https
- TLS
- 인증서
- aws
- 리버스 프록시
- pm2
- CI
- nextJS
- 이미지 최적화
- workflow
- SSH
Archives
- Today
- Total
개발일기
[JavaScript] 등수 매기기 본문
문제 설명
영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 0 ≤ score[0], score[1] ≤ 100
- 1 ≤ score의 길이 ≤ 10
- score의 원소 길이는 2입니다.
- score는 중복된 원소를 갖지 않습니다.
입출력 예
score | result |
[[80, 70], [90, 50], [40, 70], [50, 80]] | [1, 2, 4, 3] |
[[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [10, 30]] | [4, 4, 6, 2, 2, 1, 7] |
풀이
function solution(score) {
let avgArray = [];
for(let i = 0; i < score.length; i++){
const [a,b] = score[i]
avgArray.push((a + b)/2)
}
let sorted = [...avgArray].sort((a,b)=>b-a)
return avgArray.map((v)=> sorted.indexOf(v) + 1)
}
풀이 설명
1. for문으로 score의 요소를 돌면서 avgArray 배열에 for문 안에서 계산한 평균값을 push() 해준다.
2. 순위를 매기기 위해서 avgArray를 정렬해주는데 원본의 배열과 비교하기 위해 얕은 복사를 진행해서 정렬 한다.
3. map()을 통해 새로운 배열을 리턴하는데 정렬한 sorted의 indexOf()를 통해 순위를 매긴 뒤 값을 리턴한다. (index는 0부터 시작이므로 +1을 해준다.)
'Algorithm' 카테고리의 다른 글
[JavaScript] 문자열 겹쳐쓰기 (0) | 2024.08.14 |
---|---|
[JavaScript] 로그인 성공? (0) | 2024.07.31 |
[JavaScript] 캐릭터의 좌표 (0) | 2024.07.26 |
[JavaScript] 외계어 사전 (3) | 2024.07.24 |
[JavaScript] 직사각형 넓이 구하기 (4) | 2024.07.24 |