[Coding Test]/[백준]

    [백준] 4963 파이썬(python) : 섬의 개수 - (방향벡터, 대각선)

    [백준] 4963 파이썬(python) : 섬의 개수 - (방향벡터, 대각선)

    4963번: 섬의 개수 import sys sys.setrecursionlimit(10**5) def dfs(x, y): dx = [ -1, 1, 0, 0, -1, -1, 1, 1 ] #1 dy = [ 0, 0, -1, 1, -1, 1, -1, 1 ] for i in range(8): nx = x + dx[i] ny = y + dy[i] if 0

    [백준] 1325 파이썬(python) : 효율적인 해킹 - (★)

    [백준] 1325 파이썬(python) : 효율적인 해킹 - (★)

    1325번: 효율적인 해킹   pypy3로 제출하면 정답처리가 됩니다.  from collections import dequeimport sysn, m = map(int, sys.stdin.readline().split())graph = [ [] for _ in range(n+1) ]for _ in range(m): a, b = map(int, sys.stdin.readline().split()) graph[b].append(a) #1ans = []def bfs(v, visit): q = deque([v]) count = 0 while q: x = q.popleft() for nx in graph[x]: if not visit[nx]..

    [백준] 11404 파이썬(python) : 플로이드

    [백준] 11404 파이썬(python) : 플로이드

    https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net import sys n = int(sys.stdin.readline()) m = int(sys.stdin.readline()) INF = (1e9) graph = [ [INF] *(n+1) for _ in range(n+1) ] for i in range(1, n+1): for j in range(1, n+1): if i == j: graph[i][j] = 0 for i in range(m): s..

    [백준] 1987 파이썬(python) : 알파벳 - (★)

    [백준] 1987 파이썬(python) : 알파벳 - (★)

    1987번 : 알파벳 pypy3로 제출해서 간신히 통과했다. 왜인지 모르겠지만 sys.setrecursionlimit(10**9)를 해줬을때는 틀렸지만 이 코드를 지워주니까 통과했다. import sys r, c = map(int, sys.stdin.readline().split()) graph = [ list(sys.stdin.readline().rstrip()) for _ in range(r) ] tmp = set() #1 cnt = 1 #2 dx = [ 0, 0, -1, 1 ] dy = [ -1, 1, 0, 0 ] def dfs(x, y, count): global cnt cnt = max(count, cnt) #3 for i in range(4): nx = x + dx[i] ny = y + dy[..

    [백준] 16953 파이썬(python) A → B - (★)

    [백준] 16953 파이썬(python) A → B - (★)

    https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 메모리초과 나는 코드) from collections import deque a, b = map(int, input().split()) visit = [False] * (b+1) def bfs(): q = deque([(a, 1)]) while q: now, cnt = q.popleft() if now == b: print(cnt) return for next in (2*now, now*10+1): if 0

    [백준] 10026 파이썬(python) : 적록색약 - (★)

    [백준] 10026 파이썬(python) : 적록색약 - (★)

    10026번: 적록색약 dfs풀이 - python3로 제출 import sys sys.setrecursionlimit(10**5) n = int(sys.stdin.readline()) graph = [ list(sys.stdin.readline()) for _ in range(n) ] visit = [[False]*n for _ in range(n) ] dx = [ 0, 0, -1, 1 ] dy = [ -1, 1, 0, 0 ] RGB_color, GGB_color = 0, 0 def dfs(x, y): visit[x][y] = True now_color = graph[x][y] #1 for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0