ppotatoG


Back to all posts

모의고사

Written by ppotatoG & Posted on November 21st, 2021

모의고사

처음 제출한 답

답을 늘린건, 끝 값에 도달했을 때, 처음 값으로 어떻게 가야할지 몰라서...

뭔가 잘못된것 같긴 하지만 이악물고 끝까지 해냈다

function solution(arr) {
const obj = {
std1 : [1, 2, 3, 4, 5],
std2 : [2, 1, 2, 3, 2, 4, 2, 5],
std3 : [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
}
const values = Object.values(obj);
// 총 문제 길이에 맞춰 수포자의 답 늘리기
for(let i = 0; i < values.length; i++){
const num1 = Math.ceil((arr.length - values[i].length) / values[i].length);
if(values[i].length < arr.length) {
for(let j = 0; j < num1; j++){
values[i].push(Object.values(obj)[i]);;
}
}
}
for(let i = 0; i < values.length; i++){
values[i] = values[i].flat();
for(let k = 0; k < values[i].length; k++){
if(typeof(values[i][k]) === 'object'){
values[i].splice(k, 1);
k--;
}
}
}
let count = [0, 0, 0];
// 학생답안과 모범답안 비교
for(let i = 0; i < values.length; i++){
for(let k = 0; k < arr.length; k++){
if(values[i][k] === arr[k]){
count[i] ++;
}
}
}
// 맞힌 수로 정렬
count = count.map((el, idx) => el = [idx + 1, el]).sort((a, b) => {
if (a[1] > b[1]) return 1;
else if (a[1] < b[1]) return 0;
});
// 조건에 맞춰 반환
if(count[0][1] === count[1][1]){
if(count[1][1] === count[2][1]) {
return [count[0][0], count[1][0], count[2][0]];
}
else {
return [count[0], count[1]];
}
}else return [count[0][0]];
}

두번째

js 연산자 중 나머지연산자는 몫을 반환하는데, 이것을 활용 해 수포자 답을 확인할 수 있음!

아직도 코드가 좀 많이 더럽지만.. 통과한게 어디야!!

function solution(answer) {
const obj = {
std1 : [1, 2, 3, 4, 5],
std2 : [2, 1, 2, 3, 2, 4, 2, 5],
std3 : [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
}
let count = [0, 0, 0];
for(var i = 0; i < answer.length; i++){
if(answer[i] === obj.std1[i % 5]) count[0]++;
if(answer[i] === obj.std2[i % 8]) count[1]++;
if(answer[i] === obj.std3[i % 10]) count[2]++;
}
count = count.map((val, idx) => {
return [idx + 1, val];
}).sort((a, b) => {
if (a[1] < b[1]) return 1;
else if (a[1] > b[1]) return -1;
else return 0;
});
if(count[0][1] === count[1][1]){
if(count[1][1] === count[2][1]) return [count[0][0], count[1][0], count[2][0]];
else return [count[0][0], count[1][0]];
}else return [count[0][0]];
}

Posted on November 21st, 2021