2022-3/1일1코딩
[BOJ] 1049 python
이망고_
2022. 10. 18. 19:02
예제가 꽤나 많그든요?
처음에 예제1만 생각했다가 쉽네..?
하였는데 예제에 친절히 이러한 경우, 저러한 경우를 써주어서 이 모든 경우의 수가 맞아야 한다.
1. tuple 은 첨 써보고요?
price = tuple(map(int, input().split())
이번에 새로웠던 것은 sorted 하려니 map이 들어있어서 안된다고 해서
[] 리스트를 따로 정해주고
input 값을 받는 것을 tuple로 지정해주었더니 map이 sorted 될 수 있었다
tuple은 고정시켜주는 값이라 알고 있는데, 이게 sorted할 때 무슨 영향인 걸까.
import sys
input = sys.stdin.readline
n,m=map(int, input().split())
price_li = []
ans = 0
for _ in range(m):
price= tuple(map(int, input().split()))
price_li.append(price)
pack_li = sorted(price_li, key=lambda x:x[0])
sin_li = sorted(price_li, key=lambda x:x[1])
if pack_li[0][0] <= sin_li[0][1]*6:
ans = pack_li[0][0] * (n//6) + sin_li[0][1]*(n%6)
if pack_li[0][0] < sin_li[0][1] * (n%6):
ans = pack_li[0][0] * ((n//6)+1)
else:
ans = sin_li[0][1] * n
print(ans)
2.
if의 if 문은 생각해서 몫+1 은 했는데 땡 탈락,
알고보니 if 첫번째문 ans에서 그럼에도 불구하고 낱개의 최소값과 n의 나머지를 곱해주어야 하고
그럼에도 불구하고 패키지의 최소값이 낱개의 최소값*n 보다 작을 경우에만~
6//n + 1 해줘야 칸다.
3.
나머지는
ans = sin_li[0][1] * n
걍 낱개의 최소값에 n곱해주고 출력하면됨~
0. 리스트의 원소와 정수의 곱을 어떻게??
[0] -----> [0][0]
2차원배열인 걸 계속해서 잊는다.
정렬하고 [0]줄의 [-] 원소를 선택해주어야 한다