https://programmers.co.kr/learn/courses/30/lessons/42576
참여자가 숫자로 주어졌을땐, 배열의 인덱스를 이용하면 된다
문자열으로 주어졌을땐 어떻게 해야할까?
더해서, 제한사항에 동명이인이 있을 수 있다는 조건이 걸렸다
이럴때는 해쉬 즉, 파이썬의 dictionary를 이용한다
참여자 leo 1 / kiki 1 / eden 1
완주자 eden 0 / kiki 0
value값이 1인 key의 값을 return 해주면 된다
def solution(participant, completion):
answer = ''
dic = {}
for i in participant:
if i in dic.keys():
dic[i] += 1
else:
dic[i] = 1
for j in completion:
dic[j] -= 1
for key in dic:
if dic[key] == 1:
answer = key
return answer
정석코드
def solution(participant, completion):
d = {}
for x in participant:
d[x] = d.get(x, 0) + 1
for x in completion:
d[x] -= 1
dnf = [k for k, v in d.items() if v > 0]
answer = dnf[0]
return answer
d.get(x, 0) + 1 # x가 딕셔너리에 있다면 (x의 value + 1)값을 반환, 없다면 (0 + 1)값을 반환
'알고리즘 > 프로그래머스(Python)' 카테고리의 다른 글
[알고리즘] 프로그래머스 더 맵게 / python (0) | 2020.02.18 |
---|---|
[알고리즘] 프로그래머스 큰 수 만들기 / python (0) | 2020.02.16 |
[알고리즘] 프로그래머스 가장 큰 수 / python (0) | 2020.02.15 |
[알고리즘] 프로그래머스 체육복 / python (0) | 2020.02.15 |
[알고리즘] 프로그래머스 스킬트리 / python (0) | 2020.02.14 |