우주에서 글을 적어본다
99클럽 코테 스터디 39일차 TIL + 그리디(Greedy) 본문
[오늘의 학습 키워드 및 문제]
- 프로그래머스의 "광물 캐기" 문제를 풀었다.
- 오늘 주제는 어제와 마찬가지로 그리디(Greedy)다.
- ^^...;;
[나의 코드]
def solution(picks, minerals):
sum = 0
for x in picks:
sum += x
# 캘 수 있는 광물의 개수
num_min = sum * 5
if len(minerals) > num_min: # 주어진 광물이 캘 수 있는 광물 수보다 크면
minerals = minerals[:num_min]
# 광물 조사
cnt_min = [[0, 0, 0]for x in range(10)] # dia, iron, stone
for i in range(len(minerals)):
if minerals[i] == 'diamond':
cnt_min[i//5][0] += 1
elif minerals[i] == 'iron':
cnt_min[i//5][1] += 1
else :
cnt_min[i//5][2] += 1
# 피로도가 높은 순서대로 광물 정렬
sorted_cnt_min = sorted(cnt_min, key = lambda x: (-x[0], -x[1], -x[2]))
# 피로도 계산
answer = 0
for mineral in sorted_cnt_min:
d, i, s = mineral
for p in range(len(picks)):
if p == 0 and picks[p]>0: # dia 곡괭이
picks[p]-=1
answer += d + i + s
break
elif p == 1 and picks[p]>0: # iron 곡괭이
picks[p]-=1
answer += 5*d + i + s
break
elif p == 2 and picks[p]>0: # stone 곡괭이
picks[p]-=1
answer += 25*d + 5*i + s
break
return answer
설명은 나중에 덧붙일 예정이니 그냥 보지 마세요.
[오늘의 회고]
- 스터디가 이제 얼마 남지 않았다. 섭섭한데 홀가분하다.
- 뭔가 불안한데 웃음이 세어나오는 것은 어떤 증상인가? 끝!
'항해99 TIL' 카테고리의 다른 글
99클럽 코테 스터디 41일차 TIL + DP (0) | 2024.08.31 |
---|---|
99클럽 코테 스터디 40일차 TIL + DP (0) | 2024.08.30 |
99클럽 코테 스터디 38일차 TIL + 그리디(Greedy) (0) | 2024.08.28 |
99클럽 코테 스터디 37일차 TIL + 완전탐색 (0) | 2024.08.28 |
99클럽 코테 스터디 36일차 TIL + 완전탐색 (0) | 2024.08.28 |