반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [백준] 백준 28447번 마라탕 재료 고르기 파이썬(Python)

1) 문제번호 : 28447

 

2) 문제 출처

https://www.acmicpc.net/problem/28447

 

28447번: 마라탕 재료 고르기

재료 $1, 2, 4$를 고르면 $C_{1, 2} = 1, C_{1, 4} = 3, C_{2, 4} = 6$으로 최대인 $10$이 된다.

www.acmicpc.net

 

2. 풀이

- 이 문제는 조합에 관한 문제다.

- 2차원 리스트로 값을 입력을 받은 다음에, N개의 숫자에서 K개를 뽑는 조합의 경우의 수를 출력한다.

- 아래의 combinations(i for i in range(N), K) 이 N은 4이고, K는 3일 때, (0,1,2), (0,1,3), (0,2,3), (1,2,3) 의 경우의 수가 나온다.

- 이제 이 조합에서 다시 2개를 뽑아서 더한 값들을 1개의 리스트에 저장하여 거기서 최대값을 뽑아 출력하면 된다.

 

3. 소스 코드

import sys
input = sys.stdin.readline
from itertools import combinations

N, K = map(int, input().split()) # 마라탕 재료 수, 고를 재료의 수

req = []
result = []

for i in range(0, N) : 
    req.append(list(map(int, input().split())))

for c in combinations([i for i in range(N)], K) : 
    sum = 0
    
    for c2 in combinations(c, 2) : 
        sum += req[c2[0]][c2[1]]
    
    result.append(sum)

print(max(result))

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기