Upload files to "백준"

This commit is contained in:
2026-04-11 11:48:03 +09:00
parent e9e87657ab
commit 82263fb522
5 changed files with 174 additions and 0 deletions

32
백준/1715.py Normal file
View File

@@ -0,0 +1,32 @@
import sys
import heapq
sys.setrecursionlimit(10**6)
input = sys.stdin.readline
min_heap = []
N=int(input().rstrip())
for i in range(N):
heapq.heappush(min_heap, int(input().rstrip()))
result = 0
first_value = heapq.heappop(min_heap)
result += first_value
while min_heap:
second_value = heapq.heappop(min_heap)
result+=second_value
if min_heap:
heapq.heappush(min_heap, first_value + second_value)
first_value=heapq.heappop(min_heap)
result += first_value
else:
break
if(N==1):
result = 0
print(result)

22
백준/1722.py Normal file
View File

@@ -0,0 +1,22 @@
import sys
from itertools import permutations
import math
N = int(input())
problem = list(map(int, input().split())) #problem이 주어진 문제
a=[]
for i in range(1, N+1):
a.append(i) # a는 순서대로 순열 있는거
if problem[0] == 1:
print(*arr[problem[1]-1])
elif problem[0] == 2:
for i in range(1, N+1):
new_arr.append(problem[i]) # new_arr가 배열만 저장되어 있는거
temp = 1
for i in arr:
if(list(i) == new_arr):
print(temp)
break
temp += 1

57
백준/1744.py Normal file
View File

@@ -0,0 +1,57 @@
import heapq
import sys
from collections import deque
input = sys.stdin.readline
maxheap=[]
minheap=[]
result = 0
count_0 = 0
count_1 = 0
N = int(input().rstrip())
def plusnum(num):
maxheap.append(num)
def minusnum(num):
minheap.append(num)
for i in range(N):
num = int(input().rstrip())
if(num==0):
count_0 += 1
elif(num==1):
count_1 += 1
elif(num>0):
plusnum(num)
else:
minusnum(num)
maxheap.sort()
minheap.sort()
while maxheap:
first_value = maxheap.pop()
if maxheap:
second_value = maxheap.pop()
result += (first_value * second_value)
else:
result += first_value
if (len(minheap)%2==1):
if count_0 and minheap:
minheap.pop()
else:
result+=minheap.pop()
while minheap:
first_value = minheap.pop()
second_value = minheap.pop()
result += (first_value * second_value)
result+=count_1
print(result)

29
백준/1747.py Normal file
View File

@@ -0,0 +1,29 @@
import sys
import math
input = sys.stdin.readline
def pellindrom(num):
num = str(num)
num_len = len(num) // 2
for i in range(num_len):
if(num[i]!=num[-(i+1)]):
return False
return True
def isPrime(num):
if (num==1):
return False
for i in range(2, (int(math.sqrt(num))+1)):
if num%i == 0:
return False
return True
N = int(input())
while True:
if (isPrime(N) and pellindrom(N)):
print(N)
break
else:
N+=1

34
백준/1753.py Normal file
View File

@@ -0,0 +1,34 @@
import sys
input = sys.stdin.readline
from queue import PriorityQueue
V, E = map(int, input().split())
K = int(input())
distance = [sys.maxsize] * (V+1)
visited = [False] * (V+1)
myList = [[] for _ in range(V+1)]
q = PriorityQueue()
for _ in range(E):
u, v, w = map(int, input().split())
myList[u].append((v, w))
q.put((0, K))
distance[K] = 0
while q.qsize() > 0 :
current = q.get()
c_v = current[1]
if visited[c_v]:
continue
visited[c_v] = True
for next, value in myList[c_v]:
if distance[next] > distance[c_v] + value:
distance[next] = distance[c_v] + value
q.put((distance[next], next))
for i in range(1, V+1):
if visited[i]:
print(distance[i])
else:
print("INF")