IV단원 확장 — 게임 시스템 실습과제

학습한 정렬을 인벤토리 정렬(이름순·가격순)로 확장하기 (추가 강의)

← 전체 목차 IV단원 목차

이 페이지는 강의 외 추가 강의예요. IV단원에서 배운 버블·선택·삽입 정렬을 게임의 인벤토리 정렬(이름순, 가격순, 획득 순)이라는 구체적인 시스템으로 확장합니다. 자료구조 복기 → 사용 API → 실제 구현 활용 순으로 짚어요.

정렬 — 인벤토리 정렬 시스템

게임에서 "이름순", "가격순", "획득 순"으로 아이템 목록을 한 줄로 재배치할 때, 비교 정렬(버블·선택·삽입)과 같은 생각이 들어요. 실제로는 정렬 키(이름/가격/날짜)만 정해 주면 됩니다.

RPG 인벤토리. 이름순·가격순으로 슬롯 순서를 바꾸는 게 정렬이다.
인벤토리 슬롯 순서를 바꾸는 것 = 리스트 정렬. 버블·선택·삽입과 같은 비교·교환.

📌 복기: 버블·선택·삽입 정렬

📌 사용하는 파이썬 API

arr[j] > arr[j+1]
인접 두 값 비교. 오름차순이면 "왼쪽이 크면" 자리 바꿈.
arr[j], arr[j+1] = arr[j+1], arr[j]
두 칸의 값을 한 줄에 스왑. 임시 변수 없이 맞바꿀 수 있어요.
리스트.sort(key=...)
실전에서는 내장 정렬을 쓰지만, "어떤 기준으로 비교할지"가 정렬 알고리즘에서 배운 비교·스왑과 같아요. key로 이름/가격 등을 지정.

🎮 실제 구현에서 쓰는 곳

🐍 실습: 버블 정렬

인벤토리를 "이름순"으로 보여주고 싶다면, 아이템 이름 리스트를 정렬한 뒤 그 순서대로 그리면 됩니다. 파이썬에서는 items.sort(key=lambda x: x["name"])처럼 키를 지정해 정렬할 수 있어요.