반응형
프로그래머스 완전탐색 모의고사 문제
레벨: 1
언어: JavaScript
문제요약
1번: 1, 2, 3, 4, 5
2번: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1...
3번: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 ,3,3 ....
으로 정답을 찍는다고 한다.
이때 들어오는 모의고사의 정답과 비교하여 가장 많이 정답을 맞춘 정답자를 반환해라
입력값
- 숫자 배열, 모의고사 정답이 숫자 배열로 들어옴출력값
- 숫자 배열, 가장 많이 정답을 맞춘 사람
📑풀이 아이디어
각 사람의 정답을 배열에 저장한다.
정답배열과 비교하여 정답 맞춘 수를 카운딩하여 저장한다.
📋풀이코드
function solution(answers) {
let answer = [];
let maxCount = 0
let students = {
1:{
checkAnswer : [1,2,3,4,5],
count : 0,
index: 0
},
2:{
checkAnswer : [2, 1, 2, 3, 2, 4, 2, 5],
count : 0,
index: 0
},
3:{
checkAnswer : [3, 3, 1, 1, 2, 2, 4, 4, 5, 5],
count : 0,
index: 0
}
}
answers.map((num) =>{
for(const key in students){
if(students[key].checkAnswer[students[key].index++] === num){
students[key].count +=1
if(students[key].count>maxCount){
maxCount = students[key].count;
}
}
if(students[key].index === students[key].checkAnswer.length){
students[key].index = 0
}
}
})
for(const key in students){
if(students[key].count === maxCount){
answer.push(+key)
}
}
console.log(students)
return answer.sort((a,b)=>a-b);
}
이 문제는 어떻게든 돌려서 정답을 많이 맞춘 사람을 찾는거라 어렵지 않다.
정답을 모두 틀렸을 경우 최고가 0개이고 그럼 3명다 최고 점수 임으로로 3명을 출력해야한다는 예외만 잘 처리 해주면 어렵지 않게 해결 할 수 있다.
반응형
'지난 글 모음' 카테고리의 다른 글
[JavaScript] - var를 말고 const, let을 써 야하는 이유 (2) | 2022.01.24 |
---|---|
[프로그래머] - lv2 문자열 압축 JavaScript (0) | 2022.01.24 |
[프로그래머스] -LV1 로또의 최고 순위와 최저 순위 JavaScript (0) | 2022.01.22 |
[프로그래머스] - LV1 신고 결과 받기 JavaScript (0) | 2022.01.22 |
스프링 핵심 원리 - 기본편 3 좋은 객체 지향 설계의 5가지 원칙(SOLID) (0) | 2021.05.14 |