[Python] deque를 활용하여 리스트 회전하기
deque.rotate()를 사용해서 리스트 회전하기 >>> from collections import deque >>> test = [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> test = deque(test) >>> test.rotate(2) >>> result = list(test) >>> result [8, 9, 1, 2, 3, 4, 5, 6, 7] 알고리즘을 풀다보면 리스트를 회전하는 문제에 많이 직면하게 된다. 이는 python collection 모듈의 deque 자료형을 사용하면 쉽게 처리할 수 있다. 리스트 자료형을 deque자료형으로 바꾼후 rotate()함수를 이용하면 된다. 함수안에 음수를 넣게 된다면 왼쪽 회전 양수는 오른쪽 회전이다.
2023. 10. 5.
[Tree] Queue를 이용한 레벨 순서 순회
레벨 순서 순회는 직관적이어서 쉽다. 과정을 나열하면 아래와 같다. 루트부터 방문하고, 루트의 왼쪽과 오른쪽을 방문한다. 루트 왼쪽 노드의 왼쪽과 오른쪽을 방문한다. 루트 오른쪽 노드의 왼쪽과 오른쪽을 방문한다. 즉, 현재 노드를 방문할 때 현재 노드의 왼쪽과 오른쪽 노드를 차례로 큐에 넣어 둔다. 그리고, 큐에서 순서대로 꺼내서 같은 방식으로 처리한다. 여기서는 파이썬의 리스트를 Queue로 사용한다. from collections import deque tree = ["A", "B", "C", "D", "E", "F", None, "G"] def levelorder(tree): if not tree: return queue = deque([0]) while queue: parent = queue.po..
2023. 9. 7.