arr = [[0]*5 for _ in range(5)]
a, b = [int(x) for x in input().split()]
graph = [[int(x) for x in input()] for _ in range(n)]
s.split()
"".join(l)
a = set()
a = set([1, 2, 3, 3])
a = set()
a.add(1)
a.discard(x)
a.remove(x) # 없으면 error
d = {}
d["c"] = 3 # 추가
d["c"] = 10 # 갱신
d["a"]
d.get("a")
d.pop("a")
del d["b"]
for k, v in d.items():
sorted(d.items(), key=lambda x: x[1], reverse=True) # list 리턴 [(k, v), ...]
# from itertools import permutations, combinations
# l = ['a', 'b', 'c']
# nCr = list(combinations(l,2))
# print(nCr)
import heapq
seq = [7, 2, 9, 4, 1, 5, 6, 8, 3]
pq = []
for x in seq:
heapq.heappush(pq, x)
pq = seq[:]
heapq.heapify(pq)
# 최대힙 내림차순
pq = []
for num in nums:
heapq.heappush(pq, (-num, num))
while heap:
print(heapq.heappop(pq)[1])
from collections import deque
que = deque()
que2 = deque([1, 2, 3])
que2.popleft()
from collections import deque
import sys
sys.setrecursionlimit(10 ** 6)
n, m, start = [int(x) for x in input().split()]
graph = [[] for _ in range(n + 1)]
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a) # 무방향일 때
for i in range(1, n + 1):
graph[i].sort() # 방문 순서 고정(필요 시)
def dfs(start: int):
visited = [False] * (n + 1)
order = []
def rec(u):
visited[u] = True
order.append(u)
for w in graph[u]:
if not visited[w]:
rec(w)
rec(start)
return order
def bfs(start: int):
visited = [False] * (n + 1)
q = deque([start])
visited[start] = True
order = []
while q:
u = q.popleft()
order.append(u)
for w in graph[u]:
if not visited[w]:
visited[w] = True
q.append(w)
return order
print(*dfs(start))
print(*bfs(start))
def binary_search(target, arr):
arr.sort()
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if data[mid] == target:
return mid # 함수를 끝내버린다.
elif data[mid] > target:
right = mid -1
else:
left = mid + 1
return -1
#list로 받기
a = [int(x) for x in input().split()]
# 정수 세 개 입력 시, 각각 int type으로 입력 받기
a, b, c = [int(x) for x in input().split()]
5
01010
11100
11010
00001
10110
n = int(input())
graph = [[int(x) for x in input()] for _ in range(n)]
input() → '01010'
for x in input() → '0', '1', '0', '1', '0'
결과: [0, 1, 0, 1, 0]
5
0 1 0 1 0
1 1 1 0 0
1 1 0 1 0
0 0 0 0 1
1 0 1 1 0
n = int(input())
graph = [[int(x) for x in input().split()] for _ in range(n)]
input() → '0 1 0 1 0'
.split() → ['0', '1', '0', '1', '0']
결과: [0, 1, 0, 1, 0]
map = []
for i in range(n):
l = list(input())
map.append(l)
print(i, end=' ')
//출력 후 개행하지 않고 띄어쓰기
l = [1, 3, 5]
print(*l)
# 1 3 5
arr1 = [[] for i in range(5)]
# [[], [], [], [], []]
arr2 = [0]*5
# [0, 0, 0, 0, 0]
arr3 = [0 for _ in range(5)]
# [0, 0, 0, 0, 0]
arr4 = [[0] for _ in range(5)]
# [[0], [0], [0], [0], [0]]
arr5 = [[0]*5 for _ in range(5)]
# [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
arr6 = [[0 for _ in range(5)] for _ in range(5)]
# [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
l = [[]] * 5
print(l)
l[2].append(1)
print(l)
# [[], [], [], [], []]
# [[1], [1], [1], [1], [1]]
정리 : https://velog.io/@sangyun/%EB%AC%B8%EC%9E%90%EC%97%B4
정리 : https://velog.io/@sangyun/Priority-Queue
import heapq
pq = []
heapq.heappush(pq, (a,b))
heapq.heappop(pq)

from collections import deque
que = deque()
que2 = deque([1, 2, 3])
que2.popleft()
print(que2) # deque([2, 3])
a = bin(13)
# '0b1101'
a = 0b11010
# 13
a = int('1101', 2)
# 13
b |= (1 << n)
S &= ~(1 << n)
# 10억 이내 범위에서 최대값, 최소값
INF = int(1e9)
INF = int(-1e9)
# int범위 내 최대값
INF = int(2e9)

from itertools import permutations
arr = ['A', 'B', 'C']
nPr = permutations(arr, 2)
print(list(nPr))
# [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]

from itertools import combinations
arr = ['A', 'B', 'C']
nCr = combinations(arr, 2)
print(list(nCr))
# [('A', 'B'), ('A', 'C'), ('B', 'C')]
import sys
sys.setrecursionlimit(10 ** 6)