[javascript]숫자카드나누기

박서연·2022년 11월 30일
0

코테준비

목록 보기
4/8

1. 문제 설명

철수와 영희는 숫자가 적힌 카드들을 절반씩 나눠 가진 후, 두 조건중 하나를 만족하는 가장 큰 양의 정수 a의 값을 구하려고 한다.

  • 조건1. 철수가 가진 카드들에 적힌 모든 숫자를 나눌 수 있지만, 영희가 가진 카드들에 적힌 모든 숫자들은 나눌 수 없어햐 하는 양의 정수 a.
  • 조건2. 영희가 가진 카드들에 적힌 모든 숫자를 나눌 수 있지만, 철수가 가진 카드들에 적힌 모든 숫자들은 나눌 수 없어햐 하는 양의 정수 a.

2. 왜틀렸지?(52점)

function getNum(arrayC) {
  var num = [];
  let count = 0;
  for (let j = 2; j <= arrayC[0]; j++) {
    if (arrayC[0] % j == 0) {
      num.push(j);
    }
  }
  for (let j = 0; j < arrayC.length; j++) {
    for (let n = 0; n < num.length; n++) {
      if (arrayC[j] % num[n] != 0) {
        num.splice(n, 1);
        n--;
      }
    }
  }
  return num;
}
function solution(arrayA, arrayB) {
  var answer = 0;
  var check = 0;
  var num = [];
  var check = [];
  num = getNum(arrayA);
  for (let i = 0; i < arrayB.length; i++) {
    for (let n = 0; n < num.length; n++) {
      if (arrayB[i] % num[n] == 0) {
        num.splice(n, 1);
        n--;
      }
    }
  }
  if (num.length < 1) answer = 0;
  else answer = Math.max.apply(null, num);
  return answer;
}
  • 문제가 쉬운데, 답은 틀렸다고 나오니 도저히 알 수 없는 상황!!
  • 분명 엄청 쉬운 실수라고 믿고, 나중에 다시 풀어보니

3. 조건이 두개였다 (100점)

function solution(arrayA, arrayB) {
  var answer = 0;
  var num = [];
  var max = 0;
  num = getNum(arrayA);
  answer = find_max(num, arrayB);
  num = getNum(arrayB);
  max = find_max(num, arrayA);
  if ( max > answer)
      answer = max;  
  return answer;
}

function find_max(num, arr)
{
  for (let i = 0; i < arr.length; i++) {
    for (let n = 0; n < num.length; n++) {
      if (arr[i] % num[n] == 0) {
        num.splice(n, 1);
        n--;
      }
    }
  }
  if (num.length < 1) return 0;
  else return( Math.max.apply(null, num));
}

function getNum(arrayC) {
  var num = [];
  let count = 0;
  for (let j = 2; j <= arrayC[0]; j++) {
    if (arrayC[0] % j == 0) {
      num.push(j);
    }
  }
  for (let j = 0; j < arrayC.length; j++) {
    for (let n = 0; n < num.length; n++) {
      if (arrayC[j] % num[n] != 0) {
        num.splice(n, 1);
        n--;
      }
    }
  }
  return num;
}
  • 정말 당연한 실수를 발견
  • 조건1만 신경쓰다, 조건2를 잊고있었던 것!!
profile
좋은 사람들과 좋은 시간을 보내기 위한 프론트엔드 개발자

0개의 댓글