그리디_모험가 길드

EunBi Na·2022년 6월 12일
0

문제

1) 한 마을에 모험가가 N명
2) 모험가별로 가지고 있는 ‘공포도’가 다르다.
3) 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여 최대 몇 그룹이 탄생하는가?

링크텍스트

map을 사용하여 정수로 변환하기

split의 결과를 매번 int로 변환해주려니 귀찮습니다. 이때는 map을 함께 사용하면 됩니다. map에 int와 input().split()을 넣으면 split의 결과를 모두 int로 변환해줍니다(실수로 변환할 때는 int 대신 float를 넣습니다.).

변수1, 변수2 = map(int, input().split())
변수1, 변수2 = map(int, input().split('기준문자열'))
변수1, 변수2 = map(int, input('문자열').split())
변수1, 변수2 = map(int, input('문자열').split('기준문자열'))

풀이접근

묶이는 족족 그룹 인원수를 증가
최대한 작은 공포도부터 그룹에 묶다가 그룹에 속한 인원 수보다 현재 모험가의 공포도가 작거나 같을 때 분리

풀이

def solution(n):
     n = int(input())
     group = list(map(int, input().split()))
     group_count = 0
     total_count = 0
     
     for i in group:
     	group_count += 1
        if i <= gropu_count:
        	total_count += 1
       
    return total_group

답안풀이

n = int(input())
data = list(map(int, input().split()))
data.sort()

result = 0 #총 그룹의 수
count = 0

for i in data: #공포도를 낮은것부터 하나씩 확인하며
	count += 1 #현재 그룹에 해당 모험가를 포함시키기
    if count >= i: #현재 그룹에 포함된 모험가의 수가 현재 공포도 이상이라면, 그룹형성
    	result += 1 #총 그룹의 수 증가시키기
        count = 0 #현재 그룹에 포함된 모험가의 수 초기화
        
print(reuslt) # 총 그룹의 수 출력
profile
This is a velog that freely records the process I learn.

0개의 댓글