반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
** Javascript
입력 값으로는 본인이 매긴 점수들이 들어오는데 본인이 받은 점수로 평균을 내야 하기 때문에 우선 row 와 column의 위치를 바꿔야 했다.
바뀐 식에서 인덱스가 (i, i)이고 유일한 max 혹은 min 값일 경우 filter가 되어야 했는데 다른 풀이를 보면 splice를 하면 됐지만 나는 그렇게 까지는 생각을 못하고 0으로 바꿔줬다.
그리고 0으로 바뀐 값들을 제외시켰다.
function solution(_scores) {
const scores = _scores
.map((row, i) => row.map((col, j) => _scores[j][i]))
.map((row, i) => {
const min = Math.min.apply(null, row);
const max = Math.max.apply(null, row);
return row.map((col, j) => {
if (i === j && col === min && row.filter((each) => each === min).length === 1) return 0;
if (i === j && col === max && row.filter((each) => each === max).length === 1) return 0;
return col;
}).filter((col) => col > 0);
});
const answer = scores.reduce((acc, curr) => {
curr = curr.reduce((a, c) => a += c / curr.length, 0);
switch (true) {
case curr >= 90:
return acc += "A";
case curr >= 80 && curr < 90:
return acc += "B";
case curr >= 70 && curr < 80:
return acc += "C";
case curr >= 50 && curr < 70:
return acc += "D";
case curr < 50:
return acc += "F";
default:
return acc;
}
}, "");
return answer;
}
반응형
'프로그래머스 > level 1' 카테고리의 다른 글
[프로그래머스] 이상한 문자 만들기 (0) | 2021.08.14 |
---|---|
[프로그래머스] 자릿수 더하기 (0) | 2021.08.14 |
[프로그래머스][위클리챌린지] 1주차 부족한 금액 계산하기 (0) | 2021.08.09 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2021.08.09 |
[프로그래머스] 정수 내림차순으로 배치하기 (0) | 2021.08.09 |