백준 / 9466번 / 텀 프로젝트 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/9466 나의 풀이import syssys.setrecursionlimit(10**7)input = sys.stdin.readline# 사이클 생성 유무 확인def dfs(now): global cnt visited[now] = 1 nxt = numbers[now] if not visited[nxt]: dfs(nxt) else: # 이미 방문했는데 탐색이 끝나지 않았다면 # 현재 경로에 있는 노드를 다시 봤다는 의미 -> 사이클 발생 if not finished[nxt]: cur = nxt while cur != now..
백준 / 7569번 / 토마토 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/7569 나의 풀이import sysfrom collections import dequeinput = sys.stdin.readlineM, N, H = map(int, input().split())boxes = [[list(map(int, input().split())) for _ in range(N)] for _ in range(H)]def bfs(): q = deque() # 처음부터 익은 토마토 큐에 추가 for tomato in tomatoes: q.append(tomato) dz = [1, -1, 0, 0, 0, 0] dy = [0, 0, 1, -1, 0, 0] dx = [0, 0,..
백준 / 3190번 / 뱀 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/3190 나의 풀이import sysfrom collections import dequeinput = sys.stdin.readlineN = int(input())K = int(input())apples = [list(map(int, input().split())) for _ in range(K)]L = int(input())rotation = [list(input().split()) for _ in range(L)]board = [[0] * N for _ in range(N)]for a, b in apples: board[a-1][b-1] = 1def bfs(start): dx = [0, 1, 0, -1] dy = [..
백준 / 15683번 / 감시 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/15683 나의 풀이import sysinput = sys.stdin.readlinen, m = map(int, input().split())Map = [list(map(int, input().split())) for _ in range(n)]dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]cctv_type = { 1: [[0], [1], [2], [3]], # 상, 하, 좌, 우 2: [[0, 1], [2, 3]], # 상+하, 좌+우 3: [[0, 3], [3, 1], [1, 2], [2, 0]], # 상+우, 우+하, 하+좌, 좌+..
백준 / 2252번 / 줄 세우기 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/2252 나의 풀이from collections import dequeimport sysinput = sys.stdin.readlinen, m = map(int, input().split())graph = [[] for _ in range(n+1)]indegree = [0] * (n+1)for _ in range(m): a, b = map(int, input().split()) graph[a].append(b) indegree[b] += 1queue = deque()for i in range(1, n+1): if indegree[i] == 0: queue.append(i)result = []wh..
백준 / 2206번 / 벽 부수고 이동하기 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/2206 나의 풀이import sysfrom collections import dequeinput = sys.stdin.readlinen, m = map(int, input().split())Map = [list(map(int, input().rstrip())) for _ in range(n)]visited = [[[False] * 2 for _ in range(m)] for _ in range(n)]queue = deque([(0, 0, 0, 1)])visited[0][0][0] = Truedx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]ans = -1while queue: x, y, broken, dist =..
백준 / 10026번 / 적록색약 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/10026 나의 풀이import syssys.setrecursionlimit(10000)input = sys.stdin.readlinen = int(input())grid = [list(input().strip()) for _ in range(n)]visited = [[False] * n for _ in range(n)]dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]def dfs(x, y, color, board): visited[x][y] = True for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0 DFS/BFS로 풀..
백준 / 2470번 / 두 용액 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/2470 나의 풀이n = int(input())sol = list(map(int, input().split()))sol.sort()start = 0end = n - 1min_solution = float('inf')while start 0: end -= 1 else: breakprint(result[0], result[1]) 투 포인터를 사용해 두 용액의 합이 0에 가까운 값을 찾을 수 있습니다. 두 용액의 합 s의 절댓값이 현재까지의 최솟값보다 작으면 결과를 갱신하며 최적의 답을 구할 수 있습니다.