5_hyun
2022. 8. 21. 14:04
반응형
해결법
이 문제는 4중 for문을 사용해야 한다.
먼저 처음 2중 for문은 변수를 i, j의 초기값을 1로 두고 둘 다 학생 수까지 돌려야한다. 초기값을 1로 두는 이유는 i와 j가 등수로 사용되기 때문이다. 그리고 처음 2중 for문은 모든 경우의 수를 다 돌아가도록 한다.
그 다음 2중 for문은 각각 k, s로 변수를 두고 테스트 수, 학생 수로 돌려야한다. 이때 test[k][s]가 각각 i, j와 같으면 저장을 해두고 비교하면 된다. i가 멘토, j가 멘티라서 i가 j보다 작으면 count를 올려준다.
마지막에 이 count가 테스트 결과의 수와 같으면 answer++를 해주면 된다.
코드
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(test) {
let answer = 0;
let m = test.length;
let n = test[0].length;
for (let i = 1; i < n; i++) {
for (let j = 1; j < n; j++) {
let count = 0;
for (let k = 0; k < m; k++) {
let mento = (menti = 0);
for (let s = 0; s < n; s++) {
if (test[k][s] === i) mento = i;
if (test[k][s] === j) menti = j;
}
if (i < j) count++;
}
if (count === m) answer++;
}
}
return answer;
}
let arr = [
[3, 4, 1, 2],
[4, 3, 2, 1],
[3, 1, 4, 2],
];
console.log(solution(arr));
</script>
</body>
</html>
반응형