728x90
https://softeer.ai/practice/info.do?idx=1&eid=581
💡 문제 풀이
기본적인 그리디? 문제이다.
사실 백트래킹으로 풀어야 할 것 같지만 파이썬의 강력한 라이브러리인 itertools를 사용해서 순열을 구현한다면 쉽게 해결할 수 있다.
✔️ 느낀 점
그렇게 어렵지 않았지만 익숙해지는 시간이 필요한 것 같다. 문법에 아직도 많이 적응을 못한 것 같다.
💻 코드
from itertools import permutations
import sys
input = sys.stdin.readline
answer = 99999
n, m, k = map(int, input().split())
rails = list(map(int, input().split()))
def calculate(current):
totalWeight, weight = 0, current[0]
idx, cnt = 0, 0
while cnt < k:
nextWeight = current[(idx + 1) % n]
if weight + nextWeight > m:
totalWeight += weight
weight = nextWeight
cnt += 1
else:
weight += nextWeight
idx += 1
return totalWeight
for p in permutations(rails, n):
answer = min(answer, calculate(list(p)))
print(answer)
'문제 풀이 > 소프티어 (Softeer)' 카테고리의 다른 글
[Python] 소프티어 : 거리 합 구하기 (0) | 2023.02.20 |
---|---|
[Python] 소프티어 : 이미지 프로세싱 (0) | 2023.02.20 |
[Python] 소프티어 : 로드 밸런서 트래픽 예측 (0) | 2023.02.19 |
[Python] 소프티어 : [인증평가(1차) 기출] 로봇이 지나간 경로 (0) | 2023.02.10 |
[Python] 소프티어 : [21년 재직자 대회 예선] 좌석 관리 (0) | 2023.02.09 |
댓글