최근,카카오에서 쓰여서
더 유명해진 사이트 프로그래머스!
여기서 코딩테스트 연습용으로
모아준 문제들이 있어서
시간날 때마다 하나씩
풀어보고 있다.
⬇ 문제확인하러 가기
https://programmers.co.kr/learn/challenges
코딩테스트를 보다보면 의외로
키를 통해 매핑하는 문제나 문자열을
가공하여 푸는 문제들이
자주 나온다.
이러한 문제들에서는
정말 파이썬이 딱이다.
마치 코딩테스트를 풀라고
나온 언어 같다라는
생각이 들정도다.
문제
functools의 reduce와 같은
고차함수를 사용하면
엄청난 축약이 가능하고
문법을 안다면 의미가 직관적으로
이해되기 때문에 로직을 짜는데
상당히 유용하다.
이번 문제도 이를 활용하면
간결하게 해결 할 수 있다.
작성 코드
from functools import reduce
def solution(participant, completion):
part = reduce(lambda temp,value : temp.update({value:temp.get(value, 0)+1}) or temp, participant, {})
for a in completion:
part.update({a:part.get(a,1)-1})
answer = list(filter(lambda a : part.get(a) != 0,part))[0]
return answer
도움이 되셨다면
로그인이 필요없는 공감 버튼 꾹 눌러주세요!
'알고리즘 > 심심풀이 문제풀기' 카테고리의 다른 글
[2019 카카오 코딩테스트] 길 찾기 게임(파이썬3) / 자체 해설 및 풀이 (5) | 2019.09.05 |
---|---|
[2019 카카오 코딩테스트] 실패율(파이썬3) / 자체 해설 및 풀이 (0) | 2019.09.02 |
[2019 카카오 코딩테스트] 후보키 (파이썬3) / 자체 해설 및 풀이 (4) | 2019.09.01 |
[2019 카카오 코딩테스트] 오픈채팅방 (파이썬3) (0) | 2019.08.29 |
[심심풀이 백준문제풀기] 1874번 스택 수열 (파이썬3) (0) | 2018.09.04 |