반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

멘토링 본문

반응형

 

해결법

이 문제는 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>
반응형

'코딩테스트 with JS > 자바스크립트 알고리즘 문제풀이(인프런)' 카테고리의 다른 글

K번째 큰 수  (0) 2022.08.21
졸업 선물  (0) 2022.08.21
문자열 압축  (0) 2022.08.17
가장 짧은 문자거리  (0) 2022.08.16
숫자만 추출  (0) 2022.08.15
Comments