프로그래밍(35)
-
[boj] 2667 단지번호붙이기 Python
n = int(input()) graph = [list(map(int, input())) for _ in range(n)] def DFS(x, y): graph[x][y] = 0 res = 0 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] for i in range(4): xx = dx[i] + x yy = dy[i] + y if 0
2023.04.08 -
[BOJ] 20169 세 번 이내에 사과를 먹자 Python
import pprint graph = [] visited = [[False for _ in range(5)] for __ in range(5)] flag = False for i in range(5): graph.append(list(map(int, input().split()))) n, m = map(int, input().split()) def BFS(x, y, apple, depth = 0): global flag visited[x][y] = True dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] if (depth = 2): flag = True return if (depth >= 3 and apple < 2): return for i in range(4): xx = dx[i..
2023.04.08 -
BOJ 1012 유기농 배추 Python
일반적인 DFS 문제이며, 재귀를 이용한 DFS 구현으로 풀었다. 맨 처음에 Recursion error가 발생했는데, 백준에서 재귀를 1000 이하로만 설정하지만, 2500번의 재귀가 발생할 수 있으므로 설정 값을 바꿔줌으로서 해결했다. 아래는 코드이다. import sys sys.setrecursionlimit(10**6) def dfs(x, y, graph): if x = len(graph[0]): return 0 if graph[x][y] == 1: graph[x][y] = 0 dfs(x + 1, y, graph) dfs(x, y + 1, graph) dfs(x - 1, y, graph) dfs(x, y - 1, graph) return 1 return 0 def solve(): vert, hor..
2023.04.06 -
[BOJ] 9237 Python | Silver V
plant = int(input()) lst = list(map(sum, zip(sorted(list(map(int, input().split())), reverse=True), [i for i in range (1, plant + 1)]))) print(max(lst) + 1) 정렬하고 뒤집고 합치고 1 더하면 끝.. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
2023.03.31 -
[이것이 코딩테스트다] 큰 수의 법칙
풀이시간 30m / 메모리 제한 128MB / 기출 2019 국가 교육기관 코딩테스트 입력조건 첫째 줄에 N(2
2023.03.29 -
[boj] 10828 - 스택 Kotlin 풀이 (배열 사용)
10828 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다.top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100..
2021.10.04