Algorithm/개념
그리디알고리즘
vluevy
2021. 7. 10. 17:30
728x90
반응형
그리디 알고리즘
당장 좋은 것-이득인 것 먼저 선택
큰 수의 법칙
n,m,k=map(int,input().split())
data=list(map(int,input().split()))
data.sort()
f=int(data[n-1])
s=int(data[n-2])
result=0
while True:
for i in range(k):
if m==0:
break
result+=f
m-=1
if m==0:
break
result+=s
m-=1
print(result)
횟수 계산해서도 풀이 가능
n,m,k=map(int,input().split())
data=list(map(int,input().split()))
data.sort()
f=int(data[n-1])
s=int(data[n-2])
result=0
count=(m//(k+1))*k
count+=m%(k+1)
result+=count*f
result+=(m-count)*s
print(result)
숫자카드게임
n,m=map(int,input().split())
data=[list(map(int,input().split()))for i in range(n)]
result=min(data[0])
for i in range(1,n):
if result<min(data[i]):
result=min(data[i])
print(result)
입력과 동시에 min 찾으면서도 가능
n,m=map(int,input().split())
result=0
for i in range(n):
data=list(map(int,input().split()))
min_value=min(data)
result=max(result,min_value)
print(result)
1이 될 때까지
n,k=map(int,input().split())
count=0
while n!=1:
if n%k==0:
n/=k
count+=1
else:
n-=1
count+=1
print(count)
반응형