728x90
[Javascript] (프로그래머스 level 1) 모의고사
💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.
내 풀이
function solution(answers) {
const method2 = [2, 1, 2, 3, 2, 4, 2, 5];
const method3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
const arr1 = new Array(answers.length).fill(0).map((x, i) => x = (i % 5) + 1);
const arr2 = new Array(answers.length).fill(0).map((x, i) => x = method2[i % 8])
const arr3 = new Array(answers.length).fill(0).map((x, i) => x = method3[i % 10] )
const result = [];
result.push([1, answers.filter((x, i) => x === arr1[i]).length])
result.push([2, answers.filter((x, i) => x === arr2[i]).length])
result.push([3, answers.filter((x, i) => x === arr3[i]).length])
const maxScore = Math.max(result[0][1], result[1][1], result[2][1]);
return result.filter((x, i) => x[1] === maxScore).map((x) => x[0])
}
- 뭔가 우아함이 부족하고, 중복되는 코드를 하드코딩한게 눈에 보이네요.
- 코테가 당장 토요일이다보니 정답 맞추는게 우선이라 우아한 코드 만들기 연습은 많이 못해서 아쉽네요. 일단 다른 사람 코드를 봅시다. 😭
다른 사람 풀이
function solution(answers) {
var answer = [];
const man1 = [1, 2, 3, 4, 5];
const man2 = [2, 1, 2, 3, 2, 4, 2, 5];
const man3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
let count = [0, 0, 0];
for(let i = 0; i < answers.length; i++) {
if(answers[i] == man1[i % man1.length]) count[0]++;
if(answers[i] == man2[i % man2.length]) count[1]++;
if(answers[i] == man3[i % man3.length]) count[2]++;
}
const max = Math.max(count[0], count[1], count[2]);
for(let i = 0; i < count.length; i++) {
if(max == count[i]) answer.push(i + 1);
}
return answer;
}
배운 점, 느낀 점
로직은 다들 비슷하네요.. 저번 문제에서도 적은것 같은데 메서드 연결할 때 쭉 늘어쓰는거 보다 중간 중간 끊어주는게 좀 더 읽기 편하고 이쁜것 같아요
'Coding Test > JavaScript' 카테고리의 다른 글
[Javascript] (프로그래머스 level 2) 오픈채팅방 (0) | 2022.07.01 |
---|---|
[Javascript] (프로그래머스 level 1) 크레인 인형뽑기 게임 (0) | 2022.07.01 |
[Javascript] (프로그래머스 level 1) 키패드 누르기 (0) | 2022.07.01 |
[Javascript] (프로그래머스 level 1) 내적 (0) | 2022.07.01 |
[Javascript] (프로그래머스 level 1) 체육복 (0) | 2022.06.30 |
[Javascript] (프로그래머스 level 1) 실패율 (0) | 2022.06.30 |
[Javascript] (프로그래머스 level 1) 비밀 지도 (0) | 2022.06.30 |
[Javascript] (프로그래머스 level 1) 문자열 내 마음대로 정렬하기 (0) | 2022.06.30 |
댓글