6월, 2024의 게시물 표시

NYPC 문제풀이

이미지
개요 NYPC 는 넥슨에서 개최하는 청소년 프로그래밍 대회입니다. 매년 여름방학 시즌에 진행되어 비교적 학업에 지장을 덜 받고 출전해 볼 수 있습니다. 학원생 중 이 대회를 준비하는 친구들이 많아 문제풀이를 지속적으로 업데이트할 계획입니다. 자세한 대회 세부 요강 및 기출문제는 NYPC 홈페이지 를 참조하기 바랍니다.

파이썬 성능을 극대화하는 테크닉

이미지
개요 파이썬의 성능을 올리는 프로그래밍 팁 은 여러 가지가 있습니다. 여기 몇 가지 유용한 팁과 예시를 소개하겠습니다. 1. 리스트 컴프리헨션 사용 리스트 컴프리헨션 (List Comprehension) 은 for 루프를 사용한 리스트 생성보다 더 빠르고 간결합니다. 소규모 배열보다 대규모 배열 생성시 그 차이를 체감할 수 있습니다. # 일반적인 방법 squares = [] for x in range(10): squares.append(x**2) print(squares) # 리스트 컴프리헨션 사용 squares = [x**2 for x in range(10)] print(squares) 결과는 동일합니다. 참고로 "전문가를 위한 파이썬" 에서 저자인 루시아누 하말류는 List Comprehension을 "지능형 리스트" 라고 표현합니다. 지능형리스트나 리스트 컴프리헨션이나 이름이 중요하진 않지만 용어가 친숙하면 두려움없이 다가가는데 도움이 됩니다. 2. 제너레이터 사용 리스트나 튜플(Tuple) 대신 제너레이터(Generator)를 사용하면 메모리 사용을 줄일 수 있습니다. # 리스트 사용 nums = [x for x in range(1000000)] # 제너레이터 사용 nums = (x for x in range(1000000)) 리스트는 모든 요소를 메모리에 한 번에 저장합니다. 즉 리스트의 크기만큼 메모리가 필요합니다.  이를 위해 필요한 메모리 공간이 충분히 확보되어야 하며, 큰 리스트를 만들 경우 메모리 사용량이 급격히 증가할 수 있습니다. 반면, 제너레이터는 필요할 때마다 요소를 하나씩 생성합니다. 제너레이터는 전체 데이터를 한 번에 메모리에 올리지 않고, 데이터를 필요로 할 때 생성하여 처리하므로 메모리 사용이 매우 적습니다.   3. 내장 함수 사용 파이썬의 내장 함수(Built-in ...

이 블로그의 인기 게시물

Qt Designer 설치하기

PyQt5 기반 동영상 플레이어앱 만들기