백준(188)
-
백준 2251 파이썬 BFS 과정
백준 2251 - 물통 문제 https://www.acmicpc.net/problem/2251 2251번: 물통 각각 부피가 A, B, C(1≤A, B, C≤200) 리터인 세 개의 물통이 있다. 처음에는 앞의 두 물통은 비어 있고, 세 번째 물통은 가득(C 리터) 차 있다. 이제 어떤 물통에 들어있는 물을 다른 물통으로 쏟아 부 www.acmicpc.net 답안 코드 : from collections import deque Sender = [0, 0, 1, 1, 2, 2] Receiver = [1, 2, 0, 2, 0, 1] now = list(map(int, input().split())) visited = [[False for j in range(201)] for i in range(201)] an..
2024.06.06 -
백준 1707 파이썬 모든 노드로 각각 DFS탐색
백준 1707 - 이분 그래프 문제 https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 답안 코드 : import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline N = int(input()) IsEven = True def DFS(node): global IsEven visited[node] = True for i in A[node]: if not visited[i]: check[i] =..
2024.06.05 -
백준 18352 파이썬 BFS탐색 알고리즘
백준 18352 - 특정 거리의 도시 찾기 문제 https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 답안 코드 : import sys from collections import deque input = sys.stdin.readline N, M, K, X = map(int, input().split()) # 노드의 수, 에지의 수, 목표거리, 시작점 A = [[] for _ ..
2024.06.04 -
백준 1033 파이썬 DFS와 최대공약수
백준 1033 - 칵테일 문제 https://www.acmicpc.net/problem/1033 1033번: 칵테일 august14는 세상에서 가장 맛있는 칵테일이다. 이 칵테일을 만드는 정확한 방법은 아직 세상에 공개되지 않았지만, 들어가는 재료 N개는 공개되어 있다. 경근이는 인터넷 검색을 통해서 재료 쌍 N www.acmicpc.net 답안 코드 : N = int(input()) A = [[] for _ in range(N)] visited = [False] * (N) D = [0] * (N) lcm = 1 def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) def DFS(v): visited[v] = True for i in A[v]: n..
2024.06.03 -
백준 1850 파이썬 최대 공약수를 유클리드 호제법
백준 1850 - 최대공약수 문제 https://www.acmicpc.net/problem/1850 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A www.acmicpc.net 답안 코드 : def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) a, b = map(int, input().split()) result = gcd(a, b) while result > 0: print(1, end='') result -= 1 생각 : # 문제 분석 # 예제 3번을 보..
2024.06.02 -
백준 1934 파이썬 유클리드 호제법
백준 1934 - 최소공배수 문제 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 답안 코드 : def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) t = int(input()) for i in range(t): a, b = map(int, input().split()) result = a * b / gcd(a, b) print(int(result)) 생각 : # 유..
2024.06.01