최근,카카오에서 쓰여서
더 유명해진 사이트 프로그래머스!
여기서 코딩테스트 연습용으로
모아준 문제들이 있어서
시간날 때마다 하나씩
풀어보고 있다.
⬇ 문제확인하러 가기
https://programmers.co.kr/learn/challenges
코딩테스트를 보다보면 의외로
키를 통해 매핑하는 문제나 문자열을
가공하여 푸는 문제들이
자주 나온다.
이러한 문제들에서는
정말 파이썬이 딱이다.
마치 코딩테스트를 풀라고
나온 언어 같다라는
생각이 들정도다.
문제
코딩테스트 연습 - 완주하지 못한 선수 | 프로그래머스
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 partic
programmers.co.kr
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 |