Upload files to "백준"
This commit is contained in:
14
백준/1328.py
Normal file
14
백준/1328.py
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import sys
|
||||||
|
input = sys.stdin.readline
|
||||||
|
|
||||||
|
N, L, R = map(int, input().split())
|
||||||
|
|
||||||
|
D = [[[0 for i in range(101)] for j in range(101)] for k in range(101)]
|
||||||
|
D[1][1][1] = 1
|
||||||
|
|
||||||
|
for i in range(2, N+1):
|
||||||
|
for j in range(1, L+1):
|
||||||
|
for k in range(1, R+1):
|
||||||
|
D[i][j][k] = (D[i-1][j-1][k] + D[i-1][j][k-1] + (D[i-1][j][k] * (i-2)))%1000000007
|
||||||
|
|
||||||
|
print(D[N][L][R])
|
||||||
18
백준/1377.py
Normal file
18
백준/1377.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
input = sys.stdin.readline().rstrip()
|
||||||
|
arr = []
|
||||||
|
temp = -500001
|
||||||
|
n = int(input)
|
||||||
|
|
||||||
|
for i in range(n):
|
||||||
|
num = int(sys.stdin.readline().rstrip())
|
||||||
|
arr.append((num, i))
|
||||||
|
|
||||||
|
arr=sorted(arr)
|
||||||
|
|
||||||
|
for i in range(n):
|
||||||
|
temp = max(temp, arr[i][1] - i)
|
||||||
|
|
||||||
|
print(str(temp+1))
|
||||||
|
|
||||||
24
백준/1406.py
Normal file
24
백준/1406.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
A = sys.stdin.readline().rstrip()
|
||||||
|
B = int(sys.stdin.readline().rstrip())
|
||||||
|
|
||||||
|
pointer = len(A)
|
||||||
|
|
||||||
|
for i in range(B):
|
||||||
|
tempstr = sys.stdin.readline().rstrip()
|
||||||
|
if(tempstr[0] == 'P'):
|
||||||
|
A = A[:pointer] + tempstr[2] + A[pointer:]
|
||||||
|
pointer+=1
|
||||||
|
elif(tempstr == 'L'):
|
||||||
|
if(pointer>0):
|
||||||
|
pointer-=1
|
||||||
|
elif(tempstr == 'D'):
|
||||||
|
if(pointer<len(A)):
|
||||||
|
pointer+=1
|
||||||
|
else:
|
||||||
|
if(pointer>0):
|
||||||
|
A = A[:pointer-1] + A[pointer:]
|
||||||
|
pointer-=1
|
||||||
|
|
||||||
|
print(A)
|
||||||
28
백준/1456.py
Normal file
28
백준/1456.py
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import sys
|
||||||
|
import math
|
||||||
|
|
||||||
|
input = sys.stdin.readline
|
||||||
|
|
||||||
|
Min, Max = map(int, input().split())
|
||||||
|
A = [0]*10000001
|
||||||
|
|
||||||
|
for i in range(len(A)):
|
||||||
|
A[i] = i
|
||||||
|
|
||||||
|
for i in range(2, int(math.sqrt(len(A)))+1):
|
||||||
|
if A[i]==0:
|
||||||
|
continue
|
||||||
|
for j in range(i+i, len(A), i):
|
||||||
|
A[j] = 0
|
||||||
|
|
||||||
|
count = 0
|
||||||
|
|
||||||
|
for i in range(2, 10000001):
|
||||||
|
if A[i]!= 0:
|
||||||
|
temp = A[i]
|
||||||
|
while A[i] <= Max / temp:
|
||||||
|
if A[i] >= Min / temp:
|
||||||
|
count +=1
|
||||||
|
temp = temp * A[i]
|
||||||
|
|
||||||
|
print(count)
|
||||||
53
백준/1504.py
Normal file
53
백준/1504.py
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
import sys
|
||||||
|
import heapq
|
||||||
|
|
||||||
|
sys.setrecursionlimit(10**6)
|
||||||
|
input = sys.stdin.readline
|
||||||
|
|
||||||
|
n, e = map(int, input().split()) #정점의 개수 N과 간선의 개수 E
|
||||||
|
|
||||||
|
graph = [[] for _ in range(n+1)]
|
||||||
|
distance = [sys.maxsize] * (n+1)
|
||||||
|
start = 1
|
||||||
|
|
||||||
|
for _ in range(e):
|
||||||
|
a, b, c = map(int, input().split())
|
||||||
|
graph[a].append((b, c))
|
||||||
|
graph[b].append((a, c))
|
||||||
|
|
||||||
|
v1, v2 = map(int, input().split()) #반드시 들려야 하는 정점 위치
|
||||||
|
|
||||||
|
for i in graph[v1]:
|
||||||
|
if(i[0]==v2):
|
||||||
|
v_weight = i[1]
|
||||||
|
break
|
||||||
|
|
||||||
|
q = []
|
||||||
|
|
||||||
|
|
||||||
|
def dijkstra(start):
|
||||||
|
distances = [sys.maxsize] * (n + 1)
|
||||||
|
distances[start] = 0
|
||||||
|
q = []
|
||||||
|
heapq.heappush(q, (0, start))
|
||||||
|
|
||||||
|
while q:
|
||||||
|
dist, now = heapq.heappop(q)
|
||||||
|
if distances[now] < dist:
|
||||||
|
continue
|
||||||
|
for nxt, weight in graph[now]:
|
||||||
|
cost = dist + weight
|
||||||
|
if cost < distances[nxt]:
|
||||||
|
distances[nxt] = cost
|
||||||
|
heapq.heappush(q, (cost, nxt))
|
||||||
|
return distances
|
||||||
|
|
||||||
|
d1 = dijkstra(1)
|
||||||
|
dv1 = dijkstra(v1)
|
||||||
|
dv2 = dijkstra(v2)
|
||||||
|
|
||||||
|
path1 = d1[v1] + dv1[v2] + dv2[n]
|
||||||
|
path2 = d1[v2] + dv2[v1] + dv1[n]
|
||||||
|
result = min(path1, path2)
|
||||||
|
|
||||||
|
print(result if result < sys.maxsize else -1)
|
||||||
Reference in New Issue
Block a user