문제

여러 개의 시퀀스를 입력받아, 그중 가장 많은 요소를 가진 시퀀스를 반환하는 함수 longest()를 정의해 보라. 다음은 이 함수의 실행 예이다.

>>> longest([1, 2, 3], (4, 5), [], 'abcdefg', range(5))
'abcdefg'

>>> longest('파이썬', '프로그래밍')
'프로그래밍'

>>> longest(range(10), range(100), range(50))
range(0, 100)

코드

def longest(*sequences):
    """여러 개의 시퀀스를 전달받아 요소의 개수가 가장 많은 시퀀스를 반환한다."""
    winner = []
    for sequence in sequences:
        if len(winner) < len(sequence):
            winner = sequence
    return winner

# 함수의 동작 확인
print(longest([1, 2, 3], (4, 5), [], 'abcdefg', range(5)))
print(longest('파이썬', '프로그래밍'))
print(longest(range(10), range(100), range(50)))

실행 결과

abcdefg
프로그래밍
range(0, 100)

해설

def longest(*sequences):
    return max(*sequences, key=len)