소스 코드
# 매일 K 감소 # N개의 키트, 한 번씩만 사용 가능 # 어떤 시점에서도 500보다 작아지면 안 됨 # 항상 500 이상이 되는 경우의 수를 출력 def find(day,now): global cnt if day == n: if board.count(0) == 0: cnt += 1 return for q in range(n): if board[q] == 0: if now - k + kit[q] >= 500: board[q] = 1 find(day+1, now - k + kit[q]) board[q] = 0 return n,k = map(int,input().split()) kit = list(map(int,input().split())) kit.sort() board = [0] * n cnt = 0 find(0,500) print(cnt)
해결 방법
1. 브루트포스, 모든 경우의 수 다 찾아서 확인하면 됨
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.백준' 카테고리의 다른 글
[BOJ/백준 코딩] 바이러스 - PYTHON #2606 (0) | 2023.07.09 |
---|---|
[BOJ/백준 코딩] 촌수계산 - PYTHON #2644 (0) | 2023.07.02 |
[BOJ/백준 코딩] 회사 문화 1 - PYTHON #14267 (1) | 2023.06.17 |
[BOJ/백준 코딩] Final Price - PYTHON #28224 (0) | 2023.06.17 |
[BOJ/백준 코딩] 오렌지먹은지오랜지 - PYTHON #27962 (0) | 2023.06.11 |