728x90
반응형

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

 

프로그래머스

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

programmers.co.kr

VERSION 5.0

 

from collections import Counter
def solution(participant, completion):
    a = Counter(participant)
    b = Counter(completion)
    answer = a-b
    answer = list(answer.keys())[0]
    
    return answer

 

VERSION 4.0

from collections import Counter

def solution(participant, completion):
    answer = ''
    participant = Counter(participant)
    completion = Counter(completion)
    a = participant - completion
    answer = list(a.keys())[0]
    return answer

VERSION 3.0

import collections

def solution(participant, completion):
    participant = collections.Counter(participant)
    completion = collections.Counter(completion)
    
    return list((participant - completion).keys())[0]

==> list(hashDict.keys())[0] ==> key값들만 갖고 온거에서 제일 맨 앞에 애 꺼만(문제가 그렇다!)

 

print(*list(answer.keys()))

==> 리스트 컴프리엔션 해주면 리스트에 있는 key값들 다 나열된다

 

VERSION 2.0

hashDict = {}
sumHash = 0
participant = ["marina", "josipa", "nikola", "vinko", "filipa"]
completion  = 	["josipa", "filipa", "marina", "nikola"]
#HashMap이란 Key-Value의 Pair를 관리하는 클래스이다.
#Key는 hash한 값이 되겠고, Value는 각 선수의 이름으로 해둔다.
for part in participant:
    hashDict[hash(part)] = part
    print("hashDict : {}".format(hashDict))
    sumHash += hash(part)
    print("sumHash : {}".format(sumHash))

for comp in completion:
    sumHash -= hash(comp) #hash의 key 값 제거한다.

print(hashDict[sumHash])

hash() ==> key값을 생성 시키는 함수이고

hashDict[hash()] ==> value 값을 생성시키는 함수이다.

 

 

Version 1.0 collections.Counter() 함수 활용

 

import collections

participant = ["marina", "josipa", "nikola", "vinko", "filipa"]
completion  = 	["josipa", "filipa", "marina", "nikola"]

a = collections.Counter(participant)
b = collections.Counter(completion)
print(a)
print(b)

print(a-b)
answer = a-b
print(list(answer.keys())[0])

collections 모듈의 Counter()함수는 너무 획기적이다.

728x90
반응형

+ Recent posts