| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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
                            
                        
                          
                          - template/callback
- 파이썬
- Spring
- OpenSource
- curl
- ELK
- monitoring
- devops
- metricbeat
- konga
- umc
- kong
- 하이브리드 데이터 모델
- mybatis
- docker
- fosslight
- 화자분리
- jwt-java
- API Gateway
- pyannote
- 자료구조
- java
- roll over
- Nice
- DI
- 메소드
- C++
- prometeus
- supabase
- elastic search
                            Archives
                            
                        
                          
                          - Today
- Total
youngseo's TECH blog
[PS | 한 번에 맞자!] 백준 2629 본문
0. 문제
2629번: 양팔저울
첫째 줄에는 추의 개수가 자연수로 주어진다. 추의 개수는 30 이하이다. 둘째 줄에는 추의 무게들이 자연수로 가벼운 것부터 차례로 주어진다. 같은 무게의 추가 여러 개 있을 수도 있다. 추의 무
www.acmicpc.net
1. 문제 해석
추의 종류와 구슬의 종류가 주어졌을 때 추들로 구슬들의 무게를 판단할 수 있는가 없는가를 물어보는 문제이다. 예를 들어 예제 2를 보면 추 1,4kg으로 알 수 있는 구슬의 무게는 1,4,3,5 kg에 해당한다. 양팔 저울의 양쪽에 놓을 수 있다는 것을 주의하자!
따라서 Knapsack으로 DP를 채워나간다. DP[추의 종류][구슬 무게] = 가능?불가능? 으로 나타낼 수 있고 DP table을 채우는 것은 for문 추의 무게로 채운다. 이 때 양팔 저울의 양쪽에 모두 놓을 수 있는 것을 적용하기 위해 abs(j-추)로 저울에
j / 추 를 놓는 경우와 추 / j 를 놓는 경우를 반영해줘야 한다!
2. 문제 구현
N=int(input())
List=list(map(int,input().split()))
K=int(input())
target=list(map(int,input().split()))
#init
#DP[추 종류][구슬 무게]=가능 불가능
DP=[[0 for _ in range(40000+1)] for _ in range(N+1)]
DP[0][0]=1
for i in range(N):
    추 =List[i-1]
    for j in range(40000+1):
        if DP[i][j]==1: 
            DP[i+1][j+추]=1
            DP[i+1][j]=1
            DP[i+1][abs(j-추)]=1
for k in target:
    if DP[N][k]==1: print("Y",end=' ')
    else: print("N", end=' ')
print()3. 한 번에 풀었는가? O
'알고리즘 > 세부구현' 카테고리의 다른 글
| [PS | 한 번에 맞자!] 백준 1949 (0) | 2023.08.02 | 
|---|---|
| [PS | 한 번에 맞자!] 백준 20366 (0) | 2023.07.25 | 
| [PS | 한 번에 맞자!] 백준 1300 (0) | 2023.07.21 | 
| [PS | 한 번에 맞자!] 백준 22942 (0) | 2023.07.20 | 
| [PS | 한 번에 맞자!] 백준 10775 (0) | 2023.07.20 | 
 
                   
                  