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

말하는 감자·2022년 6월 29일
0

Programmers Level 1

목록 보기
52/66
post-thumbnail

프로그래머스 Level 1

🔒 완주하지 못한 선수

📚 문제 설명

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

마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.


✅ 제한 사항

  • 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.

  • completion의 길이는 participant의 길이보다 1 작습니다.

  • 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.

  • 참가자 중에는 동명이인이 있을 수 있습니다.


📖 입출력 예

participantcompletionreturn
["leo", "kiki", "eden"]["eden", "kiki"]"leo"
["marina", "josipa", "nikola", "vinko", "filipa"]["josipa", "filipa", "marina", "nikola"]"vinko"
["mislav", "stanko", "mislav", "ana"]["stanko", "ana", "mislav"]"mislav"

📃 입출력 예 설명

예제 #1
"leo"는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #2
"vinko"는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #3
"mislav"는 참여자 명단에는 두 명이 있지만, 완주자 명단에는 한 명밖에 없기 때문에 한명은 완주하지 못했습니다.


🗝️ Python 작성 코드

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

예전의 감자가 파이썬으로 풀어둔 문제다.

먼저 participantcompletionsort()로 정렬한다.

그 다음 참가자 명단과 완주자 명단을 비교한 후 같은 인덱스 임에도 불구하고 다른 요소라면 그 사람이 참가자 명단에는 있고 완주자 명단에는 없는 이름이므로 해당 요소를 반환한다.

만약에 완주자 명단을 다 조회했음에도 불구하고 차이가 없었다면 참가자 명단의 마지막에 미완주자 이름이 존재하는 것이므로 참가자 명단의 마지막 요소를 반환했다.

...를 이제 자바로 해보겠습니다.


🗝️ JAVA 작성 코드

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        Arrays.sort(participant);
        Arrays.sort(completion);
        
        for(int i=0; i<completion.length; i++) {
            if(!participant[i].equals(completion[i])) return participant[i];
        }
 
        return participant[participant.length-1];
    }
}

파이썬과 똑같이 했다...에...뭐...
좀 더 어리던 감자는 지금의 감자보다 뇌가 말랑말랑하고 똑똑한 것 같다...

profile
나는 말하는 감자다

0개의 댓글