python-for-coding-test
python-for-coding-test copied to clipboard
[그리디-모험가 길드] 저만의 문제풀이 방식 피드백
책 311페이지의 그리디 기출문제인 '모험가 길드' 문제에서 제공해주신 정석 풀이는 잘 이해했습니다! 제가 처음 시도할 때 도전해본 풀이방법이 제공된 테스트 케이스 1개에서는 통과를 하지만 다른 테스트 케이스에서도 통과를 할지 의문이어서 질문 남깁니다! 극단적인 테스트 케이스 N이 만개, 10만개를 numpy 이용해서 수행했는데 오래걸리지는 않았거든요..? 혹시나 해서 피드백 부탁드립니다! 소스코드는 원본이랑 numpy로 테스트한 코드 모두 올리겠습니다!
N = int(input())
phobia = list(map(int, input().split()))
set_phobia = list(set(phobia)) # distinct한 공포도
group = 0
for set_p in set_phobia: # distinct한 공포도 하나씩 loop
cnt = phobia.count(set_p) # distinct한 공포도 count
group_cnt = cnt // set_p # count를 공포도로 나눈 몫이 그룹으로 형성될 count
group += group_cnt
print(group)
import numpy as np
phobia = np.random.randint(low=1, high=10000, size=10000)
phobia = phobia.tolist()
set_phobia = list(set(phobia))
group = 0
for set_p in set_phobia:
cnt = phobia.count(set_p)
print(cnt)
group_cnt = cnt // set_p
group += group_cnt
print(group)