2차원 배열 탐색
목적에 따라 여러가지 방법으로 2차원 배열을 탐색할 수 있다. # 2차원 배열 arrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 1. 행 & 열 우선 탐색 # 행우선 for i in range(len(arrs)): for j in range(len(arrs[0])): print(arrs[i][j], end=' ') print() # 열우선 for j in range(len(arrs[0])): for i in range(len(arrs)): print(arrs[i][j], end=' ') print() # 2. 지그재그 순회 # 지그재그 순회 for i in range(len(arrs)): for j in range(len(arrs[0])): print(arrs[i][j + (i..
2021. 8. 22.
정렬 알고리즘
정렬을 구현하는 알고리즘은 여러가지가 있다. 이번 글에서는 그 중 3가지의 방법을 정리하고자 한다. 다음과 같은 배열이 있다고 가정하자. arr = [4, 2, 9, 3, 10, 5, 2, 7, 8, 6, 10] # 1 - Bubble sort - 리스트 내의 원소들을 하나하나 비교해가며, 큰 값을 오른쪽으로 이동시키는 방식이다. # Bubble sort for i in range(len(arr)-1, 0, -1): for j in range(i): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] print(arr) # 2 - Counting sort - 리스트의 각 원소들이 몇 번 등장하는지 count하여 정렬을 하는 방식이다. - 시간복잡도가 줄..
2021. 8. 21.
2차원 배열 회전
다음과 같은 2차원 배열이 있다고 할 때, 배열을 시계 방향으로 90도 회전하는 방법을 알아보자. nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 다음은 2차원 배열을 90도 회전하기 위한 함수이다. # 2차원 배열을 인자로 받아 90도 회전한 결과를 리턴하는 함수 def rotate(arrs): n = len(arrs) arrs_90 = [[0] * n for _ in range(n)] for i in range(n): for j in range(n): arrs_90[i][j] = arrs[n-1-j][i] return arrs_90 180도는 다음과 같다. 일정 규칙을 찾아, 인덱스를 적절하게 변경해주는 것이 중요하다. def rotate(arrs): n = len(arrs)..
2021. 8. 17.