백준(Python) 풀이 477

백준(Python) 2178번 미로 탐색 풀이

Python으로 구현한 2178번 미로 탐색 문제 풀이입니다. https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net from collections import deque def bfs(i, j) : q = deque() q.append((i, j)) while q : x, y = q.popleft() for d in range(4) : nx = x + dx[d] ny = y + dy[d] if not (0

백준(Python) 1697번 숨바꼭질 풀이

Python으로 구현한 1697번 숨바꼭질 문제 풀이입니다. https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net from collections import deque def bfs() : q = deque() q.append(n) while q : value = q.popleft() if value == k : print(data[value]) break for next in (value + 1, value - 1, va..

백준(Python) 2667번 단지번호붙이기 풀이

Python으로 구현한 2667번 단지번호붙이기 문제 풀이입니다. https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net ** case 1 - DFS 방식 def dfs(x, y) : global count if not (0

백준(Python) 1260번 DFS와 BFS 풀이

Python으로 구현한 1260번 DFS와 BFS 문제 풀이입니다. https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net from collections import deque def dfs(start) : visited[start] = 1 # 방문 처리 print(start, end=' ') for i in range(1, n + 1) : if visited[i] == 0 and graph[start][i] ==..

백준(Python) 1016번 제곱 ㄴㄴ 수 풀이

Python으로 구현한 1016번 제곱 ㄴㄴ 수 문제 풀이입니다. https://www.acmicpc.net/problem/1016 1016번: 제곱 ㄴㄴ 수 어떤 정수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 그 수를 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min보다 크거나 같고, max보다 작거나 같은 제곱ㄴㄴ수 www.acmicpc.net min_in, max_in = map(int, input().split()) size = max_in - min_in + 1 visited = [False] * size i = 2 while i * i

백준(Python) 15711번 환상의 짝꿍 풀이

Python으로 구현한 15711번 환상의 짝꿍 문제 풀이입니다. https://www.acmicpc.net/problem/15711 15711번: 환상의 짝꿍 환상의 나라 디디랜드에서는 인연의 증표로 끈을 하나씩 가지고 있다. 그들은 지극히 평범한 방법으로 이 끈을 이용하여 어떤 두 사람이 환상의 짝꿍인지 판단하는데, 두 사람의 끈을 서로 이 www.acmicpc.net def is_prime(value) : if value > max_value : for prime in primes : if prime >= value : break elif value % prime == 0 : return False return True else : return data[value] max_value = 200000..

백준(Python) 17471번 게리맨더링 풀이

Python으로 구현한 17471번 게리맨더링 문제 풀이입니다. https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net from collections import defaultdict, deque def combinations(arr, r) : for i in range(len(arr)) : if r == 1 : yield [arr[i]] else : for next in combinations(arr[i+1:], r-1) : yield [arr[i]] + next def..

백준(Python) 1644번 소수의 연속합 풀이

Python으로 구현한 1644번 소수의 연속합 문제 풀이입니다. https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net n = int(input()) is_prime = [False, False] + [True] * (n - 1) prime_list = [] for i in range(2, n + 1) : if is_prime[i] : prime_list.append(i) for j in range(i+i, n + 1, i) : is_prime[j] = False result = 0 start = 0 end = 0 while end

백준(Python) 17406번 배열 돌리기 4 풀이

Python으로 구현한 17406번 배열 돌리기 4 문제 풀이입니다. https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net import copy def permutations(arr, r) : for i in range(len(arr)) : if r == 1 : yield [arr[i]] else : for next in permutations(arr[:i] + arr[i+1:], r - 1) : yield [arr[i..

백준(Python) 2485번 가로수 풀이

Python으로 구현한 2485번 가로수 문제 풀이입니다. https://www.acmicpc.net/problem/2485 2485번: 가로수 첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가 www.acmicpc.net import math n = int(input()) data = [] diff_list = [] a = int(input()) # 첫번째 가로수 위치 data.append(a) for _ in range(n - 1) : value = int(input()) data.append(value) diff_list.append(value ..