인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

freewjdaud님의 프로필 이미지
freewjdaud

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

3. 멘토링

맨토링 문제

해결된 질문

작성

·

235

2

맨토링 문제에서 

if(test[k][s]===i) pi = s;

if(test[k][s]===j) pj = s;

이것에 대한 이해가 안됩니다. 그리고 

for(let i=1; i<=n; i++){ 여기서 n이 아니라 m으로 생각했는데 첫번째 반복문이니 arr배열의 전체를 돌려야 하는것으로 생각해서 m넣어야 하는것이 아닌가요?

이렇듯 전체적으로 보충 설명을 한번 부탁드립니다ㅠㅠ

답변 1

25

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

이 문제 코드에 있는 4중 for문의 각 인덱스 변수가 무엇을 의미하는지 알아야 합니다.

첫 번째 for문의 인덱스인 i는 멘토가 되는 학생의 번호입니다.(1부터 n번까지)

두 번째 for문의 인덱스인 j는 멘티가 되는 학생의 번호입니다.(1부터 n번까지)

세 번째 for문의 인덱스인 k는 수학 테스트 번호입니다.(0번째 테스트부터 m-1번째 트스트까지)

네 번째 for문의 인덱스인 s는 각 테스트에서의 등수를 의미합니다. (0등부터 n-1등까지)

이것을 이해하고 영상을 다시 보시면 이해가 갈 것입니다.

if(test[k][s]===i) pi = s;

위에 코드의 test[k][s]의 값은  k번째 테스트에서 s등을 하는 학생의 번호입니다. 즉 

if(test[k][s]===i) 이 참이되면 s는 i번 학생의 등수가 되는 것이고 그것을 pi에 저장하는 것입니다.

따라서 pi는 멘토가 되는 i번 학생의 등수인 것입니다.

그러면 pj는 멘티가 되는 j번 학생의 등수가 되겠죠.

freewjdaud님의 프로필 이미지
freewjdaud

작성한 질문수

질문하기