function solution(rank, attendance) {
let temp = [];
for(let i=0; i<attendance.length; i++) {
if(attendance[i] == true) { temp.push(rank[i]) }
}
temp.sort((i,j)=>i-j)
let answer = []
for(let i=0; i<3; i++) {
answer.push(rank.indexOf(temp[i]))
}
return answer[0]*10000 + answer[1]*100 + answer[2]
}
첫 번째 for문에서는 참석 가능한 학생의 순위를 temp에 저장한다. for문이 끝나면 순위가 저장된 배열 temp를 오름차순으로 정렬한다.
answer에는 학생의 순위가rank에서 가지는 인덱스 번호를 저장한다. 두 번째 for문이 끝난다면 조건에 맞게 계산하여 리턴한다.
어떻게 풀어야할지 감은 오는데 코드로 구현하는 걸 잘 모르겠어서 엄청 고민했다ㅠㅠ 생각한대로 무작정 적으니 코드가 너무 지저분해져서 나중에 나도 알아보기가 힘들어서...