모험가 길드 코드 및 해설 (파이썬)

2021. 8. 16. 15:37algorithm

반응형

출처: 이것이 취업을 위한 코딩 테스트다 with 파이썬, Q 1, p 311

 

그룹의 개수를 저장할 변수인 count를 0으로 초기화합니다. 모험가들의 공포도 리스트를 내림차순으로 정렬하고, 이 중 첫 요소를 꺼내 현재 공포도의 최댓값을 구합니다. 공포도 리스트의 길이가 현재 공포도의 최댓값보다 짧으면 더 이상 그룹을 형성할 수 없어 while문을 탈출하고, 그렇지 않으면 공포도의 최댓값만큼 공포도 리스트의 요소를 삭제합니다. 이는 그룹 하나를 형성했다는 의미이므로 count 값을 하나 증가시킵니다. 마지막으로 count를 반환합니다.

 

import sys

# 모험가 수
N = int(sys.stdin.readline())
# 공포도 리스트
scared = list(map(int, sys.stdin.readline().split()))
# 내림차순 정렬
scared.sort(reverse=True)

# 모험가 그룹의 수
count = 0
while scared:
    # 현재 공포도의 최댓값
    x = scared[0]
    if len(scared) < x:
        break
    # 공포도 크기만큼 모험가 수 지우기
    scared = scared[x:]
    count += 1

print(count)
반응형