[2021-05-03] 짝수/홀수 분별하기 본문

code/Daily Side Project

[2021-05-03] 짝수/홀수 분별하기

남우p 2021. 4. 30. 18:02

 

Question : 

짝수 중에 홀수 하나, 홀수 중에 짝수 하나 걸러내기


Answer : 

function iqTest(numbers){
  var number = numbers.split(" ");
  var length = number.length;
  var trueCount = 0;
  var falseCount = 0;
  var number2 = number.map(x => parseInt(x));
  var odd = number2.map(x => (x % 2 === 1) ? true : false);
  var result;
  for(var i = 0;i < length;i++){
   if(odd[i] === true){
      trueCount++; 
    } else {
      falseCount++;
    }
  }
  if(trueCount < falseCount){
    result = odd.indexOf(true) + 1; 
  } else {
    result = odd.indexOf(false) + 1;
  }
  return result;

}

 

AnotherAnswer1 : 

function iqTest(numbers){
  numbers = numbers.split(" ").map(function(el){return parseInt(el)});
  
  var odd = numbers.filter(function(el){ return el % 2 === 1});
  var even = numbers.filter(function(el){ return el % 2 === 0});
  
  return odd.length < even.length ? (numbers.indexOf(odd[0]) + 1) : (numbers.indexOf(even[0]) + 1);
}

 

AnotherAnswer2 :

function iqTest(numbers){
  var nums = numbers.split(" ").map(x => x % 2);  
  var sum = nums.reduce((a,b) => a + b);  
  var target = sum > 1 ? 0 : 1;
  
  return nums.indexOf(target) + 1;
}

 


Review :

주어진 값으로 array를 생성하고 해당 array에서 홀수를 true, 짝수를 false 로 바꿉니다. 

true와 false를 카운팅해서 더 적은 쪽을 반환합니다.

  - 변수 사용횟수를 줄이려고 노력중입니다. 

  - .map() 사용

  - .filter() 사용

Comments