이 프로그램에서는 사용자로부터 입력받아 리스트를 생성하며, 리스트에는 홀수와 짝수가 뒤섞인 요소들이 들어 있습니다. 우리가 해야 할 과제는 이 리스트를 두 개의 리스트로 분리하는 것입니다. 하나는 홀수 요소만 담고, 다른 하나는 짝수 요소만 담습니다.
예제
입력: [1, 2, 3, 4, 5, 9, 8, 6] 출력: 짝수 리스트: [2, 4, 8, 6] 홀수 리스트: [1, 3, 5, 9]
알고리즘
1단계 : 사용자 입력으로 리스트를 생성합니다. 2단계 : 홀수 전용과 짝수 전용으로 빈 리스트 두 개를 준비합니다. 3단계 : 메인 리스트의 각 요소를 순회합니다. 4단계 : 각 요소를 2로 나눈 나머지가 0이면 짝수이므로 짝수 리스트에 추가하고, 그렇지 않으면 홀수이므로 홀수 리스트에 추가합니다.
예제 코드
# 파이썬 코드 - 짝수 리스트와 홀수 리스트로 분할
# 분할 함수
def splitevenodd(A):
evenlist = []
oddlist = []
for i in A:
if (i % 2 == 0):
evenlist.append(i)
else:
oddlist.append(i)
print("Even lists:", evenlist)
print("Odd lists:", oddlist)
# 드라이버 코드
A=list()
n=int(input("Enter the size of the First List ::"))
print("Enter the Element of First List ::")
for i in range(int(n)):
k=int(input(""))
A.append(k)
splitevenodd(A)
실행 결과
Enter the size of the First List :: 8 Enter the Element of First List :: 1 2 3 4 5 9 8 6 Even lists: [2, 4, 8, 6] Odd lists: [1, 3, 5, 9]
코드 핵심 포인트
이 코드의 핵심은 나머지 연산자(%)입니다. 어떤 수를 2로 나눈 나머지가 0이면 짝수, 1이면 홀수라는 성질을 이용해 요소를 분류합니다. 함수 splitevenodd()는 리스트를 인자로 받아 순회하면서 조건에 따라 각각의 빈 리스트에 요소를 추가한 뒤 결과를 출력합니다.
더 간결한 방법: 리스트 컴프리헨션 활용
반복문과 조건문 대신 파이썬의 리스트 컴프리헨션(list comprehension)을 사용하면 같은 작업을 한 줄로 처리할 수 있습니다.
def splitevenodd_v2(A):
evenlist = [x for x in A if x % 2 == 0]
oddlist = [x for x in A if x % 2 != 0]
print("Even lists:", evenlist)
print("Odd lists:", oddlist)
리스트 컴프리헨션 방식은 코드가 더 짧고 가독성이 좋아 실무에서 자주 사용됩니다. 다만 초보자에게는 반복문 버전이 동작 원리를 이해하는 데 더 도움이 될 수 있습니다.