-문제 : https://www.acmicpc.net/problem/2437
Gold Level2 문제
2022.11.01에 풀이 추가
풀이 이해
간단하지만 도무지 이해가 가지 않아서 구글링을 했다.
풀이 아이디어는 weights[i]가 추가될 때마다 측정 가능한 무게의 범위가 증가하는데, 이게 연속적일 수도 아닐 수도 있다.
그래서 새로 추가된 부분이 연속적이지 않을 때, 그때의 시작 부분을 반환하면 된다
-정답풀이:
이 문제도 그리디에서 변수에 값 저장한 후 단일 반복문으로 푸는 문제다
이 유형 문제는 언제쯤 답 없이 풀 수 있을까ㅠㅠㅠㅠ 풀고 싶다
n=int(input())
data=list(map(int,input().split()))
data.sort()
result=0
for i in range(n):
if result + 1 >= data[i]:
result += data[i]
else:
break
print(result+1)
-메모리 초과한 풀이
combination으로 모든 경우의 수를 구하고, 그것의 합을 구한 다음, 그 중에 없는 가장 작은 값을 출력하는 방법을 생각했다.
역시나 메모리 초과가 떴다
import itertools
n=int(input())
data=list(map(int,input().split()))
result=[]
for i in range(n):
result.append(data[i])
for i in range(2,n):
temp = list(itertools.combinations(data,i))
for j in range(len(temp)):
result.append(sum(temp[j]))
result.sort()
i=1
while True:
if i not in result:
answer=i
break
i+=1
print(answer)
'백준 > Greedy' 카테고리의 다른 글
[그리디/백준] 2847번: 게임을 만든 동준이 (0) | 2022.07.07 |
---|---|
[그리디/백준] 1543번: 문서 검색 (0) | 2022.07.05 |
[그리디/백준] 1449번: 수리공 항승 (0) | 2022.07.05 |
[그리디/백준] 1080번: 행렬 (0) | 2022.07.04 |
[그리디/백준] 1049번: 기타줄 (0) | 2022.07.04 |