-
[이코테 Greedy] 모험가 길드Coding Test/이것이 코딩 테스트다 2021. 1. 8. 21:01
# 문제
# 입력 예시
5 2 3 1 2 2
# 출력 예시
2
내 풀이
n = int(input()) guild = list(map(int, input().split())) # 낮은 공포도 순으로 정렬 guild.sort() result = 0 # 여행을 떠날 그룹의 수 i = 0 # 인덱스 # j를 하나씩 올리면서 인덱스를 이용해 그룹 숫자 카운트 for j in range(n): # j번째 모험가의 공포도가 (j - i + 1)명의 모험가 수와 같을 때, 그룹을 하나 만듬 if guild[j] == j - i + 1: result += 1 # 그룹의 수 카운트 i = j + 1 # i를 (j+1) 번째 모험가를 가리키도록 옮김 print(result)
지향할 답안
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) # 총 그룹의 수 출력
고려할 점
좀 더 로직이 깔끔하게 눈에 들어오게 짜면 좋겠다.
'Coding Test > 이것이 코딩 테스트다' 카테고리의 다른 글
[이코테 Greedy] 볼링공 고르기 (0) 2021.01.08 [이코테 Greedy] 만들 수 없는 금액 (0) 2021.01.08 [이코테 Greedy] 1이 될 때까지 (0) 2021.01.08 [이코테 Greedy] 숫자 카드 게임 (0) 2021.01.08 [이코테 DFS&BFS] 미로 탈출 (0) 2020.10.20