[프로그래머스] 완주하지 못한 선수

Jin Lee·2022년 5월 8일
0

프로그래머스 Lv.1

목록 보기
22/32
post-thumbnail

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/42576

문제 설명

  • completion는 마라톤에 도전한 사람의 이름들이 participant는 마라톤 완주에 성공한 사람들의 이름들이 들어있고 원소 하나를 제외하고는 모두 같은 문자열들이 들어있다.

  • 동명이인이 존재하는 경우에도 한명은 완주에 성공하고 한명은 성공하지 못하는 경우에는 completion에는 같은 이름이 2개 있지만 participant에는 한개의 이름만 존재하게 된다.

  • completion의 길이는 participant의 길이보다 1 작습니다. 에서 힌트를 얻었다.

    • completion과 participant를 각각 정렬하면 이름이 알파벳 순서대로 정렬된다.
    • completion과 participant의 i번째의 원소를 반복문을 돌며 비교하고 다르다면 반복문을 종료한다.
    • 정렬된 두개의 배열을 비교하며 다른 원소가 발견되었다는 것은 completion에는 존재하지만 participant에는 존재하지 않는 원소임을 의미한다.
    • completion의 길이 - 1은 participant과 같이 때문에 completion - 1까지 for문을 돌면서 다른 원소를 발견하지 못한 경우는 completion의 마지만 원소가 완주하지 못한 선수임을 의미한다.
def solution(participant, completion):
    answer = ''
    participant.sort()
    completion.sort()
    
    for i in range(len(completion)):
        if participant[i] != completion[i]:
            answer = participant[i]
            break
    if answer == '':
        answer = participant[-1]
    
    return answer
profile
깃허브 : https://github.com/jinlee9270

0개의 댓글