간만에 쌓인 것들 다시 업로드를..
# 참가자의 각 이름과 이름이 몇번 나왔는지를 확인해서 해시를 만들고,
# 완주자로 위의 해시의 카운트를 빼서 없애준다.
# 남은 참가자가 있으면 그 자가 범인!
# 1. Input participant and completion arrays
# 2. Make participant Hash <Name, Count>
# 3. Iterate completion array
# 3.1. Check Hash
# 3.1.1. If Hash has Name of completion, reduce Count.
# 3.1.2. If Hash doesn't have Name or Count == 0, then remove that Name Hash.
# 4. Return remained participant Name from Hash
# 먼저 푼 방법이 파이썬 내장 콜렉션을 쓰지 않아서 코드는 길고 속도는 더 빠름
# 같은 방식을 콜렉션 사용하여 고침. 파이썬 콜렉션 잘 알고 있으면 간결해서 좋을 듯 함
# Initial -- FASTER
def solution(participant, completion):
# 2.
hash_dict = {}
for name in participant:
if name in hash_dict:
hash_dict[name] = hash_dict[name] + 1
else:
hash_dict[name] = 1
# 3.
for completion_name in completion:
if completion_name in hash_dict:
hash_dict[completion_name] = hash_dict[completion_name] - 1
if hash_dict[completion_name] < 1:
del hash_dict[completion_name]
for key in hash_dict:
return key
return null
# # Fixed
# import collections
# def solution(participant, completion):
# hash_dict = collections.Counter(participant) - collections.Counter(completion)
# for key in hash_dict:
# return key
# return null
2019/10/07 - [Computer/General] - 정보처리기사 실기/필기 - 업무 프로세스 요점 정리
2019/10/09 - [Computer/General] - 정보처리기사 실기/필기 - IT신기술동향_전산영어 요점 정리