728x90
1,2,3번 수포자들은
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 가 반복되게 문제답을 찍었다.
문제의 정답이 든 answers 배열은 1,2,3,4,5중 하나로 구성되어있다.
for문으로 answers와 1번, 2번, 3번 을 돌려 각각 if문을 써서 answer와 비교하고
1,2,3 중 맞춘 개수가 가장 높은 것을 가려내서 비어있는 배열에 push해주면 되겠다고 생각했다.
function solution(answers) {
let answer = [];
//수포자 답을 변수선언
let num1 = [1,2,3,4,5];
let num2 = [2,1,2,3,2,4,2,5];
let num3 = [3,3,1,1,2,2,4,4,5,5];
let count = [0, 0, 0];
let maxcount = 0;
//if 문으로 배열 answer과 num1 안의 요소를 비교해 같으면 count요소값을 1씩 증가시킨다.
for(let i =0; i<answers.length; i++)
{
if (answers[i] === num1[i%5]) {
count[0]++;
} if (answers[i] === num2[i%8]) {
count[1]++;
} if (answers[i] === num3[i%10]) {
count[2]++;
}
}
maxcount = Math.max(...count);
//Math.max(...array)를 사용해 배열의 최대값을 도출한다.
// maxcount = Math.max.apply(null, count); 동일
// maxcount = Math.max.apply(count[0],count[1],count[2]); 동일
if(count[0] === maxcount){
answer.push(1)
}
if(count[1] === maxcount){
answer.push(2)
}
if(count[2] === maxcount){
answer.push(3)
}
//if조건문을 써서 지정한 index위치에 push해준다.
return answer;
}
주의 해야 할 것 :
1. 배열의 최댓값 구하는 방법
2. 나머지연산자 개념
배열의 최대값을 알아내는 방법
Math.max(...array);
Math.max.apply(null, array);
Math.max.apply(array[0],array[1],array[2]);
나머지연산자를 활용해 if조건문을 생성하여 반복되는 수포자들의 배열을 answer 배열과 비교하기
나머지연산자 (%)
왼쪽 피연산자를 오른쪽 피연산자로 나누었을 때의 나머지 값을 구합니다.
728x90
'Programmers > javascript' 카테고리의 다른 글
[JS] Programmers 정수 제곱근 판별 ☑ (0) | 2022.06.10 |
---|---|
[JS] Programmers 최대공약수와 최소공배수 ☑ (0) | 2022.06.10 |
[JS] Programmers K번째수 ☑ (0) | 2022.06.09 |
[JS] Programmers 이상한 문자 만들기 ☑ (0) | 2022.06.08 |
[JS] Programmers 부족한 금액 계산하기 ☑ (0) | 2022.06.08 |