문제 링크 (Level 1)
https://programmers.co.kr/learn/courses/30/lessons/42576
나의 코드 (python)
첫 번째 코드 (정확성 테스트는 통과, 효율성 테스트 실패 : 시간 초과)
def solution(participant, completion):
answer = ''
for i in completion:
for j in participant:
if i == j:
participant.remove(i)
break
answer = participant.pop()
return answer
두 번째 코드 (통과)
def solution(participant, completion):
participant.sort()
completion.sort()
for i, j in zip(participant, completion):
if i != j:
return i
return participant[-1]
먼저 두 값을 정렬하고 zip으로 묶어서 비교합니다. 다른 것이 있다면 이는 완주하지 못한 선수일 것입니다. 이유는 두 배열이 정렬되어 있기 때문에 같은 값이 나오지 않는다면 participant에만 있는 값이기 때문입니다.
하지만 두 값을 비교했을 때 완주하지 못한 선수를 검증하지 못했다면 배열의 크기가 1 더 큰 participant의 마지막 인덱스에 위치한 선수가 완주하지 못한 선수일 것입니다.
'코딩공부 > 프로그래머스 (python)' 카테고리의 다른 글
[프로그래머스] 모의고사 (python) (0) | 2021.07.27 |
---|---|
[프로그래머스] 키패드 누르기 (python) (0) | 2021.07.26 |
[프로그래머스] 소수 만들기 (python) (0) | 2021.07.16 |
[프로그래머스] 크레인 인형뽑기 (python) (0) | 2021.07.16 |
[프로그래머스] 음양 더하기 (python) (0) | 2021.07.15 |
댓글