728x90
쩝
일단 1번,2번,3번의 패턴을 저장할 필요가 있다.
1,2,3,4,5 ( 1패턴당 5개)
2,1,2,3,2,4,2,5 ( 1패턴당 8개)
3,3,1,1,2,2,4,4,5,5 ( 1패턴당 10개)
그리고 카운팅을 해줄 count 변수
=>
function solution(answers) {
var person = [
[1,2,3,4,5],
[2,1,2,3,2,4,2,5],
[3,3,1,1,2,2,4,4,5,5]
];
var count = [0,0,0];
}
그다음 answer의 크기만큼 for문을 도는데, 패턴의 크기만큼 다시 돌아야하기 때문에 % 연산자를 이용한다
function solution(answers) {
var person = [
[1,2,3,4,5],
[2,1,2,3,2,4,2,5],
[3,3,1,1,2,2,4,4,5,5]
];
var count = [0,0,0];
for (var i in answers){
if(person[0][i%5] == answers[i]){
count[0]++;
}
if(person[1][i%8] == answers[i]){
count[1]++;
}
if(person[2][i%10] == answers[i]){
count[2]++;
}
}
}
그리고 count 최대값을 구해줄 Math.max() 함수를 이용하여 max값을 구해주고, 사람마다 max값을 가지고 있는 사람을 체크해서 리턴
function solution(answers) {
var person = [
[1,2,3,4,5],
[2,1,2,3,2,4,2,5],
[3,3,1,1,2,2,4,4,5,5]
];
var count = [0,0,0];
for (var i in answers){
if(person[0][i%5] == answers[i]){
count[0]++;
}
if(person[1][i%8] == answers[i]){
count[1]++;
}
if(person[2][i%10] == answers[i]){
count[2]++;
}
}
var max = Math.max(...count);
var answer = [];
for(let a in count){
if(count[a] == max){
answer.push(Number(a)+1);
}
}
return answer;
}
728x90
'코딩테스트 > programmers level1' 카테고리의 다른 글
[kotlin] 프로그래머스 level1 - 스킬 체크 테스트 2 (0) | 2020.11.11 |
---|---|
[kotlin] 프로그래머스 level1 - 스킬 체크 테스트 (0) | 2020.11.11 |
[Java Script] 프로그래머스 level1 - 2016년 (2) | 2019.06.12 |
[Java script] 프로그래머스 level1 - 완주하지 못한 선수 (0) | 2019.06.09 |
[Java script] 프로그래머스 level1 - K번째 수 (0) | 2019.06.09 |