내용으로 건너뛰기
테페리넷
사용자 도구
등록
로그인
사이트 도구
검색
도구
문서 보기
Fold/unfold all
역링크
미디어 관리자
사이트맵
등록
로그인
>
미디어 관리자
사이트맵
현재 위치:
테페리넷
»
Problem Solving
»
문제
»
백준 온라인 저지 (BOJ)
»
저울
ps:problems:boj:2437
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== 저울 ====== ===== 풀이 ===== * 재미있는 그리디 아이디어로 풀리는 문제. 알고리즘 지식이 필요없이 아이디어만 필요하기 때문에 퍼즐 문제로도 좋을 듯 하다 * 무게가 전부 정렬되어있다고 하자. a[0:i] 까지의 추를 사용해서 1부터 x까지의 무게를 모두 잴수 있다고 하다. a[i]이 x+1보다 크다면, x+1은 잴 방법이 없으므로 답은 x+1이 된다. a[i]가 x+1보다 작거나 같다면 이제 a[0:i+1]의 추를 이용하면 1부터 x+a[i] 까지의 모든 무게를 잴 수 있다. 이제 x를 x+a[i] 로 갱신하고, a[i+1]을 x+1과 비교하는 것을 반복하는 식으로 처리하면 된다. * 시간복잡도는 정렬에 O(nlogn), 비교에 O(n). 총 O(nlogn)이다 ===== 코드 ===== <dkpr py> """Solution code for "BOJ 2437. 저울". - Problem link: https://www.acmicpc.net/problem/2437 - Solution link: http://www.teferi.net/ps/problems/boj/2437 Tags: [Greedy] """ def main(): N = int(input()) # pylint: disable=unused-variable weights = [int(x) for x in input().split()] weights.sort() max_measurable_weight = 0 for w in sorted(weights): if w > max_measurable_weight + 1: break max_measurable_weight += w print(max_measurable_weight + 1) if __name__ == '__main__': main() </dkpr> {{tag>BOJ ps:problems:boj:골드_3}}
ps/problems/boj/2437.txt
· 마지막으로 수정됨: 2022/02/02 05:28 저자
teferi
문서 도구
문서 보기
역링크
Fold/unfold all
맨 위로