https://www.codewars.com/kata/5526fc09a1bbd946250002dc
Codewars - Achieve mastery through coding practice and developer mentorship
A coding practice website for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages!
www.codewars.com
DESCRIPTION:
You are given an array (which will have a length of at least 3, but could be very large) containing integers. The array is either entirely comprised of odd integers or entirely comprised of even integers except for a single integer N. Write a method that takes the array as an argument and returns this "outlier" N.
Examples
[2, 4, 0, 100, 4, 11, 2602, 36]
Should return: 11 (the only odd number)
[160, 3, 1719, 19, 11, 13, -21]
Should return: 160 (the only even number)
설명:
정수를 포함하는 배열(길이가 최소 3이지만 매우 클 수도 있음)을 받습니다. 배열은 하나의 정수 N을 제외한 나머지가 전부 홀수로 구성되거나 전부 짝수로 구성됩니다. 배열을 인수로 받아 "이상 값"N을 반환하는 메서드를 작성하세요.
예시
[2, 4, 0, 100, 4, 11, 2602, 36]
Should return: 11 (the only odd number)
[160, 3, 1719, 19, 11, 13, -21]
Should return: 160 (the only even number)
풀이
반복문으로 배열에 홀수인 요소와 짝수인 요소의 개수를 각각 세고 만약 홀수라면 1을 짝수라면 0을 배열에 따로 넣어주었다. 1번만 세어진 경우 그 수가 이상 값이므로 만약 그 수가 짝수라면 0, 홀수라면 1의 위치를 배열에서 찾고 그 위치에 있는 주어진 배열의 요소를 반환했다.
코드
function findOutlier(integers){
let check = [];
let evenCount = 0;
let oddCount = 0;
let checkNum = 0;
for(let i = 0; i < integers.length; i++){
if(integers[i] % 2 == 0){
check.push(0);
evenCount += 1;
}
else{
check.push(1);
oddCount += 1;
}
}
if(oddCount === 1){
checkNum = 1
}
let idx = check.indexOf(checkNum);
return integers[idx];
}
다른 사람의 좋았던 풀이
function findOutlier(int){
var even = int.filter(a=>a%2==0);
var odd = int.filter(a=>a%2!==0);
return even.length==1? even[0] : odd[0];
}'알고리즘 > Codewars' 카테고리의 다른 글
| [Codewars] Grasshopper - Basic Function Fixer (8 kyu) / JavaScript (0) | 2022.11.17 |
|---|---|
| [Codewars] Function 1 - hello world (8 kyu) / JavaScript (0) | 2022.11.16 |
| [Codewars] Sum without highest and lowest number (8 kyu) / JavaScript (0) | 2022.11.14 |
| [Codewars] Removing Elements (8 kyu) / JavaScript (0) | 2022.11.12 |
| [Codewars] Build Tower (6 kyu) / JavaScript (0) | 2022.11.11 |
댓글