π programmers - κ΄λ¬ΌμΊκΈ° Level2
그리λ λ¬Έμ μ΄λ€ λ€μ΄μκ° λ§μ μμλλ‘ κ΄λ¬Όμ μΊμ£Όλ©΄ λλ€
λλ λ€μ΄μ μ² λμ κ°μ€μΉλ₯Ό λ¬μ μ΄λ€κ±Έ λ¨Όμ μΊμ§ μ ν΄μ£Όμλλ° κ°μ€μΉμ λ°λΌμ ν리λ ν μ€νΈμΌμ΄μ€κ° μκ³ μλλ μΌμ΄μ€κ° μλ€.
λ¬Έμ λ₯Ό λ€μ κΉλνκ² νμ΄μ μ¬λ €μΌκ² λ€.
- λ΄ νμ΄
def solution(picks, minerals): result = 0 minerals = minerals[:sum(picks)*5] slice_min = [] def count_mineral(min_list): result = 0 check_dict = {"diamond" : 15, "iron" : 5, "stone" : 1} for val in min_list: result += check_dict[val] return result cnt = 0 tmp = [] for mine in minerals: tmp.append(mine) cnt += 1 if cnt == 5: weight = count_mineral(tmp) slice_min.append([weight, tmp]) tmp = [] cnt = 0 if tmp: weight = count_mineral(tmp) slice_min.append([weight, tmp]) slice_min.sort(key=lambda x:x[0]) iron_graph = {"diamond" : 5, "iron" : 1, "stone" : 1} stone_graph = {"diamond" : 25, "iron" : 5, "stone" : 1} for i in range(3): for x in range(picks[i]): if slice_min: if i == 0: mineral_list = slice_min.pop()[1] result += len(mineral_list) elif i == 1: mineral_list = slice_min.pop()[1] for mineral in mineral_list: result += iron_graph[mineral] else: mineral_list = slice_min.pop()[1] for mineral in mineral_list: result += stone_graph[mineral] else: return result return result
첫 λ²μ§Έ νμ΄μΈλ° λ κΉλνκ² λ€λ¬μ΄μ λ€μ μ¬λ €μΌκ² λ€.
그리λ λ¬Έμ λ λ λμ λ°©λ²μ΄ μμκΉ νλ©΄μ μκ°μ΄ μ’ κ±Έλ¦¬λκ²κ°λ€.
μ¬μ€ μ¬μ΄ 그리λ λ¬Έμ λ λΈλ£¨νΈν¬μ€λ 체κ°μ λ³ λ€λ₯Όκ² μκΈ°λ νλ°... λ λμ λ°©λ²μ΄ μμκΉ νλ κ³³μ μκ°μ ν¬μνλ€λ³΄λ μ½λ©ν μ€νΈμ 그리λ λ¬Έμ κ° λμ€λ©΄ μ’ μ§μ¦λλ€ γ
μλ¬΄νΌ μμ¦ velog μ¬λ¦¬λκ±Έ λ§€λ² μ¬λ¦¬μ§ μκ³ μ νμ μΌλ‘ μ¬λ¦¬λλ° λ€μ μ§μ€ν΄μ 맨λ μ¬λ €μΌκ² λ€~~!!