본문 바로가기

Algorithm/Programmers

해시 01 - 완주하지 못한 선수, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview

 

간만에 쌓인 것들 다시 업로드를..

 

# 참가자의 각 이름과 이름이 몇번 나왔는지를 확인해서 해시를 만들고,

# 완주자로 위의 해시의 카운트를 빼서 없애준다.

# 남은 참가자가 있으면 그 자가 범인!



# 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

 

 

2020/01/11 - [Algorithm/Leet Code] - LeetCode #929 UniqueEmailAddresses. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접, 데이터..

 

 

LeetCode #929 UniqueEmailAddresses. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제

LeetCode #929 UniqueEmailAddresses. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩..

itdar.tistory.com

2020/01/08 - [Algorithm/Leet Code] - LeetCode #912 SortAnArray. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접, 데이터베이스..

 

 

LeetCode #912 SortAnArray. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래

LeetCode #912 SortAnArray. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기..

itdar.tistory.com

2019/12/23 - [Algorithm/Leet Code] - LeetCode #1189 MaximumNumberOfBalloons. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접, 데..

 

LeetCode #1189 MaximumNumberOfBalloons. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,

LeetCode #1189 MaximumNumberOfBalloons. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,..

itdar.tistory.com

 

 

 

 

2019/10/07 - [Computer/General] - 정보처리기사 실기/필기 - 업무 프로세스 요점 정리

2019/10/09 - [Computer/General] - 정보처리기사 실기/필기 - IT신기술동향_전산영어 요점 정리