[이것이 코딩테스트다] Chap03. 그리디 연습문제

SunYerim·2023년 1월 1일
0
post-thumbnail
  1. 거스름돈
n = 1260
count = 0

money_list = [500, 100, 50, 10]


for money in money_list:
    count += (n // money)
    n %= money


print(count)
  1. 큰 수의 법칙
'''list 입력받아서 sort()  => 큰 수, 작은 수 저장 후 문제 조건에 맞춰 연산값 반환하도록 함.'''
# N, M, K 입력받기
N, M, K = map(int, input().split())

#N개의 자연수 입력 -> list
num_list = list(map(int, input().split()))

#오름차순 정렬
num_list.sort()

#1등, 2등 수 저장
one = num_list[-1]
two = num_list[-2]

# one 더해야 하는 횟수 count
one_count = (M // K) * K
two_count = M % K

# 연산 
count = 0
for i in range(one_count):
    count += one
for i in range(two_count):
    count += two

print(count)
  1. 숫자 카드 게임
'''가장 숫자가 낮은 카드 선택 ==> min() 활용
    list에 반복문 돌며 추가하여 그 중에 max인 값의 index+1 반환'''

# N, M 입력 받음
N, M = map(int, input().split())

#입력받음 & min 값 넣는 리스트 생성
min_list = []
for i in range(N):
    num_list = list(map(int, input().split()))
    min_data = min(num_list)
    min_list.append(min_data)

#min_list 중에서 max값 반환해주면 됨.
print(max(min_list))
  1. 1이 될 때까지
'''while문으로 N >= 1일때까지만 수행하는 조건 세우고 아래 조건에 따라 코딩'''
# N, K 입력받기
N, K = map(int, input().split())

# 조건에 따라 연산 되게끔
# count 값 설정
count = 0
while(N > 1):
    if (N % K != 0):
        N -= 1
        count += 1
    else:
        N  = N // K
        count += 1

print(count)
profile
내 안에 있는 힘을 믿어라.

0개의 댓글