포스트 난이도: HOO_Middle
# Array = [][]
Multidimensional arrys (다차원 배열)이 별도의 문제로 나올 가능성은 적지만, 문제를 풀기 위해서 알아둬야 하는 필수 요소인 건 확실하다. 왜냐하면 나 또한 최근 들어 많이 봤기 때문이다. 마치 고추장이 단일 메뉴로 나오지는 않지만 많은 한국 음식에 들어가는 필수 재료이듯이 파이썬 코딩 테스트에서도 다차원 배열을 기반으로 한 문제들이 많이 나오는 편이다. 그래서 다차원 배열에 대해서 알아둘 필요가 있는데, 언제나 그렇듯 파이썬에서 어떤 funcitons을 쓴다는 건 매우 간단한 일이다. (최근 들어 AI가 있기에 기억이 가물가물할 뿐)
apartmentBuilding = [
["Apt 101", "Apt 102", "Apt 103"],
["Apt 201", "Apt 202", "Apt 203"],
["Apt 301", "Apt 302", "Apt 303"]
]
# Aggiorna "Apt 202" in "Renovated Apt 202"
apartmentBuilding[1][1] = "Renovated Apt 202"
# Stampa tutti gli appartamenti dopo l'aggiornamento
for floor in apartmentBuilding:
for unit in floor:
print(unit + ", ", end='')
print() # Passa al piano successivo

위의 예제를 살펴보면, 아파트 호수로 이뤄진 2D array (2차 배열)로 이뤄진 걸 알 수 있다. 사실 List (리스트)라고 부르지만 공통적으로 이러한 기능을 2차 배열이라고 다른 프로그래밍 언어에서도 부르기 때문에 명칭 상관없이 이해하면 된다. 거두절미하고 선언된 배열을 가져와 사용하고 싶다면 "apartmentBuilding[1][1]" 처럼 선언된 배열 (또는 리스트) 명과 []를 통해서 원하는 값의 위치를 불러올 수 있다. 만일 2차 배열이상, 예를 들어 3차 배열일 경우에는 [][][] 이렇게 작성해 주면 된다. 4차원도 마찬가지이고 이 외의 다차원도 원리는 동일하다. 하지만 2차원까지만 연습해 봐도 되는 게 2차원보다 큰 배열로 이뤄진 문제를 본 적이 거의 없다. (솔직히 개인적으로 2-3번 빼고는 없던 것 같다.) Again, 2차원 이상을 사용하는 방법을 알아는 놔야 하지만, 파이썬 코딩 테스트를 준비한다면 2차원 배열까지만 연습해 봐도 충분하다.
# Creiamo un edificio con 2 piani e 3 appartamenti per piano
# Per ogni appartamento - il primo elemento è il numero dell'appartamento, il secondo è lo stato di occupazione (True - Occupato, False - Libero)
building = [
[("101", True), ("102", False), ("103", False)],
[("201", True), ("202", True), ("203", False)]
]
for floor in building:
for apt in floor:
if not apt[1]: # Controllo dello stato di occupazione
print(f"Apartment {apt[0]} is not occupied.")

위의 예제도 특별히 다른 점은 없고 2차 배열 사용하는 방법에 대한 복습이다. 배열과는 상관없지만 첫번째 예제에서는 List(리스트)만 사용이 되었다면 여기는 Tuple (튜플)을 같이 사용하고 있다. 리스트와 튜플의 차이점을 짚고 넘어가자면 수정이 가능한 거와 불가능한 거라고 한마디로 말할 수 있다. 당연히 수정이 불가능하니까 상대적으로 튜플이 가볍고 처리속도가 빠르기 때문에 고정된 값을 사용해도 된다면 튜플을 활용하는 것이 좋다. (이건 당신의 AI 주니어 개발자한테 알려줘야 할 내용이다.)
위의 나오는 결과에 대해서 설명하자면, 배열 안에 booleand을 사용함으로써 "if not" 조건문을 통해서 "ture"와 "false"를 구분할 수 있다. 여기에 "apt[1]"은 두 번째 배열을 의미하기 때문에 false가 되어 있는 102, 103, 203호가 빈방이라고 출력되는 걸 확인할 수 있다. 참고로 파이썬을 자주 안 쓰다 보면 배열 정의하고 선언하는 과정이 종종 헷갈리는데 (왜냐하면 C 하다가 보면 너무 생략되어서 머리가 안 돌아가기 때문이다.) for 문에서 "floor"라는 걸 선언하고 "in building"을 통해서 우리는 "building"이라는 배열이 "floor"에 사용되는 걸 정의와 선언을 동시에 한다. 이후에 nested for loop이라고 부르는 다중 for문을 통해서 "apt"가 "floor"를 사용한다고 정의하면 결국 building -> floor -> apt가 완성되어서 "building"배열이 "apt"인 셈이다.
'Programming Languages > Python' 카테고리의 다른 글
| [파이썬 코딩 테스트] Private Methods (0) | 2026.03.11 |
|---|---|
| [파이썬 코딩테스트] 캡슐화 (encapsulation)에서 private methods 사용하기 (0) | 2026.03.02 |
| [파이썬 코딩 테스트] 캡슐화 (Encapsulation) (3) | 2026.02.28 |
| [파이썬 코딩 테스트] 데이터 구조 파악하고 변환하기 (0) | 2026.02.19 |
| [파이썬 코딩 테스트] 재고 관리와 Dictionary (0) | 2026.02.16 |
댓글