본문 바로가기
알고리즘/Codewars

[Codewars] Find The Parity Outlier

by 줍 2024. 6. 9.

Q. 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] -->  11 (the only odd number)

[160, 3, 1719, 19, 11, 13, -21] --> 160 (the only even number)

 

S. integers를 짝수인지에 따라 true, false의 리스트로 만들고, true의 갯수가 1이면 아웃라이어가 짝수, 아니면 홀수라고 판별했다.

그리고 그 아웃라이어의 인덱스에 해당하는 수를 리스트에서 검색했다.

int find(List<int> integers) {
  final list = integers.map((e) => e.isEven).toList();
  final outlier = list.where((e) => e == true).length == 1 ? true : false;
  final index = list.indexOf(outlier);
  return integers[index];
}

 

+

똑똑한 사람들이 많다 논리는 비슷하지만 훨씬 간결하당

int find(List<int> integers) {
  List even = [];
  List odd = [];
  integers.forEach((e) => e.isEven ? even.add(e) : odd.add(e));
  return even.length == 1 ? even[0] : odd[0];
}

'알고리즘 > Codewars' 카테고리의 다른 글

[Codewars] Exes and Ohs  (0) 2024.06.10
[Codewars] Create Phone Number  (0) 2024.06.09
[Codewars] You're a square!  (0) 2024.06.09
[Codewars] Stop gninnipS My sdroW!  (1) 2024.06.08
[Codewars] Multiples of 3 or 5  (0) 2024.06.06