04. 프로그래머스(1단계) - 완주하지 못한 선수

성훈·2021년 7월 28일
0

Algorithm

목록 보기
4/61
post-thumbnail

📌 문제의 조건

  1. 마라톤에 참여한 선수 중 한 사람 빼고 전부 완주했다.
  2. 첫번째 인자 - 참여자, 두번째 인자 - 완주자

제한사항 🤔

  • 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
  • completion의 길이는 participant의 길이보다 1 작습니다.
  • 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
  • 참가자 중에는 동명이인이 있을 수 있습니다.

📌 풀이

의사 코드 👨‍💻

  1. 반복문으로 참여자가 완주자 목록에 있는지 확인
  2. 없으면 그놈 리턴
  3. 빈 객체에 선수이름을 키로 카운트를 한다.

풀이 👨‍💻

function solution(participant, completion) {
    participant.sort();
    completion.sort();
    
    for(let i = 0; i < participant.length; i++){
        if(participant[i] !== completion[i]){
            return participant[i]
        }
    }
}

📌 리뷰

한명만 빼고 전부 완주한거니까 무작위로 정렬되어 있는 배열을 정렬하고, 0번 인덱스부터 차례대로 비교했을때, 같은 인덱스에서 차이가 나는 값이 있으면 참여자의 그 i번째 인덱스가 바로 완주하지 못한 선수인 것이다.


📌 문제 출처

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges#

profile
어떻게 이걸 풀어낼 수 있을까

0개의 댓글