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
- 알고리즘_스터디
- 백트랙킹
- python3
- Level2_PStage
- 알고리즘스터디
- ODQA
- U_stage
- 주간회고
- 단계별문제풀이
- 이진탐색
- Level1
- 부스트캠프_AITech3기
- 그리디
- 최단경로
- 그래프이론
- 기술면접
- Level2
- 프로그래머스
- 구현
- 다시보기
- dfs
- 다이나믹프로그래밍
- 이코테
- mrc
- 부스트캠프_AITech_3기
- 파이썬 3
- 개인회고
- 백준
- 정렬
- dp
Archives
- Today
- Total
국문과 유목민
[그리드] 모험가 길드 본문
"이것이 코딩테스트다(나동빈 저)"에서 나온 문제에 대한 코드를 다루고 있습니다.
문제에 대한 구체적인 설명과 조건 등은 책을 참고해주시기 바랍니다.
소요시간: 12분 30초
1. 문제 설명
- 모험가 집단에서 공포도에 따라 그룹을 나눌 때 최소로 나눌 수 있는 그룹을 정한다.
2. 접근 방식
- 여행을 떠날 수 있는 최대 공포자의 수 공포도가 최대인 경우를 정하고(내림차순)으로 그 밑으로 공포도가 같거나 최대인 애들을 넣었었다.
- 주어진 테스트 코스는 패스했지만, 후에 해답을 보니 나와는 다르게 '오름차순'으로 했다.
3. 코드
- 초기 코드_(내림차순 구현)
from collections import deque
def make_group(n, input_ls):
q = deque(sorted(input_ls, reverse=True))
answer = 0
while q:
max_adventure = q.popleft()
answer +=1
for i in range(max_adventure):
if q:
q.popleft()
return answer
- 해답 코드_(오름차순구현)
def make_group(n, input_ls):
group = 0
count = 0
for i in input_ls:
count+=1 # 현재 그룹에 모험가 포함시키기
if count >=1: #현재 그룹에 포함된 모험가의 수로 현재의 공포도 수용가능하다면 그룹 결성
group +=1
count = 0
print(group)
4. 코멘트
- 내가 처음에 생각했을 때에는 최대한 많은 모험가를 보내는 것으로 생각했는데, 해답을 보고 다시 문제를 읽어보니 최대한 많은 그룹을 보내는 문제였다. 그래서 코드를 다시 짰다.
'알고리즘_코딩테스트 > 이것이 코딩테스트다' 카테고리의 다른 글
[그리디] 문자열 뒤집기 (0) | 2021.12.12 |
---|---|
[그리디] 곱하기 혹은 더하기 (0) | 2021.12.12 |
[그래프] 커리큘럼 (0) | 2021.12.08 |
[그래프] 도시 분할 계획 (0) | 2021.12.08 |
[그래프] 팀 결성 (0) | 2021.12.07 |
Comments