function solution(arr){
let testCnt = arr.length;
let students = arr[0].length
let answer = 0;
for(let i=0; i< testCnt; i++){
for(let j=0; j<students; j++){
loop :
for(let k=0; k<students; k++){
if(arr[i][j] < arr[i][k]){
for(let s =0; s< testCnt; s++){
if(s != i && arr[s][j] > arr[s][k]) continue loop;
}
answer++;
}
}
}
}
return answer;
}
풀이 과정은 모든 학생들의 모든 수학 등수를 한번씩 체크하면서 다른 학생의 수학 등수와 비교를 한다 그리고 해당 등수가 더 높으면 다른 시험에서도 등수가 더 높은지를 체크하고 만약 등수가 더 낮다면 continue 를 사용하여 다음 학생을 체크한다 하지만, 모든 수학문제에서 해당 학생보다 점수가 높다면 answer++ 해준다.
function solution(test){
let answer=0;
m=test.length;
n=test[0].length;
for(let i=1; i<=n; i++){
for(let j=1; j<=n; j++){
let cnt=0;
for(let k=0; k<m; k++){
let pi=pj=0;
for(let s=0; s<n; s++){
if(test[k][s]===i) pi=s;
if(test[k][s]===j) pj=s;
}
if(pi<pj) cnt++;
}
if(cnt===m) answer++;
}
}
return answer;
}
강사님의 풀이 과정이다 코드 가독성은 내가 더 깔끔하다고 생각했는데 ( 사실 아닐지도...)
속도는 강사님 속도가 더 빠르다 왜지..continue 까지 써서 최소화 했다고 생각했는데 쩝..
강사님 풀이를 보자면 음.... 이해하지 못했다.... 왜 test[k][s] 값이 i나 j 값이랑 일치할 때가 조건인지 생각해봐야겠다
혹시라도 이해한 사람이 있다면 알려주세요, 저도 나중에 이해가 된다면 추가적으로 글 작성할게요 껄껄