첨에 못 알아들음, 입출력으로 유추해보는데
하나하나 곱해보니 그 다음 작은 수를 곱한다고 해도 가장 작은 수의 중량을 넘겨버림
그래서 가장 적은 중량으로 곱해주면 된다고 생각
0 .for 문에 안 돌리고
ans 를 출력하는데
처음에 reverse 를 안 쓰고 내림차순으로 정렬하여 [10, 15] 로 저장됨
10을 인덱스 갯수만큼 곱해주면 된다고 생각
..
근데 이게 왜 안 될까 고친 코드가
for j in range(n):
ans.append(rope[j] *(j+1))
최대 중량 15를 저장하는 것이 의미가 있을까
print(max(ans)) 해서 가장 큰 중량을 출력해준다.
n=int(input())
rope=[]
ans=[]
for i in range(n): # (1,n) 으로 범위지정할 경우, n이 2일경우, 1 밖에 안되니 2출력 안됨
rope.append(int(input())) # 세로로 입력값 입력시는 .append 사용 (not list(map))
rope.sort(reverse=True) # rope=rope.sort 는 안됨
# for j in rope:
# ans=rope[0]*n
for j in range(n):
ans.append(rope[j]*(j+1))
print(max(ans))
1. 입력이 세로일 경우
입력이 가로일 경우, list(map(int, input().split()))
이런 식으로 몇 개를 나열하기 위해 list, 이 숫자를 다 int 로 변환해주기 위해 map
2
10 15
입력이 세로일 경우,
2
10
15
.append(int(input())
형태로 [] 빈 값 리스트를 위에서 정의해주면 .append 를 사용해주어서 입력을 추가해준다. 외우기*
'2022-3 > 1일1코딩' 카테고리의 다른 글
[BOJ] 5585 python (0) | 2022.09.28 |
---|---|
[BOJ] 1026 python (1) | 2022.09.23 |
[BOJ] 13305 python (1) | 2022.09.21 |
[BOJ] 1541 python (2) | 2022.09.20 |
[BOJ] 11399 python (0) | 2022.09.19 |