일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 공변성
- 타입 좁히기
- 리터럴 타입
- 반공변성
- React
- 태그된 유니온
- async/await
- 결정 알고리즘
- 무한 스크롤
- 인터섹션
- recoil
- TS
- ESlint
- dfs
- 호이스팅
- tailwind
- CORS
- RTK Query
- Promise
- Jest
- map
- 투포인터
- webpack
- CI/CD
- 이분 검색
- useAppDispatch
- SSR
- Cypress
- app router
- autosize
Archives
- Today
- Total
짧은코딩
모험가 길드 본문
반응형
내 풀이
from collections import deque
n = int(input())
ary = list(map(int, input().split()))
ary.sort()
ary = deque(ary)
answer = 0
while ary:
max = ary.pop() - 1
while True:
if ary:
ary.popleft()
max -= 1
if max == 0:
answer += 1
break
else:
break
print(answer)
일단 각 인원들의 공포도를 입력 받고 오름차순으로 정렬한다. 그리고 answer에 완성된 팀의 수를 저장한다. 내가 푼 풀이로는 가장 큰 수를 max에 저장하고 그 인원이 들어왔으니 -1을 해서 저장한다. 그리고 공포도가 낮은 인원을 max가 0이 될 때 까지 삭제한다.
교재 풀이
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(result) # 총 그룹의 수 출력
교재에서는 공포도가 낮은 인원부터 count에 포함 시키면서 현재 모인 인원이 지금 인원의 공포도보다 이상이면 팀이 결성되는 방식으로 풀었다.
=> 교재 풀이가 더 깔끔하다,,,
반응형
'코딩 테스트(Python) > 이것이 취업을 위한 코딩 테스트다' 카테고리의 다른 글
18352 특정 거리의 도시 찾기 (1) | 2022.07.21 |
---|---|
18406 럭키 스트레이트 (0) | 2022.07.19 |
커리큘럼 (0) | 2022.07.17 |
1647 도시 분할 계획 (0) | 2022.07.16 |
팀 결성 (0) | 2022.07.11 |
Comments