[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.
[백준 4179번] 불!
4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net from collections import deque r,c = map(int,input().split()) maze = [list(input()) for _ in range(r)] visited = [[-1]*c for _ in range(r)] dx = [-1,1,0,0] dy = [0,0,-1,1] fire_list = [] for i in range(r): for j in range(c): if maze[i][j] == "J": start..
2023. 10. 3.
[백준 2178번] 미로 탐색
2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net from collections import deque n,m = map(int,input().split()) maze = [list(map(int,list(input()))) for _ in range(n)] visited = [[-1]*m for _ in range(n)] dx = [-1,1,0,0] dy = [0,0,-1,1] def bfs(): visited[0][0] = 1 queue = deque([(0,0)]) while queue: cur_x,cur_y = queue.popleft..
2023. 10. 3.