function solution(test) {
let answer = 0;
let flag = 0;
let m = test[0].length;
let n = test.length;
// 첫번째 시험에서 도출되는 총 경우의 수
for (let i = 1; i < m; i++) answer += i
for (let i = 0; i < m - 1; i++) {
for (let j = i + 1; j < m; j++) {
flag = 0;
for (let k = 1; k < n; k++) {
if (test[k].indexOf(test[0][i]) > test[k].indexOf(test[0][j])) {
flag = 1;
break;
}
}
if (flag) answer--;
}
}
return answer;
}
강사님께서 이 문제 관련하여 다른 분께 답변해주신 테스트케이스는 모두 통과하였습니다.
코드 설명드리자면, 첫번째 시험으로 도출되는 경우의 수를 구한 후 for문을 돌면서
이후 시험에서 역전되면 경우의 수를 차감해나가는 방식입니다. (중복 방지를 위해 break로 for문을 빠져나가도록 했습니다.)
귀찮으시겠지만 코드보시고 어떠한지 피드백 해주시면 정말 감사하겠습니다 :)