반응형

언어 : Python

 

Link : https://programmers.co.kr/learn/courses/30/lessons/42576

프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

 

풀이 : 

해쉬만 알면.. 어려운건아닌데.. 지렸던 타인의 풀이가 있어서.. 남겨본다.

 

먼저 내 코드이다.

def solution(participant, completion):
    answer = ''
    dictionary = {}

    for i in participant:
        if (dictionary.get(i) != None):
            dictionary[i] += 1
        else:
            dictionary[i] = 1

    for i in completion:
        dictionary[i] -= 1

    for i in participant:
        if dictionary[i] == 1:
            answer = i

    return answer

그냥 단순하게..

딕셔너리를 통해 결과값을 배출하는 코드이다.

 

근데.... 다른사람의 코드를 보자

def solution(participant, completion):
    answer = ''
    temp = 0
    dic = {}
    for part in participant:
        dic[hash(part)] = part
        temp += hash(part)
    for com in completion:
        temp -= hash(com)
    answer = dic[temp]

    return answer

언뜻 보면 내꺼랑 같을 수 있는데...

여기서 조금 다른게 hash 의 +-를 통해 해쉬의 키를 마지막으로 구해서 그 키를 통해 

한순간에 dictionary에 접근 한다는 것이다... 

단순히 해쉬에 +-를 통해서 key값을 바로 만들어버린다는 것에서 충격과 0포였다...

 

역시 난 갈길이 멀다. 끗

 

반응형

'Algorithm' 카테고리의 다른 글

leetcode 173 java  (0) 2025.02.11
leetcode 701 java  (0) 2025.02.11
BOJ No.1484[다이어트]  (0) 2021.03.23
BOJ No.11657[타임머신]  (0) 2021.03.20
BOJ No.1339[단어 수학]  (2) 2021.03.14

+ Recent posts