BOJ

    [BOJ / 백준] 16953번 A → B 파이썬(Python) 문제 풀이

    문제 문제 링크 : https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net CODE import sys from collections import deque input = sys.stdin.readline def solve(a, b): q = deque([(a, 1)]) while q: now, cnt = q.popleft() if now == b: print(cnt) return if now * 2

    [BOJ / 백준] 1743번 음식물 피하기파이썬(Python) 문제 풀이

    문제 문제 링크 : https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net CODE import sys from collections import deque input = sys.stdin.readline dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] def bfs(i, j, trash): q = deque([[i, j]]) trash[i][j] = 2 # visited result = 1..

    [BOJ / 백준] 6603번 로또 파이썬(Python) 문제 풀이

    문제 문제 링크 : https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net CODE 방법 1 : itertools의 combinations 사용 import sys from itertools import combinations input = sys.stdin.readline while True: nums = list(map(int, input().split())) if len(nums) == 1 and nums[0] == 0: break l..

    [BOJ / 백준] 11724번 연결 요소의 개수 파이썬(Python) 문제 풀이

    문제 문제 링크 : https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net CODE from collections import deque import sys input = sys.stdin.readline def bfs(v, edges, visited): q = deque([v]) visited[v] = True while q: now = q.popleft() for e in edges[n..

    [BOJ / 백준] 2606번 바이러스 파이썬(Python) 문제 풀이

    문제 문제 링크 : https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net CODE from collections import deque import sys input = sys.stdin.readline v = int(input()) e = int(input()) edges = [[] for _ in range(v + 1)] for _ in range(e): a, b = map(int, input().split()) edges[a].append(b) ed..

    [BOJ / 백준] 1697번 숨바꼭질 파이썬(Python) 문제 풀이

    문제 문제 링크 : https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net CODE from collections import deque def solve(n, k): time = [0] * (200001) q = deque([n]) time[n] = 0 while q: now = q.popleft() if now == k: print(time[k]) return if abs(k - now) > abs(k - 2 * now)..

    [BOJ / 백준] 2178번 미로 탐색 파이썬(Python) 문제 풀이

    문제 문제 링크 : https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net CODE from collections import deque import sys input = sys.stdin.readline n, m = map(int, input().split()) miro = [] for i in range(n): miro.append(list(input().rstrip())) visited = [[0] * m for _ in range(n)] dir = [[1, 0], [-1, 0..

    [BOJ / 백준] 1303번 전쟁 - 전투 파이썬 (Python) 문제 풀이

    문제 문제 링크 : https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net CODE from collections import deque import sys input = sys.stdin.readline dir = [[0, -1], [0, 1], [1, 0], [-1, 0]] def solve(x, y, ground, check): q = deque([[x, y]]) check[y][x] = True cnt = 0 while..

    [BOJ / 백준] 1260번 DFS와 BFS 파이썬(Python) 문제 풀이

    문제 문제 링크 : https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net CODE from collections import deque import sys input = sys.stdin.readline def dfs(edges, v, visited): visited[v] = True print(v, end=' ') for e in edges[v]: if not visited[e]: dfs(edges, e, vi..

    [BOJ / 백준] 15683번 감시 파이썬(Python) 문제 풀이

    문제 문제 링크 : https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net CODE import sys dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] camdir = [0, 4, 2, 4, 4, 1] # 카메라 종류별 분별 가능한 방향 수 def watch(idx, dir, office): if cam[idx][2] == 1: x, y = cam[idx][0], cam[idx][1] while 0