Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- Python
- 프로그래머스
- 피로그래밍
- 솝트
- 멋쟁이사자처럼
- 인공지능
- MongoDB
- EC2
- 페이지네이션
- 백준
- 파이썬
- 솝트 후기
- S3
- 서류전형
- 절차지향
- CRUD
- Java
- nodejs
- AWS
- 멋사
- jwt
- 면접전형
- 카카오
- 파이썬 #백준 #BFS
- yolov5
- spring-boot
- jQuery
- 사물인식
- 합격후기
- objectdetection
Archives
- Today
- Total
찔끔찔끔씩😎
[프로그래머스] 완주하지 못한 선수 - python (코딩테스트 고득점 - Kit 해시) 본문
728x90
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/42576
문제
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
해결 1
처음에는 직접 참가자와 완주자를 비교하였다.
동명이인이 있을 수 있어 체크한 참가자는 지워나가는 방식으로 진행하였다.
근데 반복문으로 인해 효율성 문제가 발생하였다.
코드 1
def solution(participant, completion):
for part in participant:
if part in completion:
completion.remove(part)
continue
return part
해결 2
참가자와 완주자를 이름순으로 정렬 시킨 뒤 zip 함수를 사용하였다.
zip함수는 for문을 사용할 때와는 달리 루프를 한번만 돌기 때문에 효율성 문제를 해결할 수 있다고 생각했다.
더보기
💡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')]
코드 2
def solution(participant, completion):
participant.sort()
completion.sort()
for p,c in zip(participant, completion):
if p != c:
return p
return participant[-1]
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 폰켓몬 - python (코딩테스트 고득점 Kit - 해시) (0) | 2022.09.01 |
---|---|
[프로그래머스] 기둥과 보 설치 - python (2020 카카오 블라인드 코딩테스트) (0) | 2021.11.08 |
[프로그래머스] 자물쇠와 열쇠 - python (2020 카카오 블라인드 코딩테스트) (0) | 2021.11.02 |
Comments