일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- sgd
- 설치
- PostgreSQL
- HTML
- AdaGrad
- 우분투
- 책
- CTF
- 신경망
- 역전파
- PHP
- 백준
- 소프트맥스 함수
- C언어
- 딥러닝
- Python
- 신경망 학습
- 리뷰
- 아파치
- 파이썬
- 기울기
- Python Challenge
- PICO CTF
- 코딩
- 순전파
- flag
- FastAPI
- 오차역전파법
- picoCTF
- Apache2
Archives
- Today
- Total
Story of CowHacker
백준 2217번 로프 본문
728x90
백준 2217번 로프를 풀어봤다.
이번 문제를 문제 이해를 하는데 조금 시간이 걸렸다.
무슨 말인지 싶었다.
예를 하나 보고는 바로 이해됐다.
예)
로프 개수 : 5
로프가 버틸 수 있는 최대 중량 : 20 10 30 40 5
이런 상황일 때
[ 20, 10, 30, 40, 5 ]
첫 번째 로프 최대 중량 20인 로프는 앞의 로프 2개를 추가적으로 쓸수 있다.
( 최대중량 10과 5인 로프는 중량 20을 들 수 없다. )
-> 20 * 3 = 60
두 번째 로프 최대 중량 10인 로프는 남은 로프 중 3개를 추가적으로 쓸 수 있다.
-> 10 * 4 = 40
세 번째 로프 최대 중량 30인 로프는 남은 로프 중 1개를 추가적으로 쓸 수 있다.
-> 30 * 2 = 60
네 번째 로프 최대 중량 40인 로프는 남은 로프 중 추가적으로 쓸 수 있는것이 없다.
-> 40
다섯 번째 로프 최대중량 5인 로프는 남은 로프중 4개를 추가적으로 쓸수 있다.
-> 5 * 5 = 25
이제 여기서 최대한으로 들 수 있는 중량은 세 번째 로프를 사용한 60이다.
N = int(input()) # 로프갯수다.
lopelist = [] # 로프 종류를 담을 리스트다.
wlist = [] # 무게 종류를 담을 리스트다.
f = 0 # 로프 종류 리스트 인덱스설정 값이다.
for _ in range(N): # 로프 갯수만큼 for문을 돌린다.
lope = map(int, input().split()) # 로프 종류를 엔터 기준으로 입력 받는다.
for _ in lope: # 로프 종류를 for문에 하나씩 넣는다.
lopelist.append(_) # for문에 받은 로프 종류를 리스트에 담는다.
lopelist = sorted(lopelist) # 로프 종류 리스트를 오름차순으로 정렬한다.
while True: # while문의 무한루프다.
w = lopelist[f] * N # 로프 종류 리스트의 인덱스와 로프 갯수를 곱한다.
N -= 1 # 로프 갯수를 1개 줄인다.
f += 1 # 로프 종류 리스트 인덱스 설정값을 1개 더한다.
wlist.append(w) # 무개 종류를 리스트에 담는다.
if N == 0: # 로프 갯수가 0일 때 진입한다.
wlist = sorted(wlist) # 무게 종류 리스트를 오름차순으로 정렬한다.
print(wlist[-1]) # 가장 무거운 무게를 출력한다.
break # while문의 무한루프를 종료한다.
728x90
'공부 > 백준' 카테고리의 다른 글
백준 10162번 전자레인지 (0) | 2020.09.08 |
---|---|
백준 1541번 잃어버린 괄호 (0) | 2020.09.08 |
백준 5585번 거스름돈 (0) | 2020.09.03 |
백준 11047번 동전0 (0) | 2020.08.31 |
백준 11399번 ATM (0) | 2020.08.31 |
Comments