나는 이렇게 학습한다/Algorithm & SQL

0209. Sort Out The Men From Boys

daco2020 2023. 2. 9. 01:02
반응형

Scenario

Now that the competition gets tough it will Sort out the men from the boys .

Men are the Even numbers and Boys are the odd!alt!alt

Task

Given an array/list [] of n integers , Separate The even numbers from the odds , or Separate the men from the boys!alt!alt

Notes

Return an array/list where Even numbers come first then odds

Since , Men are stronger than Boys , Then Even numbers in ascending order While odds in descending .

Array/list size is at least 4 .

Array/list numbers could be a mixture of positives , negatives .

Have no fear , It is guaranteed that no Zeroes will exists .!alt Repetition of numbers in the array/list could occur , So (duplications are not included when separating).

Input >> Output Examples:

menFromBoys ({7, 3 , 14 , 17}) ==> return ({14, 17, 7, 3}) 

Explanation:

Since , { 14 } is the even number here , So it came first , then the odds in descending order {17 , 7 , 3} .

menFromBoys ({-94, -99 , -100 , -99 , -96 , -99 }) ==> return ({-100 , -96 , -94 , -99})

Explanation:

Since , { -100, -96 , -94 } is the even numbers here , So it came first in ascending order , then the odds in descending order { -99 }

Since , (Duplications are not included when separating) , then you can see only one (-99) was appeared in the final array/list .

menFromBoys ({49 , 818 , -282 , 900 , 928 , 281 , -282 , -1 }) ==> return ({-282 , 818 , 900 , 928 , 281 , 49 , -1})

Explanation:

Since , {-282 , 818 , 900 , 928 } is the even numbers here , So it came first in ascending order , then the odds in descending order { 281 , 49 , -1 }

Since , (Duplications are not included when separating) , then you can see only one (-282) was appeared in the final array/list .



Solution:

def men_from_boys(arr):
    evens, odds = [], []
    [odds.append(i) if i%2 else evens.append(i) for i in sorted(set(arr))]
    return evens + odds[::-1]


반응형

'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글

0210. Is it a number?  (0) 2023.02.10
0209. Sort the Gift Code  (0) 2023.02.09
0207. Divide and Conquer  (0) 2023.02.08
0206. Find the nth Digit of a Number  (0) 2023.02.07
0205. pick a set of first elements  (0) 2023.02.05