Algorithm - 모의고사(완전탐색)
프로그래머스 - 모의고사(완전탐색)
오랜만에 머리를 굴리기 위해서 알고리즘을 풀었다
오늘 푼 문제는 1단계 중 모의고사라는 문제다.
이 문제는 솔직히 공부하기에 좋은 문제라는 생각은 안드는게 너무 하드코딩 같다는 느낌이 들었다.
내 풀이
function solution(answers) {
const answer = [];
// 찍는 방식을 기록한 객체로, 이 부분은 하드코딩 필수적이다.
const people = {
1: [1, 2, 3, 4, 5],
2: [2, 1, 2, 3, 2, 4, 2, 5],
3: [3, 3, 1, 1, 2, 2, 4, 4, 5, 5],
}
// 누가 몇 문제를 맞췄는지를 기록하는 객체를 만들었다.
const corret = {
1: 0,
2: 0,
3: 0,
}
// 2중 for문을 돌려서 퍼포먼스적으로는 좋지 않지만, 만약 사람이 추가 되었을때 위의 두 객체에 값들만 추가하면 된다.
for (const person in people) {
answers.forEach((answer, index) => {
// index % people[person].length는 만약 찍는 방식(배열)의 길이를 넘어가면 다시 찍는방식을 처음부터 탐색하게 하기위해 저렇게 코딩했다.
if(answer === people[person][index % people[person].length]) {
corret[person]++;
}
})
}
// 가장 높은 점수를 찾는다.
const maxValue = Math.max(...Object.values(corret));
// 가장 높은점수를 받은 사람을 answer 배열에 집어넣는다.
for (const key in corret) {
if (corret[key] === maxValue) {
answer.push(parseInt(key))
}
}
return answer;
}
Author And Source
이 문제에 관하여(Algorithm - 모의고사(완전탐색)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@pest95/Algorithm-모의고사완전탐색저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)