반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Kakao
- 프로그래머스
- DPDK
- IT
- 알고리즘
- programmers
- 캐시
- springboot
- 백엔드
- C
- Python
- 카카오
- Java
- Spring
- 스프링
- 쿠버네티스
- docker
- 코딩테스트
- Elasticsearch
- 파이썬
- 스프링부트
- Linux
- 프로그래머스 #카카오 #IT #코딩테스트
- 자바
- 운영체제
- 리눅스
- 개발자
- 도커
- 네트워크
- 엘라스틱서치
Archives
- Today
- Total
저고데
[프로그래머스]피로도 본문
728x90
반응형
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/87946
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드를 작성하기 위한 순서는 다음과 같다.
1. dungeons의 크기가 8이하이기 때문에 permutations을 사용해준다.
2. 모든 경우의 수를 구한 후, 조건에 맞으면 cnt+1를 해주고 max를 사용하여 가장 큰 값을 반환한다.
from itertools import permutations #1번
def solution(k, dungeons):
answer = -1
for i in permutations(dungeons, len(dungeons)): #1번, 2번
total=k
cnt=0
for j in i:
if total>=j[0]: #현재 피로도가 최소 피로도보다 커서 던전 입장이 가능할 때이다.
cnt+=1 #2번
total-=j[1]
else:
break
answer=max(answer, cnt) #2번
return answer
시간복잡도가 그리 크지 않은 문제였기 때문에 permutations 모듈을 사용하여 편하게 모든 경우의 수를 구할 수 있었다.
알고리즘을 구현할 때, 가장 기초이자 설계에서 시간복잡도를 계산하는 것은 매우 중요하다.
데이터의 크기와 시간복잡도에 따라서 그에 맞는 효율적인 알고리즘이 다르기 때문에, 항상 문제를 읽을 때는 이를 특별히 더 신경써야할 듯하다.
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스]전화번호 목록 (0) | 2023.02.04 |
---|---|
[프로그래머스]더 맵게 (0) | 2023.02.03 |
[프로그래머스][3차]압축 (0) | 2023.02.03 |
[프로그래머스]땅따먹기 (0) | 2023.02.03 |
[프로그래머스]야근 지수 (0) | 2023.02.02 |