PY-L4-042 / 비동기
gather 결과 순서
고급문제
작업별 지연값 delays를 받습니다. 각 값을 반환하는 코루틴을 gather로 동시에 실행하고 입력 순서대로 결과 리스트를 반환하세요. 실제 대기는 sleep(0)만 사용합니다.
solve(*args) 함수에서 값을 반환하세요. print 출력은 정답 판정에 사용하지 않습니다.
입출력 예시
예제 1
입력: [[3,1,2]] 반환: [3,1,2]
예제 2
입력: [[]] 반환: []
힌트
gather의 결과 순서는 완료 순서가 아니라 인수 순서입니다.
해설·정답 보기
함수는 코루틴을 반환합니다. 채점기는 await 가능한 반환값을 기다리며 실제 시간 지연에 의존하지 않습니다.
import asyncio
def solve(delays):
async def job(value):
await asyncio.sleep(0)
return value
async def main():
return await asyncio.gather(*(job(value) for value in delays))
# Pyodide에서는 이미 이벤트 루프가 실행 중이므로 await 가능한 값을 반환합니다.
return main()solution.py결과 비교
코드는 이 브라우저에 자동 저장돼요.
풀이 결과
코드를 작성하고 채점하기를 눌러보세요.
학습용으로 제공된 조건을 확인해요. 알고리즘 사용 방식·설계 의도는 해설과 함께 비교해보세요.