반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42840
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
내 풀이
완전탐색을 이용하여 문제를 풀라고 한다.
일단 나는 더럽게 풀었음.
function solution(answers) {
const result = [];
const arr = [0, 0, 0];
const a = [1,2,3,4,5];
const b = [2,1,2,3,2,4,2,5];
const c = [3,3,1,1,2,2,4,4,5,5];
for(let i = 0; i < answers.length; i++){
const answer = answers[i];
if(answer === a[i % 5]) arr[0] += 1;
if(answer === b[i % 8]) arr[1] += 1;
if(answer === c[i % 10]) arr[2] += 1;
}
const max = Math.max(...arr);
for(let i = 0; i < 3; i++) {
if(max === arr[i]) result.push(i+1);
}
return result
}
더럽게 풀었는데 한 번에 성공하니 기부니가 찝찝하다..
그렇다면 다른 사람의 풀이를 보는게 인지상정
다른 풀이
..라고 생각했는데 나같은 사람이 또 있었음
function solution(answers) {
var answer = [];
var a1 = [1, 2, 3, 4, 5];
var a2 = [2, 1, 2, 3, 2, 4, 2, 5]
var a3 = [ 3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
var a1c = answers.filter((a,i)=> a === a1[i%a1.length]).length;
var a2c = answers.filter((a,i)=> a === a2[i%a2.length]).length;
var a3c = answers.filter((a,i)=> a === a3[i%a3.length]).length;
var max = Math.max(a1c,a2c,a3c);
if (a1c === max) {answer.push(1)};
if (a2c === max) {answer.push(2)};
if (a3c === max) {answer.push(3)};
return answer;
}
다른 풀이들도 보니까 다들 비슷하게 풀었더라
(+)
생각해보니 좀 가혹한 듯함
대신 수포자는 탈출할 듯
반응형
'CS > 알고리즘' 카테고리의 다른 글
[230422] 추억 점수 (0) | 2023.04.22 |
---|---|
[230422] 소수 찾기 (0) | 2023.04.21 |
[230421] n^2 배열 자르기 (0) | 2023.04.21 |
[230421] 위장 (0) | 2023.04.21 |
[230420] 캐시 (0) | 2023.04.20 |