레쭈고 코테

코딩 테스트 - 55

정땅미 2025. 1. 7. 16:25

오늘의 문제는~

 

였습니닷!

function solution(answers) {
    var answer = [];
    var per1 = [1, 2, 3, 4, 5];
    var per2 = [2, 1, 2, 3, 2, 4, 2, 5];
    var per3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
    var answer1=0
    var answer2=0
    var answer3=0
    
    for(let i=0; i<answers.length; i++) {
        if (answers[i] === per1[i % per1.length]) answer1++;
        if (answers[i] === per2[i % per2.length]) answer2++;
        if (answers[i] === per3[i % per3.length]) answer3++;
    }
    
    if(Math.max(answer1, answer2, answer3) === answer1) answer.push(1);
    if(Math.max(answer1, answer2, answer3) === answer2) answer.push(2);
    if(Math.max(answer1, answer2, answer3) === answer3) answer.push(3);
    return answer;
}

 

저 문제 보자마자 지저분한 코드 밖에 생각이 안 나서.. 우선은 이렇게 풀고 다른 사람의 풀이를 보려 햇어요!

근데 비슷하더라구요.... 

그래서 다행이면서도 더 간단한 풀이가 있었으면 좋겠다구 생각을 했구요.

per1, per2, per3 for 문을 반복해서 돌려야 하는 게 문제로 다가와서 검색해 보니 js modulo 연산자! 를 쓰면 된다고 하더라구요

그래서 per[i % per1.length] 이렇게 해서 나머지를 이용해서 배열을 계속 돌면서 사용할 수 있게 했어요!

처음 알아서 굉장히 신기하더라구요... !!!

실무에서도 자주 쓰인다고 나왓는데 자주 이용해야 할 것 같습니닷.

'레쭈고 코테' 카테고리의 다른 글

코딩 테스트 - 57  (0) 2025.01.12
코딩 테스트 - 56  (1) 2025.01.08
코딩 테스트 - 54  (0) 2025.01.06
코딩 테스트 - 53  (0) 2025.01.05
코딩 테스트 - 52  (0) 2025.01.03