Collections
클래스에서 OrderedDict()
함수를 사용하는 문제다:
import re, sys
N = int(sys.stdin.readline())
pat1 = re.compile('[0-9]+')
pat2 = re.compile('[a-z]+|[A-Z]+')
item_list = {}
for i in range(N):
item = sys.stdin.readline().strip()
item_name = ' '.join(pat2.findall(item))
item_price = int(pat1.findall(item)[0])
if not item_name in item_list:
item_list[item_name] = item_price
else:
item_list[item_name] += item_price
for j in item_list:
print("%s %s" %(j, item_list[j]))
하지만 문제를 보니 실제로 이를 사용할 필요가 전혀 없었다. 더불어 OrderedDict()
를 사용했으면 더욱 더 복잡하게 만들고 어떻게 풀어야할지 감도 안잡혔다. 따라서 re
함수를 사용하여 간단하게 풀었다.
'알고리즘 테스트 > Hackerrank 문제풀이 및 해설' 카테고리의 다른 글
<Hackerrank 문제풀이: 파이썬> itertools.combinations() (0) | 2020.12.04 |
---|---|
<Hackerrank 문제풀이: 파이썬> Symmetric Difference (0) | 2020.12.03 |
<Hackerrank 문제풀이: 파이썬> Collections.namedtuple() (0) | 2020.12.01 |
<Hackerrank 문제풀이: 파이썬> Exceptions (0) | 2020.11.30 |
<Hackerrank 문제풀이: 파이썬> Calendar Module (0) | 2020.11.29 |