https://programmers.co.kr/learn/courses/30/lessons/83201
function solution(scores) {
let arr=[], answer='';
//1. 배열에서 없어져야하는 부분은 0으로 변경하기
for(let i=0; i<scores.length; i++){
let max=Number.MIN_SAFE_INTEGER;
let min=Number.MAX_SAFE_INTEGER;
for(let j=0; j<scores.length; j++){
if(i===j) continue;
else if(i!==j){
if(scores[j][i]<min) min=scores[j][i];
else if(scores[j][i]>max) max=scores[j][i];
}
}
if(scores[i][i]>max || scores[i][i]<min) scores[i][i]=0;
}
//2. 각 학생의 평균 점수를 구하기
for(let i=0; i<scores.length; i++){
let sum=0;
let n=scores.length;
for(let j=0; j<scores.length; j++){
if(scores[j][i]===0) {
n--;
continue;
}
sum+=scores[j][i];
}
arr.push(parseInt(sum/n));
}
//3. 학점 판단
for(let x of arr){
if(x>=90) answer+='A';
else if(x>=80) answer+='B';
else if(x>=70) answer+='C';
else if(x>=50) answer+='D';
else answer+='F'
}
return answer;
}
와 완전 직관적으로, 노가다로 풀었다...
처음에는 계속해서 "짧게 만들 수는 없을까? 사용할 수 있는 메소드는 없을까?"이 생각때문에 문제를 못풀었는데, 그냥 직관적으로 풀어보자! 해서 문제를 풀었다. 코드 제출할 때 코드가 길기도 해서 왠지 모르게 자신감이 없었는데, 정답! 이렇게 직관적으로 길게 풀때는, 중간중간 console창에 잘하고 있는지 찍어보면서 풀자. 끝까지 코딩한 다음에 오류를 발견하면, 어디서 문제가 생겼는지 알기 힘드니까!
그리고 생각했을 때 짧게만들 방법이 떠오르지 않는다면, 긴 코드를 두려워하지말자. 생각한대로 제대로 작성만 하면, 풀린다!
10/26
읽기