본문 바로가기
2022-3/1일1코딩

[BOJ] 2217 python

by 이망고_ 2022. 9. 22.

 

첨에 못 알아들음, 입출력으로 유추해보는데

하나하나 곱해보니 그 다음 작은 수를 곱한다고 해도 가장 작은 수의 중량을 넘겨버림

그래서 가장 적은 중량으로 곱해주면 된다고 생각

 

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