[프로그래머스 / Level 1] 완주하지 못한 선수 (파이썬)

2022. 4. 4. 21:09·🎲 알고리즘 공부/프로그래머스

📝 문제

> 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.

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

 

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

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

programmers.co.kr

 

제한사항과 입출력 예시

 

🎨 풀이

💡 첫번째 시도 = 성공 

 

def solution(participant, completion):
    answer = ''
    participant.sort()
    completion.sort()
    
    for i in range(0,len(completion)):
        if participant[i] != completion[i] :
                answer = participant[i]
                return answer
    answer = participant[-1]
    return answer

 

> 제한 사항을 잘 보면  completion의 길이는 participant 길이보다 1이 작다고 나와있다.

이 말은 참가자 중 딱 한명만 빼고 모두 완주를 했다는 의미가 된다. 그래서 participant와 completion을 각각 정렬한 후 for문으로 하나하나 비교를 했다.

 

🍿 경우 1 : 완주 못한 사람이 중간에 껴 있을 때 (예제 3)

예제 3을 그림으로 나타내면 다음과 같다.

=> if participant[i] != completion[i] > 이 부분에서 true가 된다면 participant[i]는 완주하지 못한 사람이라는 뜻이다. 그래서 그 participant[i]를 answer에 넣어준 후 return 해주면 된다.

 

 

 

🍿 경우 2 : 완주 못한 사람이 맨 마지막에 있을 때 (예제 1,2)

예제 1을 그림으로 나타내면 다음과 같다.

=> 다 비교했는데도 완주 못한 사람을 못 찾을 때가 있다. 이 경우는 바로, 정렬을 했는데 그 완주 못한 사람이 맨 뒤에 있을 때다. 그런 경우에는 participant[-1]을 answer에 넣어준 후 return 해주면 된다.

 

 

⭐ 느낀점

 

> 제한 사항에서 두 리스트가 1 차이 난다는 걸 이용해서 정렬 후 문제를 푼 건 좀 그래도 잘한 것 같다. for문 말고도 다른 방법도 은근 좀 많더라. zip 이용, 딕셔너리도 사용하고, 카운터라는 것도 사용하더라. 저 친구들을 몰라서 다른 방법으로는 못 풀어봤다. 문제를 풀고난 이후에도 다른 사람들의 코드를 좀 보면서 참고해야 내 실력이 더 늘 것 같다는 생각이 든다. 우물 안의 개구리가 되지는 말자~

'🎲 알고리즘 공부 > 프로그래머스' 카테고리의 다른 글

[프로그래머스 / Level 1] 체육복 (파이썬)  (0) 2022.04.06
[프로그래머스 / Level 1] K번째수 (파이썬)  (0) 2022.04.05
[프로그래머스 / Level 1] 내적 (파이썬)  (0) 2022.04.03
[프로그래머스 / Level 1] 음양 더하기 (파이썬)  (0) 2022.04.02
[프로그래머스 / Level 1] 없는 숫자 더하기 (파이썬)  (0) 2022.04.01
'🎲 알고리즘 공부/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 / Level 1] 체육복 (파이썬)
  • [프로그래머스 / Level 1] K번째수 (파이썬)
  • [프로그래머스 / Level 1] 내적 (파이썬)
  • [프로그래머스 / Level 1] 음양 더하기 (파이썬)
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (267)
      • 📑 신입일기 (35)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 📘 독서 (0)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    codeup
    스프링부트
    코드업
    프로그래머스
    컨텐더스
    til
    정처기
    6월 목표
    50문답
    오블완
    파이썬
    정보처리기사
    연습문제
    스프링 부트
    충무로
    백준
    폰켓몬
    코민이
    카카오
    오버워치
    찬양추천
    코테
    일기
    BOJ
    코린이
    행렬덧셈
    티스토리챌린지
    피보나치수
    nodejs
    신입일기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[프로그래머스 / Level 1] 완주하지 못한 선수 (파이썬)
상단으로

티스토리툴바