오늘의 문제는~
였습니닷!
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 |