일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 보안기사
- 정보보안
- 데이터사이언스
- lightsail
- 리눅스
- FastAPI
- t-test
- 분산시스템
- 그리디
- 코딩테스트
- 정보보안기사
- java
- 자료구조
- Python
- 레디스
- 프로그래머스
- 카카오페이면접후기
- 카카오페이
- 백준
- springboot
- 보안
- synflooding
- 다이나믹프로그래밍
- linux
- 우선순위큐
- 시간초과
- t검정
- 파이썬
- 딥러닝
- LangChain
Archives
Techbrad
[백준] 루프 파이썬 본문
반응형
문제 접근
로프의 개수와 들 수 있는 중량이 주어지고 가장 많이 들 수 있는 중량을 구하는 문제. 처음에는 단순히 15, 10 두개의 루프가 있을 때 15로 나누었을 때 1, 0 이면 15를 들 수 있고 10으로 나누었을 때 1, 1로 20을 들 수 있기 때문에 이러한 방식으로 풀려고 했다. 하지만 이러한 방식은 for 루프를 두번 돌리거나 코드가 복잡해 졌다. 결국 풀지 못하고 다른 코드를 참고 해 보았다....
알고리즘
그리디 알고리즘
코드
k = int(input())
rope = [int(input()) for i in range(k)]
result = []
for i, r in enumerate(sorted(rope, reverse=True)):
result.append(r * (i+1))
print(max(result))
예를 들어 4, 6, 3, 1 라는 리스트가 주어진다면 내림차순으로 6, 4, 3, 1로 정렬한다. 이유는 6 중량으로는 하나의 로프만 가능하고 4 중량으로는 두개의 로프가 가능하다. 이런 규칙을 보았을때 리스트의 인덱스를 활용하여 6 * 1, 4* 2, 3*3, 1*4 이렇게 리스트의 요소와 인덱스를 곱하면 간단하게 구할 수 있다.
역시 아직도 나는 한참 멀었다. 하지만 재밌다 ㅎㅎ
반응형
'Programming > 코딩테스트' 카테고리의 다른 글
[백준] 2828번 사과 담기 게임, 그리디알고리즘 파이썬 (0) | 2023.09.02 |
---|---|
[백준] 전자레인지 파이썬 (0) | 2023.09.01 |
[백준] 거스름돈 파이썬 (0) | 2023.08.31 |
백준 음계 코딩테스트 (0) | 2022.09.01 |
[Python] heqpq를 이용한 힙(heap)자료구조 (0) | 2022.03.01 |