아... 너무 어렵다 DP 기존에 DP문제는 뭔가 특정 시점의 상태값에 대해 더 더하거나 빼거나 해서 다음 상태값을 결정하는 거였는데, 이건 새로운 느낌의 DP문제였다. 우선 큰 그림은몸무게들의 총합을 구해서 (총 사람수 n / 2) 명으로 최대한 (몸무게의 총합 / 2)에 가깝게 만들기이다. 일단 dp 테이블은 dp [한 팀에 최대로 들어갈 수 있는 사람 수][최대 몸무게]로 정했다. 각 dp [i][j]에서 값은 해당 사람 수(i)에서 무게(j)를 만들 수 있으면 1, 없으면 0으로 정했다. 이때 dp [0][0] 즉 0명으로 무게 0을 만들 수 있으므로 dp[0][0]=1로 잡고 시작했다. 그다음에 입력받은 무게들에 대해 dp를 돌려줘야 하는데, 우선 입력값은 다음과 같다. 41235 이러면 정답..
백준 4384 - 공평하게 팀 나누기 (C++)
아... 너무 어렵다 DP 기존에 DP문제는 뭔가 특정 시점의 상태값에 대해 더 더하거나 빼거나 해서 다음 상태값을 결정하는 거였는데, 이건 새로운 느낌의 DP문제였다. 우선 큰 그림은몸무게들의 총합을 구해서 (총 사람수 n / 2) 명으로 최대한 (몸무게의 총합 / 2)에 가깝게 만들기이다. 일단 dp 테이블은 dp [한 팀에 최대로 들어갈 수 있는 사람 수][최대 몸무게]로 정했다. 각 dp [i][j]에서 값은 해당 사람 수(i)에서 무게(j)를 만들 수 있으면 1, 없으면 0으로 정했다. 이때 dp [0][0] 즉 0명으로 무게 0을 만들 수 있으므로 dp[0][0]=1로 잡고 시작했다. 그다음에 입력받은 무게들에 대해 dp를 돌려줘야 하는데, 우선 입력값은 다음과 같다. 41235 이러면 정답..
2025.02.24