백준 2798 번 : 블랙잭
https://www.acmicpc.net/problem/11650

< 문제 요약 >
- x좌표를 먼저 비교하여 작은 좌표부터 정렬하고 x좌표가 같다면 y가 더 작은 좌표 부터 출력
값 2개를 저장할 수 있는 방법에 대해서 생각해 보았을 때, sort함수를 쓰기 위해선 리스트가 적합하다고 생각했고
삼중리스트를 쓴다면 쉽게 풀 수 있을거라고 생각했습니다!
Nested List
파이썬의 리스트에는 독특한 특성이 하나 있습니다.
리스트 안에 리스트가 들어갈 수 있다는 것입니다.
arr = [1, 2, ['a', 'b', ['abc','def']]]
다음 코드에서 리스트 arr 안에 ['a', 'b', ['abc','def']] 가 포함되어 있고, 그 리스트 안에 ['abc','def'] 리스트가 포함되어있는 삼중 구조의 리스트입니다.
이 경우 'abc' 문자열만 끄집어 내려면 다음과 같이 하면됩니다!
a[2][2][0]
저는 이번 문제에서 이 이중리스트를 사용하여 해결했습니다.
< 나의 코드 >
n = int(input())
arr = []
for i in range(n):
a,b = map(int,input().split())
arr.append([a,b]) # [[1,2],[2,3],[2,4]] 와 같은 형식으로 리스트에 저장시킴
arr.sort() # sort함수를 이용하면 이중리스트 값들도 정렬이 됩니다.
for i in range(len(arr)):
for j in range(len(arr[i])):
print(arr[i][j],end=' ')
print()
< 추가 >
문득, Nested Loop는 몇중까지 가능한지 궁금해졌습니다.
찾아 본 결과 이론적으론 제한 없이 많은 차원을 가질 수 있지만,
실제로는 컴퓨터의 메모리 한계와 코드의 복잡성 때문에 2차원 또는 3차원 정도를 사용하는 경우가 많다고 합니다!
arr = [1,[2,[3,[4,[5,[6]]]]]]
print(arr[1][1][1][1][1])
다음과 같은 6차원 list를 만들고 접근했을 때

결과값이 잘 나오는 것을 알 수 있습니다!
'🏅Coding Test' 카테고리의 다른 글
| [파이썬, Python] 백준 10814 : 나이순 정렬 (0) | 2024.02.13 |
|---|---|
| [파이썬, Python] 백준 1181 : 단어 정렬 (1) | 2024.02.11 |
| [파이썬, Python] 백준 2839 : 설탕 배달 (0) | 2024.02.09 |
| [파이썬, Python] 백준 1436 : 영화감독 숌 (0) | 2024.02.09 |
| [파이썬, Python] 백준 19532 : 수학은 비대면강의입니다 (1) | 2024.02.09 |