728x90



여태 클래스 순서대로 티어가 낮은 문제부터 순서대로 풀어왔는데 이 풀이에서 뭔가 나아짐을 느끼지 못해 나동빈씨 유튜브 영상에서처럼 일단 그리디 알고리즘을 먼저 많이 풀어보기로 했다.


파이썬


실3 ATM


맞은 코드


1
2
3
4
5
6
7
8
9
import sys
= int(input())
withdrawlTime = list(map(int, sys.stdin.readline().split()))
result = []
tempSum = 0
for i in sorted(withdrawlTime):
    tempSum += i
    result.append(tempSum)
print(sum(result))
cs


실2 동전 0


맞은 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import sys
N, K = map(int, sys.stdin.readline().split())
coin = []
for i in range(N):
    coin.append(int(sys.stdin.readline()))
index = N-1
cnt = 0
while(True):
    if index < 0:
        break
    if K // coin[index] > 0:
        cnt += K // coin[index]
        K = K % coin[index]
    else:
        index -= 1
print(cnt)
cs


실2 회의실 배정


맞은 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import sys
= int(input())
meeting = []
for i in range(N):
    meeting.append(list(map(int, sys.stdin.readline().split())))
meeting.sort(key = lambda x : (x[1], x[0]))
first = meeting[0]
cnt = 1
firstBool = True
for i in meeting:
    if firstBool:
        firstBool = False
        continue
    if first[1<= i[0]:
        cnt += 1
        first = i
print(cnt)
cs


728x90
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기