반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준
- 프로그래머스
- 소프티어 지도자동구축
- 백준 점프 파이썬
- 피아노체조 파이썬
- MySQL완전삭제
- 파이썬 평범한배낭
- 도커 컨테이너
- 백준 바이러스
- 등수매기기 파이썬
- 1987파이썬
- 백준알파벳파이썬
- 장애물인식프로그램 파이썬
- 백준 전쟁-전투
- 파이썬데이터분석라이브러리
- CRUD
- 백준 피아노체조
- jenkins
- express mongodb
- 백준 등수매기기
- MongoDB
- 소프티어 장애물인식프로그램
- 백준 점프
- express
- 백준 평범한배낭
- 백준 전쟁 파이썬
- 백준 예산
- 백준 A->B
- 금고털이 파이썬
- 지도자동구축 파이썬
Archives
- Today
- Total
바위 뚫는중
[프로그래머스] Lv2. 피로도 - 완전탐색, 순열 본문
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/87946?language=python3
풀이
순열? Permutation
서로 다른 n개의 원소에서 r개를 중복없이 순서에 상관있게 선택하는 혹은 나열하는 것
위 문제에서 던전의 길이가 최대 8이하로 주어지므로 최대 8! 의 경우의수가 있음
from itertools import permutations 순열을 활용하여 모든 경우의 수를 구한다!
from itertools import permutations
def solution(k, dungeons):
answer = -1
for p in permutations(dungeons, len(dungeons)):
hp = k #현재 체력
cnt = 0 #돌 수 있는 던전의 수
for x, y in p: #x는 p[0] y는 p[1]를 뜻함 각각 최소, 소모
if hp >= x:
hp -= y
cnt += 1
answer = max(answer,cnt) # 순열당 더 큰 cnt로 answer를 지정한다
return answer
예시를 참고로 순열을 생성하면
([80, 20], [50, 40], [30, 10])
([80, 20], [30, 10], [50, 40])
([50, 40], [80, 20], [30, 10])
([50, 40], [30, 10], [80, 20])
([30, 10], [80, 20], [50, 40])
([30, 10], [50, 40], [80, 20])
위와 같은 경우의 수가 나오고 이때 p는 한줄을 뜻한다. 순열 한줄!
p의 x,y라 하면 각각 한줄 안의 요소의 첫째값 둘째값을 뜻함
반응형
'Algorithms > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv 1. 추억 점수, Lv1. 대충 만든 자판 - 문자열 딕셔너리, enumerate (0) | 2023.10.26 |
---|---|
[프로그래머스] Lv0. 한 번만 등장한 문자, Lv0. 최빈값 구하기 - 문자열 Counter, Defaultdict (0) | 2023.10.26 |
[프로그래머스] Lv2. 가장 큰 수 - 정렬 (0) | 2023.10.06 |
[프로그래머스] Lv1. K번째수 - 정렬 (0) | 2023.10.06 |
[MySQL] 프로그래머스 SQL 고득점 Kit - SELECT 20개 (1) | 2023.10.06 |