Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions rnlcksgek
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

13 changes: 13 additions & 0 deletions 그래프/BFS DFS/sackxycode.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
def find(n,k):
if n>= k:
return n-k
elif k == 1:
return 1
elif k%2:
return min(find(n,k+1),find(n,k-1))+1
else:
return min(k-n,1+find(n,k//2))

import sys
n,k = map(int,sys.stdin.readline().split())
print(find(n,k))
Binary file modified 그리디/.DS_Store
Binary file not shown.
20 changes: 20 additions & 0 deletions 그리디/coin 0_이정엽.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import sys

repeat, num = map(int,sys.stdin.readline().split())

money = [int(sys.stdin.readline().strip()) for i in range(repeat)]
cnt = 0

while len(money) != 0:
currency = money.pop()
temp = num // currency
if temp >0:
cnt += temp
num -= temp*currency
if num == 0:
break
print(cnt)




41 changes: 41 additions & 0 deletions 동적 계획법/평범한 배낭/bag 정엽.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import sys
from collections import defaultdict

n,k = map(int,sys.stdin.readline().split())

answer = defaultdict(list)
for i in range(1,k+1):
answer[i] = float('-inf')

bags = defaultdict(list)

for i in range(n):
w,v = map(int,sys.stdin.readline().split())
if w not in bags:
bags[w] = [v]
else:
bags[w].append(v)

for i in bags:
bags[i].sort(reverse=True)

for i in range(1,k+1):
if bags[i] == []:
continue
cnt = 0
cnt_value = 0
for j in bags[i]:
cnt+=i
cnt_value += j
if (cnt > k) or (not answer[cnt]):
continue
if answer[cnt]<cnt_value:
answer[cnt] = cnt_value
for j in range(1,i):
if (answer[j] == float('-inf')) or (i+j > k):
continue
if answer[i+j]<answer[i]+answer[j]:
answer[i+j] = answer[i]+answer[j]

print(max(answer.items(),key = lambda x: x[1])[1])
print(answer)
41 changes: 41 additions & 0 deletions 동적 계획법/평범한 배낭/bag 정엽.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import sys
from collections import defaultdict

n,k = map(int,sys.stdin.readline().split())

answer = defaultdict(list)
for i in range(1,k+1):
answer[i] = float('-inf')

bags = defaultdict(list)

for i in range(n):
w,v = map(int,sys.stdin.readline().split())
if w not in bags:
bags[w] = [v]
else:
bags[w].append(v)

for i in bags:
bags[i].sort(reverse=True)

for i in range(1,k+1):
if bags[i] == []:
continue
cnt = 0
cnt_value = 0
for j in bags[i]:
cnt+=i
cnt_value += j
if (cnt > k) or (not answer[cnt]):
continue
if answer[cnt]<cnt_value:
answer[cnt] = cnt_value
for j in range(1,i):
if (answer[j] == float('-inf')) or (i+j > k):
continue
if answer[i+j]<answer[i]+answer[j]:
answer[i+j] = answer[i]+answer[j]

print(max(answer.items(),key = lambda x: x[1])[1])
print(answer)
Binary file added 정렬/.DS_Store
Binary file not shown.
73 changes: 73 additions & 0 deletions 정렬/statistics_이정엽.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
def merge_sort(stats):
if len(stats) <= 1:
return stats
mid = len(stats)//2
return merge(merge_sort(stats[:mid]), merge_sort(stats[mid:]))

def merge(left, right):
i = 0
j = 0
temp = []
while (i<len(left)) & (j<len(right)):
if left[i] > right[j]:
temp.append(right[j])
j += 1
elif left[i] == right[j]:
temp.append(left[i])
temp.append(right[j])
i+=1
j+=1
else:
temp.append(left[i])
i+=1

while (i<len(left)):
temp.append(left[i])
i+=1

while (j<len(right)):
temp.append(right[j])
j+=1

return temp

# def mode(stats):
# set1 = set(stats)
# dict1 = {}
# maximum = 0
# for i in list(set1):
# n = stats.count(i)
# if n>maximum:
# maximum = n
# if n not in dict1:
# dict1[n] = [i]
# else:
# dict1[n].append(i)
# if len(dict1[maximum])<2:
# print(dict1[maximum][0])
# else:
# print(merge_sort(dict1[maximum])[1])

def mode(stats):
from collections import Counter
a = Counter(stats)
a = sorted(a.most_common(), key = lambda x:(-x[1], x[0]))
if len(a)>=2:
print(a[1][0] if a[0][1] == a[1][1] else a[0][0])
else:
print(a[0][0])

import sys
num = [int(sys.stdin.readline()) for i in range(int(sys.stdin.readline().strip()))]
sort_stat = merge_sort(num)
print(round((sum(sort_stat))/(len(sort_stat))))
print(sort_stat[len(sort_stat)//2])
mode(sort_stat)
if len(sort_stat) == 1:
print(0)
else:
print(sort_stat[-1] - sort_stat[0])