코딩테스트 연습 > 코딩테스트 입문 > 짝수 홀수 개수

2024. 9. 5. 08:26PYTHON

문제

 

정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.

 

입출력 예

num_list result
[1, 2, 3, 4, 5] [2, 3]
[1, 3, 5, 7] [0, 4]

 

입출력 예 설명

입출력 예 #1

[1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다.

 

입출력 예 #2

[1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다. 

 

num_list = []
def solution(num_list):
    even_num_list = []
    odd_num_list = []

    for i in num_list:
        if num_list[i] % 2 == 0:
            even_num_list.append(num_list[i])
        else:
            odd_num_list.append(num_list[i])
    
    return (len(even_num_list), len(odd_num_list))

틀렸다.

 

수정된 정답. num_list[i] 대신 i를 사용. 

def solution(num_list):
    even_num_list = []
    odd_num_list = []

    for i in num_list:
        if i % 2 == 0:  # num_list[i] 대신 i를 사용
            even_num_list.append(i)
        else:
            odd_num_list.append(i)
    
    return (len(even_num_list), len(odd_num_list))

 

 

for문을 확실히 이해하기

num_list = [2, 4, 6]
for i in num_list:
    print(i)

 

num_list변수에 [2, 4, 6] 리스트를 넣는다.

num_list안을 순회하며 반복한다.

리스트의 i번째를 출력한다.

 

num_list = [2, 4, 6]
for i in range(len(num_list)):  # 인덱스 i를 0부터 2까지 가져옴
    print(num_list[i])  # 인덱스를 통해 리스트 값에 접근

 

내가 짠 코드처럼 num_list[i] 를 사용하고싶었다면 for문의 둣부분을 range(len(num_list))

이렇게 짰어야 한다.

 

내가 짠 코드로 정답. 만들기

 

num_list = []
def solution(num_list):
    even_num_list = []
    odd_num_list = []

    for i in range(len(num_list)):
        if num_list[i] % 2 == 0:
            even_num_list.append(num_list[i])
        else:
            odd_num_list.append(num_list[i])
    
    return (len(even_num_list), len(odd_num_list))