Dev/기타
프로그래머스_Python | 완주하지 못한 선수 (Level 1)
sooya14
2020. 5. 11. 21:02
https://programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
| 문제
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
| 제한사항
- 참가자 중에는 동명이인이 있을 수 있습니다.
(처음에 제한사항 제대로 읽지 않고 문제 풀어서 바로 테스트 틀렸다 ㅎ)
| 입출력 예
participant | completion | return |
[leo, kiki, eden] | [eden, kiki] | leo |
[marina, josipa, nikola, vinko, filipa] | [josipa, filipa, marina, nikola] | vinko |
[mislav, stanko, mislav, ana] | [stanko, ana, mislav] | mislav |
| 풀이
01. 실패 코드
정확성 테스트는 통과했는데 효율성 테스트에서 5개 모두 틀렸다 ㅠㅠㅠ
02. 성공 코드
구글링해서 찾아보니깐 잊고 있었던 zip 써서 풀었다...
sort 로 정렬한 담에 zip 써서 하나씩 꺼내서 똑같지 않다면 바로 리턴하면 된다.
| 학습 개념
list(zip([1, 2, 3], [4, 5, 6]))
[(1, 4), (2, 5), (3, 6)]
list(zip([1, 2, 3], [4, 5, 6], [7, 8, 9]))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
list(zip("abc", "def"))
[('a', 'd'), ('b', 'e'), ('c', 'f')]
zip([1, 2, 3], [1, 2, 4])
[(1, 1), (2, 2), (3, 4)]