백준(188)
-
백준 2178 파이썬 DFS보다 BFS를 쓰는 이유
백준 2178 - 미로탐색 문제 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 답안 코드 : from collections import deque dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] N, M = map(int, input().split()) A = [[0] * M for _ in range(N)] visited = [[False] * M for _ in range(N)] for i in range(N): numbers = list(input(..
2024.05.17 -
백준 1260 파이썬 DFS와 BFS를 구현할 수 있는가
백준 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 N, M, Start = map(int, input().split()) A = [[] for _ in range(N + 1)] for _ in range(M): s, e = map(int, input().split()) A[s].append(e) # 양방..
2024.05.16 -
백준 13023 파이썬 DFS의 시간 복잡도 O(V+E)
백준 13023 - ABCDE 문제 https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 답안 코드 : import sys sys.setrecursionlimit(10000) input = sys.stdin.readline N, M = map(int, input().split()) arrive = False A = [[] for _ in range(N + 1)] visited = [False] * (N + 1) def DFS(now, depth): global arrive if depth == 5 or arrive == True: # 깊이가 5가 되면 종..
2024.05.15 -
백준 2023 파이썬 DFS 재귀함수
백준 2023 - 신기한 소수 문제 https://www.acmicpc.net/problem/2023 2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 답안 코드 : import sys sys.setrecursionlimit(10000) input = sys.stdin.readline N = int(input()) def isPrime(num): for i in range(2, int(num / 2 + 1)): if num % i == 0: return False return True def DFS(..
2024.05.14 -
백준 11724 파이썬 sys.setrecursionlimit()
백준 11724 - 연결 요소의 개수 문제 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 답안 코드 : import sys sys.setrecursionlimit(10000) input = sys.stdin.readline n, m = map(int, input().split()) A = [[] for _ in range(n+1)] visited = [False] * (n+1) ..
2024.05.13 -
백준 1010 파이썬
백준 1010 - 다리 놓기 문제 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 답안 코드 : import math T = int(input()) for _ in range(T): N, M = map(int, input().split()) # 조합 계산 및 결과 출력 result = math.comb(M, N) print(result) 백준 / 문제 / 단계별로 풀어보기 / 17단계 조합론
2024.05.12 -
백준 11050 파이썬
백준 11050 - 이항 계수 1 문제 https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 답안 코드 : n, k = map(int, input().split()) result = 1 # 이항 계수 계산 for i in range(k): result *= n - i result //= i + 1 print(result) 백준 / 문제 / 단계별로 풀어보기 / 17단계 조합론
2024.05.11 -
백준 10872 파이썬
백준 10872 - 팩토리얼 문제 https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 답안 코드 : n = int(input()) result = 1 # 1부터 n까지 곱하기 for i in range(1, n + 1): result *= i print(result) 백준 / 문제 / 단계별로 풀어보기 / 17단계 조합론
2024.05.10 -
백준 24723 파이썬
백준 24723 - 녹색거탑 문제 https://www.acmicpc.net/problem/24723 24723번: 녹색거탑 Naver D2를 아시나요? D2는 For Developers, By Developers의 약자로, 개발자들을 위해 개발자들이 직접 만들어 가고 있는 네이버 개발자 지원 프로그램입니다. 네이버가 축적한 기술과 지식을 공유하고, 외 www.acmicpc.net 답안 코드 : n = int(input()) print(2**n) 백준 / 문제 / 단계별로 풀어보기 / 17단계 조합론
2024.05.09 -
백준 15439 파이썬
백준 15439 - 베라의 패션 문제 https://www.acmicpc.net/problem/15439 15439번: 베라의 패션 베라는 상의 N 벌과 하의 N 벌이 있다. i 번째 상의와 i 번째 하의는 모두 색상 i를 가진다. N 개의 색상은 모두 서로 다르다. 상의와 하의가 서로 다른 색상인 조합은 총 몇 가지일까? www.acmicpc.net 답안 코드 : n = int(input()) if n == 1: print("0") else: print(n * (n - 1)) 백준 / 문제 / 단계별로 풀어보기 / 17단계 조합론
2024.05.08