본문 바로가기

프로그래밍

[백준 3184 파이썬 ] 양 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 # 3184 양 # BFS # PyPy3 180 ms # BFS 이동 dx = [0,1,0,-1] dy = [-1,0,1,0] def bfs(x,y): queue = [(x,y)] o, v = 0, 0 while queue: x, y = queue.pop() if board[x][y]=='v': v +=1 if board[x][y]=='o': o +=1 board[x][y]='#' for i in range(4): nx = x + dx[i] ny = y + dy.. 더보기
[백준 7459 파이썬] 토마토 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 # 7459 토마토 # BFS # PyPy3 1504 def count_zero(board): # 0이 몇개 있는지 파악합니다. count = 0 for i in range(M): for j in range(N): for h in range(H): if board[h][i][j] == '0': count +=1 return count # BFS 이동 .. 더보기
[백준 3055 파이썬] 탈출 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 # 3055 탈출 # BFS # Python 780ms dx = [0,1,0,-1] dy = [-1,0,1,0] def move(x,y): global stop SET = False for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0 더보기
[백준 6603 파이썬] 로또 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 # 6603 로또 # 조합 # Python 64ms def comb(lst, index, cur): if len(cur)==6: for i in cur: print(i, end=" ") print() else: for i in range(index+1, len(lst)): cur.append(lst[i]) comb(lst, i, cur) cur.pop() while True: IN = input() if IN =='0': break else: lst = list(map(int, IN.split()))[1:] lst.sort() for i in range(len(lst.. 더보기
[백준 7562 파이썬] 나이트 이동 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 # 7562 나이트 이동 # BFS # Pypy3 752ms dx = [-2, -1, 1, 2, -2, -1, 1 ,2] dy = [-1, -2, -2, -1,1, 2, 2, 1] def bfs(start, end): queue = [start] board[start[0]][start[1]]=1 while queue: pos = queue.pop(0) if end[0]==pos[0] and end[1]==pos[1]: return board[pos[0]][pos[1]]-1 for i in range(8): n.. 더보기
[백준 10026 파이썬] 적록색약 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 # 10026 적록색약 # BFS # Python 112 ms dx = [1, 0, -1, 0] dy = [0, 1, 0, -1] region1 = 0 region2 = 0 def bfs_rg(start): #초록색과 빨간색을 같은 그룹으로 파악 queue = [start] color = board1[start[0]][start[1]] if co.. 더보기
[백준 2583 파이썬] 영역구하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 # 2583 영역구하기 # BFS # Python 60ms M, N, K = map(int, input().split()) board = [[0 for _ in range(N)] for _ in range(M)] def color_board(Lx, Ly, Rx, Ry): for i in range(Lx, Rx): for j in range(Ly, Ry): board[j][i]= 1 for i in range(K): # Color the board Lx, Ly, .. 더보기
[백준 11724 파이썬] 연결 요소의 개수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 # 11724번 연결 요소의 개수 # DFS # PyPy3. Python으로 할 경우 Runtime Error N, M = map(int, input().split()) graph = [[] for _ in range(N+1)] nodes = [i for i in range(1, N+1)] count = 0 for i in range(M): a,b = map(int, input().split()) graph[a].append(b) graph[b].append(a) def dfs(queue, visited): global no.. 더보기