문제풀이 324

[백준][DFS/BFS] 11724. 연결 요소의 개수 (파이썬/Python)

DFS를 이용한 풀이 방법(재귀 사용) #DFS로 풀기 import sys input = sys.stdin.readline sys.setrecursionlimit(10000) def DFS(x): visited[x] = True #방문한 곳은 방문처리 해준다. for i in graph[x]: if not visited[i]: DFS(i) n, m = map(int,input().split()) # n-정점 개수 / m - 간선 개수 graph = [[] for _ in range(n+1)] visited = [False] * (n+1) cnt = 0 for i in range(m): u, v = map(int,input().split()) graph[u].append(v) graph[v].append(..

[백준][큐 & 덱] 1021. 회전하는 큐 (파이썬/Python)

from collections import deque import sys input = sys.stdin.readline n, m = map(int, input().split()) p = list(map(int, input().split())) dq = deque([i for i in range(1, n+1)]) cnt = 0 for i in p: while True: if dq[0] == i: dq.popleft() break else: if dq.index(i) < len(dq)/2: while dq[0] != i: dq.append(dq.popleft()) cnt += 1 else: while dq[0] != i: dq.appendleft(dq.pop()) cnt += 1 print(cnt) 덱에 ..

[백준][큐 & 덱] 5430. AC (파이썬/Python)

from collections import deque import sys input = sys.stdin.readline t = int(input()) for _ in range(t): p =list(input().rstrip()) n = int(input()) x = deque(input().rstrip()[1:-1].split(",")) flag = 0 #입력받을 수가 0인 경우 빈 리스트를 반환 if n == 0: x = deque() for i in p: if i =="R": x.reverse() elif i == "D": if x: x.popleft() else: print("error") flag = 1 break if flag == 0: print("["+",".join(x)+"]") # 뒤..

[백준][큐 & 덱] 1966. 프린터 큐 (파이썬/Python)

from collections import deque import sys input = sys.stdin.readline t = int(input()) for _ in range(t): n, m = map(int,input().split()) q = deque(list(map(int,input().split()))) cnt = 0 while q: maxQ = max(q) front = q.popleft() m -= 1 if maxQ == front: cnt += 1 if m < 0 : print(cnt) break else: q.append(front) if m < 0 : m = len(q) - 1 # m이 0보다 작아지는 경우는 그 위치만큼 q를 돌려서 확인했다는 것이기 때문에 m < 0 일때 cnt ..