일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 2020 카카오 인턴십
- 12869번
- 9095번
- 15686번
- 12865번
- 파이썬
- SW ExpertAcademy
- 프로그래머스
- 스타트 택시
- 어른 상어
- 1038번
- QueryDSL 기초
- 거울 설치
- 베스트엘범
- 보석 쇼핑
- 수식 최대화
- python
- HTML 기초
- 17144번
- 경주로 건설
- 백준 알고리즘
- 키패드 누르기
- 빛의 경로 사이클
- SW Expert Academy
- 감소하는 수
- 19238번
- 14499번
- 16234번
- 미세먼지 안녕!
- 1789번
Archives
- Today
- Total
보물창고 블로그
프로그래머스 완주하지 못한 선수 풀이 With Python 본문
728x90
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42576
코딩테스트 연습 - 완주하지 못한 선수
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수
programmers.co.kr
해시(HASH) 관련 문제입니다. 저는 파이썬 자료구조인 Dictionary를 사용하여 풀이하였습니다.
풀이 코드는 아래와 같습니다.
def solution(participant, completion):
answer = ''
#참가자와 숫자를 key,value로 담을 Dictionary 선언
partdict = {}
for p in participant:
if p not in partdict:
partdict[p] =1
else:
partdict[p]+=1
for c in completion:
partdict[c]-=1
for p in partdict:
if partdict[p] == 1:
return p
partdict에 참가자 이름을 key, 숫자 값을 value로 하여 동명이인도 체크합니다.
마지막에 완주하지 못한 사람은 partdict에 값이 1로 남아있을 것이므로 for문을 통해 완주하지 못한 사람을 찾습니다.
더 짧은 풀이는 아래와 같습니다.
import collections
def solution(participant, completion):
answer = collections.Counter(participant) - collections.Counter(completion)
return list(answer.keys())[0]
collections 모듈의 Couter를 사용한 풀이입니다. 마찬가지로 마지막에 남은 answer 딕셔너리의 첫 번째 값을 반환합니다. 소스코드에 대한 질문이 있으시면 댓글 남겨주시면 답변드리겠습니다. :-)
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 위장 풀이 With Python (0) | 2022.02.12 |
---|---|
프로그래머스 전화번호 목록 풀이 With Python (0) | 2022.02.12 |
프로그래머스 프린터 풀이 With Python (0) | 2020.07.09 |
2020 카카오 인턴십 보석 쇼핑 풀이 With Python (0) | 2020.07.06 |
2020 카카오 인턴십 동굴 탐험 풀이 With Python (6) | 2020.07.06 |
Comments