BOJ 185

백준 10026번 적록색약 파이썬 DFS

https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 답안 import sys sys.setrecursionlimit(10**4) def dfs_R(x,y): if x = n or y >= n: return False if graph[x][y] == 'R': graph[x][y] = 'C' dfs_R(x-1,y) dfs_R(x,y-1) dfs_R(x+1,y) dfs_R(x,y+1) return True ret..

BOJ/Python 2022.02.10

백준 10989번 수 정렬하기 3 파이썬

https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 답안 import sys n = int(sys.stdin.readline()) count = [0] * 10001 for _ in range(n): count[int(sys.stdin.readline())] += 1 for i in range(1, 10001): # 자연수는 1부터 for j in range(count[i]): print(i) 이 문제를 처음 접근 했을때, 정말 여러 정렬을 많이 사용 했었다. 파이썬..

BOJ/Python 2022.02.09

백준 1929번 소수 구하기 파이썬

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 답안 def is_prime(n): if n == 1: return False else: for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True m, n = map(int, input().split()) for i in range(m, n+1): if is_prime(i): print(i) 소수 구하는 문제를 구현하는 건 쉽다. 문제가 정답률이 낮은..

BOJ/Python 2022.02.08

백준 4963번 섬의 개수 파이썬 DFS

https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 답안 import sys sys.setrecursionlimit(10**4) # 재귀스택 확장 def dfs(x, y): if x = w or x >= h: return False if graph[x][y] == 1: graph[x][y] = 0 dfs(x-1, y) # 반 시계 방향 순환 dfs(x-1, y-1) dfs(x, y-1) dfs(x+1, y-1..

BOJ/Python 2022.02.07

백준 11724번 연결 요소의 개수 파이썬 DFS

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 답안 (PyPy3) def dfs(graph, v, visited): visited[v] = True for i in graph[v]: if not visited[i]: dfs(graph, i, visited) n, m = map(int, input().split()) graph = [[] for i in range(n+1)] visi..

BOJ/Python 2022.02.06

백준 1012번 유기농 배추 파이썬 DFS

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 답안 import sys sys.setrecursionlimit(10**6) def dfs(x, y): if x = m or y = n: return False if graph[x][y] == 1: graph[x][y] = 0 dfs(x-1, y) dfs(x, y-1) dfs(x+1, y) dfs(x, y+1) return True return False for _ in range(int(input())): ..

BOJ/Python 2022.02.06

백준 2606번 바이러스 파이썬 DFS

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 답안 def dfs(graph, v, visited): visited[v] = True for i in graph[v]: if not visited[i]: dfs(graph, i, visited) n = int(input()) m = int(input()) visited = [False] * (n+1) graph = [[] for _ in range(n+1)] lst = [] for _ in range..

BOJ/Python 2022.02.05

백준 2667번 단지 번호 붙이기 파이썬 DFS

https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 답안 lst = [] n = int(input()) graph = [] for i in range(n): graph.append(list(map(int, input()))) def dfs(x, y): if x = n or y = n: return False if graph[x][y] == 1: graph[x][y] = 0 lst.append(0) dfs(x-1, y) # 상 dfs(x, y-1) #..

BOJ/Python 2022.02.04

백준 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 import sys def bfs(graph, v, visited): q = deque([v]) visited[v] = True while q: v = q.popleft() print(v, end = " ") for i in graph[v]: if not visited[i]: q.append(i) visit..

BOJ/Python 2022.02.03

백준 10809번 알파벳 찾기 파이썬

https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net x = input() result = [-1]*26 # 전체 -1 for i in x: c = ord(i) - 97 result[c] = x.index(i) # 알파벳 처음 등장 위치 for i in result: print(i, end = ' ') 처음 for 문을 통해 구현을 할 수 있으면 간단하게 생각할 수 있는 문제였다. 여기서 ord 함수는 문자 --> 유니코드로 변경해 주는..

BOJ/Python 2022.01.29
반응형
목차(index)