최신 글 5개
-
백준
[백준] 2156번 : 포도주 시식 (Python)
문제 : https://www.acmicpc.net/problem/2156 n개의 포도주 잔과 각 포도주 잔에 들어있는 포도주의 양이 주어졌을 때,가장 많은 양의 포도주를 마실 수 있게 구하는 문제.import sysinput = sys.stdin.readlineN = int(input()) # 포도주 개수wine = [0]*(N+1)dp = [0]*(N+1)# 포도주 입력받기for i in range(1, N+1): wine[i] = (int(input())) # 입력받은 포도주를 추가# 최대로 마실 수 있는 포도주의 양 출력dp[1] = wine[1]if(N >= 2): dp[2] = wine[1] + wine[2]for i in range(3, N+1): # 1. 현재 잔 선..
-
백준
[백준] 1463번 : 1로 만들기 (Python)
문제 : https://www.acmicpc.net/problem/1463 1. X가 3으로 나누어 떨어지면, 3으로 나눈다. 2. X가 2로 나누어 떨어지면, 2로 나눈다. 3. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 사용해 1을 만드는 연산의 최솟값을 구하는 문제. import sysinput = sys.stdin.readlineN = int(input()) # 구하고자 하는 수D = [0 for j in range(N+1)] # DP 리스트D[1] = 0 # 1일 때 연산 불필요 # 조합 점화식으로 DP 테이블 채워넣기for i in range(2, N+1): D[i] = D[i-1]+1 # -1 연산 표현 if(i%2==0): # if 2의 배수 ..
-
백준
[백준] 1197번 : 최소 스패닝 트리 (Python)
문제 : https://www.acmicpc.net/problem/1197 주어진 그래프의 최소 스패닝 트리를 구하는 문제다.최소 스패닝 트리는, 주어진 그래프의 모든 정점들을 연결하는 가중치의 합이 최소인 트리를 말한다. import sysimport heapqsys.setrecursionlimit(10**6) # 재귀 깊이 제한 1,000,000으로 늘림input = sys.stdin.readlineV, E = map(int, input().strip().split()) # 노드 수, 에지 수pq = []parent = [i for i in range(V + 1)] # 대표 노드 저장 리스트# 우선순위 큐에 에지 정보 저장for i in range(E): s, e, v = map(int, ..
-
백준
[백준] 11653번 : 소인수분해 (Python)
문제 : https://www.acmicpc.net/problem/11653 정수 N을 소인수분해하는 문제.import sysinput = sys.stdin.readline# 분해def divide(N, div): while(N%div==0): # 나누어떨어질 시 반복 print(div) N /= div # N을 i로 나누기 return N# 소수 찾기def prime(N): for i in range(2, N+1): if(N%i==0): # N을 분해할 수 있는 소수이면 N = divide(N, i) # 찾은 소수로 분해 if(i >= N): # i가 현재 분..
-
백준
[백준] 11576번 : Base Conversion (Python)
문제 : https://www.acmicpc.net/problem/11576 A진법의 수를 B진법으로 변환하는 문제.import sysinput = sys.stdin.readline# 진법 변환기# 10진법을 B진법으로!def radix_to_b(N, B): tf = '' while(N > 0): tf = str(N%B)+ ' ' + tf # 나머지 숫자랑 매칭해서 N = (N//B) # B로 나눈 몫을 구함 return tf.strip() # 역순으로 return# 진법 변환기# A진법을 10진법으로!def radix_to_10(A, case): num = 0 loc = 0 for i i..