본문 바로가기
내가 공부하려고 올리는/TIL

2022-07-20 TIL

by 결딴력 2022. 7. 21.
반응형

 

 스택

- 선입 후출

- append(), pop() 메서드 사용 가능

- 스택 최상단 원소부터 출력하는 방법

print(stack[::-1])

 

 

- 선입선출

- from collections import deque

- 큐 규현을 위해 deque 라이브러리 사용

- queue = deque()

- append(), popleft() 메서드 사용 가능

- queue.reverse()로 역순 정렬 가능

 

 

재귀 함수

- 자기 자신을 다시 호출하는 함수

- 재귀 함수는 스택 자료 구조를 이용하기 좋다.
- 마지막에 호출된 함수가 수행을 끝내야 그전에 호출된 함수가 실행될 수 있기 때문

- 스택 자료구조로 재귀 함수를 이용하는 대표적 알고리즘은 DFS

 

 

DFS

- 깊이 우선 탐색(Depth First Search)

- 인접 행렬을 사용하는 것이 좋다.

- 데이터 개수가 N개인 경우 O(N)의 시간이 소요

 

 

BFS

- 너비 우선 탐색(Breadth First Search)

- 가까운 노드부터 탐색하는 알고리즘

- 선입선출 방식인 큐 자료구조를 이용하는 것이 좋다.

- 데이터 개수가 N개인 경우 O(N)의 시간이 소요

 

 

2차원 리스트 입력받기

n, m = map(int, input().split())

graph = []
for i in range(n):
	graph.append(list(map(int, input()))

 

2차원 배열 0으로 초기화하기

graph = [[0]*m for _ in range(n)]

 

 

깊은 복사

- 파이썬 리스트를 얕은 복사하는 경우 복사한 객체에 변경이 있으면 원본에도 변화가 생김

- 이 문제를 해결하려면 깊은 복사를 사용해야 한다.

- copy 라이브러리에서 제공하는 deepcopy() 함수를 사용하면 깊은 복사가 가능하다

import copy

n = int(input())
graph = []
for i in range(n) :
  graph.append(list((input())))
m = len(graph)

graph_rg = copy.deepcopy(graph)
for i in range(n) :
  for j in range(m) :
    if graph_rg[i][j] == 'G' :
      graph_rg[i][j] = 'R'
반응형

'내가 공부하려고 올리는 > TIL' 카테고리의 다른 글

2022-07-29 TIL  (0) 2022.07.30
2022-07-27 TIL  (0) 2022.07.27
2022-07-26 TIL  (0) 2022.07.27
2022-07-22 TIL  (0) 2022.07.22
2022-07-21 TIL  (0) 2022.07.21

댓글