[Python] 코딩 도장 - 홀수와 짝수의 개수 구하기

Updated:

코딩 도장 사이트의 문제를 직접 풀어본 내용을 정리하여 올립니다.

코딩 도장에서 여러 문제를 확인할 수 있습니다.

난이도 순으로 차근차근 풀어보려 합니다.


[문제: 홀수와 짝수의 개수 구하기] - Lv.1

홀수와 짝수의 개수를 구하는 프로그램을 만들어라.

[3, 4, 5, 6, 7]
= 홀수 3개, 짝수 2개
[12, 16, 22, 24, 29]
= 홀수 1개, 짝수 4개 
[41, 43, 45, 47, 49]
= 홀수 5개, 짝수 0개

홀수 : 2로 나누어 떨어지지 않는 정수
짝수 : 2로 나누어 떨어지는 정수

출처: https://codingdojang.com/scode/613?answer_mode=hide


[풀이]

def f(x):
    return x % 2

def odd_even(x):
    x2 = list(map(f,x))
    odd = sum(x2)
    even = len(x2) - sum(x2)
    
    print(f"{x} = 홀수 {odd}개 짝수 {even}개")
    
x = [12, 16, 22, 24, 29]

odd_even(x)

우선 map()을 이용해서 기존 리스트를 2로 나누었을 때 나머지 값을 리스트로 생성하였다.

나머지 값을 더한 값은 홀수의 갯수가 될 것이고 전체 길이에서 홀수의 갯수를 빼 짝수의 갯수를 구하였다.


[추천 풀이]

def count_odd_n_even(lst):
    odd = len([x for x in lst if x % 2 == 1])
    return (odd, len(lst) - odd)


내가 map()을 써서 나누었다면 이 분은 한줄 for문을 이용해서 동일한 작업을 해주었다.

Leave a comment