happy318
팽도리블로그
happy318
전체 방문자
오늘
어제
  • 전체글 (252)
    • 공부 (5)
      • Algorithm 정리 (0)
      • 논문리뷰 (1)
      • C++ (2)
      • Python (2)
      • Java (0)
      • Back-end (0)
      • Front-end (0)
      • Embedded (0)
    • 코딩테스트 (218)
      • Python 문제풀이 (100)
      • C++ 문제풀이 (108)
      • Python template (9)
      • C++ template (1)
    • 일상 (20)
      • 맛집 (13)
      • 쇼핑 (5)
      • 아무 일상 (2)
    • 게임 (9)
      • 메이플스토리 (9)

최근 글

인기 글

hELLO · Designed By 정상우.
happy318

팽도리블로그

코딩테스트/Python 문제풀이

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

2022. 6. 13. 18:53

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

 

코딩테스트 연습 - 완주하지 못한 선수

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수

programmers.co.kr

hash 로 분류되어 있는데 hash를 사용하지 않고도 효율성 까지도 다 통과합니다.

 

우선 문제부터 요약해보자면,

마라톤에 선수들이 참여하게 되는데 이때, 단 한명만이 완주를 못합니다. 이 완주하지 못한 선수가 누구인지를 구하는 문제입니다. 

 

즉 solution(participant, completion)에

participant : 참여자들의 이름을 담고있는 array

completion : 완료자들의 이름을 담고있는 array

를 input으로 받아 완주하지 못한 한명의 이름을 return 해야 합니다.

 

<Solution> 

각각 participant와 completion을 sort한다음 pop 하면서 비교해서 다른 부분에서 return 하도록 구현하였고, 끝까지 갔을때는 마지막 사람을 return 하도록 하였습니다. 

 

실제 구현은 아래와 같습니다. 

def solution(participant, completion):
    participant.sort(reverse=True)
    completion.sort(reverse=True)

    for _ in range(len(participant)-1):
        p = participant.pop()
        c = completion.pop()
        if p!=c:
            return p
    return participant[0]

 

 

반응형

'코딩테스트 > Python 문제풀이' 카테고리의 다른 글

[프로그래머스] 기능개발  (0) 2022.06.13
[프로그래머스] 전화번호 목록  (0) 2022.06.13
[프로그래머스] 도둑질  (0) 2022.06.12
[프로그래머스] 등굣길  (0) 2022.06.12
[프로그래머스] 정수 삼각형  (0) 2022.06.12
    '코딩테스트/Python 문제풀이' 카테고리의 다른 글
    • [프로그래머스] 기능개발
    • [프로그래머스] 전화번호 목록
    • [프로그래머스] 도둑질
    • [프로그래머스] 등굣길
    happy318
    happy318

    티스토리툴바