Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Docker
- 스프링부트
- DFS
- gcp
- 알고리즘
- Apache Kafka
- VPC
- 인천여행
- 월미도
- JPA
- 쿠버네티스
- 백트래킹
- 클라우드
- 자료구조
- Kafka
- Spring
- 백준
- Spring Data JPA
- 프로그래밍문제
- Spring Boot
- 스프링
- 클라우드 컴퓨팅
- aws
- springboot
- 카프카
- Elasticsearch
- 코드업
- 로드밸런서
- 오일러프로젝트
- 스프링 부트
Archives
- Today
- Total
GW LABS
[Backjoon] 저울 본문
백준 2437번 저울 문제는 정렬을 이용해서 풀 수 있는 그리디 알고리즘 문제이다. 주어진 추들을 정렬하고 추들을 이용해서 만들 수 없는 무게의 최소값을 찾는 문제이기 때문에 역순으로 정렬하여 접근했다. 처음 풀이에서는 최소값을 1씩 늘려가면서 순회하느라 시간초과가 발생했다. 그러나 추들의 무게를 더해주면서 최소값을 찾으면 정답을 얻을 수 있다.
아래는 풀이법이다.
import sys
if __name__ == "__main__":
cases = int(sys.stdin.readline())
weight = list(map(int, sys.stdin.readline().split(" ")))
weight.sort(reverse=True)
num_check = 1
while True:
target = num_check
for idx in range(cases):
if weight[idx] == target:
target -= weight[idx]
# 최소값을 찾을 때 추의 무게를 더해준다.
num_check += weight[idx]
break
elif weight[idx] < target:
target -= weight[idx]
if target > 0:
break
print(num_check)
'Algorithm & DataStructure' 카테고리의 다른 글
[Backjoon] 통나무 건너뛰기 (0) | 2020.12.13 |
---|---|
[Backjoon] 톱니바퀴 (0) | 2020.12.10 |
[Backjoon] 영역 구하기 (0) | 2020.11.30 |
[Backjoon] 단어 뒤집기 2 (0) | 2020.11.26 |
[Backjoon] 섬의 개수 (0) | 2020.11.18 |
Comments