[매3백] 210415 그리디

Dana·2021년 4월 15일
0

매3백

목록 보기
5/9

1.

백준 1339번: 단어 수학 파이썬 풀이

n = int(input())
dic_word = {}
for _ in range(n):
    word = input()
    for i in range(len(word)):
        w = word[i]
        if w in dic_word:
            dic_word[w] += 10 ** (len(word)-i-1)
        else:
            dic_word[w] = 10 ** (len(word)-i-1)

nums = []
for value in dic_word.values():
    nums.append(value)
nums.sort(reverse=True)
result = 0
cnt = 9
for i in nums:
    result += (i*cnt)
    cnt -= 1
print(result)

딕셔너리 자료형을 이용해서 우선순위를 매기는 것 까지는 생각했는데, 더 디테일한 아이디어가 필요한 문제였다.

2.

백준 1715번: 카드 정렬하기 파이썬 풀이

import heapq
import sys

n = int(input())
card = []
for _ in range(n):
    heapq.heappush(card, int(sys.stdin.readline()))

if len(card) > 1:
    result = 0
    while len(card) > 1:
        temp_1 = heapq.heappop(card)  # 가장 작은 덱
        temp_2 = heapq.heappop(card)  # 두번째로 작은 덱
        result += (temp_1 + temp_2)
        heapq.heappush(card, temp_1 + temp_2)
    print(result)
else:
    print(0)

한 번 풀었던 문제인데 또 못풀었다.
heapq 자료구조가 나오면 일단 겁을 먹는 것 같아서 정리해 두기로 했다.
프로그래머스 챌린지 참가로 2문제만~

0개의 댓글