9 / 17
멘토링
현수네 반 선생님은 반 학생들의 수학점수를 향상시키기 위해 멘토링 시스템을 만들려고 한다. 멘토링은 멘토(도와주는 학생)와 멘티(도움을 받는 학생)가 한 짝이 되어 멘토가 멘티의 수학공부를 도와주는 것이다. 선생님은 M번의 수학테스트 등수를 가지고 멘토와 멘티를 정한다. 만약 A학생이 멘토이고, B학생이 멘티가 되는 짝이 되었다면 A학생은 M번의 수학테스트에서 모두 B학생보다 등수가 앞서야 한다. M번의 수학성적이 주어지면 멘토와 멘티가 되는 찍을 만들 수 있는 경우가 총 몇가지 인지 출력하는 프로그램을 작성하세요.
인자로 수학테스트 결과가 학생 번호로 주어진다. 학생번호가 제일 앞에서부터 1등, 2등, ...n등 순으로 표현된다.
스스로 해결 여부
⭕️ 👏🏻 (두시간에 걸쳐서 간신히 풀었다ㅜㅜ....)
const getMentoringNumberOfCase = (arr) => {
let num = 0
for (let i = 1; i < arr[0].length + 1; i++) {
for (let j = 1; j < arr[0].length + 1; j++) {
const arr1 = []
for (let z = 0; z < arr.length; z++) {
if (arr[z].indexOf(i) < arr[z].indexOf(j)) {
arr1.push(true)
} else {
arr1.push(false)
}
}
if (arr1.every((el) => el === true)) {
num++
}
}
}
return num
}
console.log(
getMentoringNumberOfCase([
[3, 4, 1, 2],
[4, 3, 2, 1],
[3, 1, 4, 2],
])
) // 3
console.log(
getMentoringNumberOfCase([
[1, 3, 2, 4, 5],
[5, 3, 1, 2, 4],
[3, 5, 2, 1, 4],
])
) // 4