nueijeel
[프로그래머스][python] Lv.1 - 완주하지 못한 선수 본문
📌 문제 설명
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
📌 작성한 코드
def solution(participant, completion):
d = dict.fromkeys(participant,0)
for i in participant:
if i in d: d[i]+=1
for k in completion:
if k in d: d[k]-=1
answer = [k for k,v in d.items() if v==1]
return answer[0]
처음에는 무작정 리스트 요소 비교로 풀었는데 케이스는 통과해도 효율성 테스트에서 시간초과가 나와서
어떻게 고칠지 고민고민하다가 문제 분류가 해시인걸 뒤늦게 발견했다 ㅜㅜ
그래서 딕셔너리 자료형을 사용해서 무사히 통과!인줄 알았는데 for문에 변수를 잘못쓰는 바람에
또 몇십분 씨름하다가 겨우 해결했다
통과하고 다른 분들 코드를 봤는데 collections라이브러리에 counter객체를 사용해서 간편하게 해결하는 방법도 있었다
counter 객체는 난생 처음(?)봐서 ㅋㅋㅋㅋ 따로 공부해서 정리해봐야겠다!!
풀면 풀수록 알아갈 내용 투성이지만 꾸준히 하다보면 언젠간 능숙하게 쓸 수 있을거라 믿고
오늘도 화이팅~!👍
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][python] Lv.1 - 신규 아이디 추천 (0) | 2023.03.03 |
---|---|
[프로그래머스][python] Lv.1 - 문자열 내 마음대로 정렬하기 (0) | 2023.03.03 |
[프로그래머스][python] Lv.0 - 구슬을 나누는 경우의 수 (0) | 2023.02.28 |
[프로그래머스][python] Lv.0 - 캐릭터의 좌표 (0) | 2023.02.14 |
[프로그래머스][python] Lv.0 - 외계행성의 나이 (0) | 2023.02.14 |