문제 출처: https://www.acmicpc.net/problem/11047
Silver 1
이거 그리디 아닌가? 하면서 쉽게 접근했다 ㅋㅋㅋㅋ 그냥 k값대로 나누고 몫을 더해주고 그만큼 k에 뺴면 된다. 대신 최소값이기 때문에 뒤에서부터 시작해야한다.
이 문제 덕분에 파이썬 거꾸로 for 문 돌리는 법과 사칙연산자를 익혔다..
N, k = map(int, input().split())
arr = []
for i in range(N):
arr.append(int(input()))
num = 0
for i in range(N-1, -1, -1):
if k == 0:
break
if arr[i] > k:
continue
num += (k//arr[i])
k %= arr[i]
print(num)
C++에서는 소수점 나오게 하려면 데이터 타입명을 신경써야하는데 파이썬은 오히려 기본이 소수점까지 계산이다. 그래서 처음에는 그냥 /
나누기 연산 후 int형 씌우는 것으로 해결했는데 예제 2번에서 값이 안나오길래 검색했다
그러다 //
새로운 연산자를 보게 됐고, 정수 몫만 나오게 하는 연산자가 따로 있음을 알았다.. 신기한.. 파이썬..