파이썬 927

백준(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) 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 ..

백준(Python) 2580번 스도쿠 풀이

Python으로 구현한 2580번 스도쿠 문제 풀이입니다. https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net data = [list(map(int, input().split())) for _ in range(9)] empty_list = [] for i in range(9) : for j in range(9) : if data[i][j] == 0 : empty_list.append((i, j)) def dfs(index) : if index ==..

백준(Python) 2661번 좋은수열 풀이

Python으로 구현한 2661번 좋은수열 문제 풀이입니다. https://www.acmicpc.net/problem/2661 2661번: 좋은수열 첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다. www.acmicpc.net def func(index) : global data for i in range(1, (index // 2) + 1) : if data[-i:] == data[-2*i:-i] : return -1 if index == n : for i in range(n) : print(data[i], end='') return 0 for i in range(1, ..