[알고리즘] 완주하지 못한 선수

JudyLia·2022년 1월 31일
0

알고리즘

목록 보기
8/61
post-thumbnail

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

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

  • java
package study.algorithm;

import java.util.Arrays;

public class Solution {
	public static 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];	
    }	
}
  • javascript
function solution(participant, completion) {
    
    participant.sort();
    completion.sort();

    
    for(let i=0;i<completion.length;i++){
        if(!(participant[i]===completion[i])){
            return participant[i];
        }
    }
    return participant[participant.length-1];
    
}

처음에는 배열을 정렬하지 않고 participant에서 요소를 빼서 completion의 모든 요소를 비교해서 없는 경우로 답을 찾아내려는 방법을 고민했다. 하지만 그 경우 이름이 같은 참가자가 2명이상인데 그 사람들 중 한 명이 완주하지 못하는 경우는 구별해내지 못한다.
그리고 그 이후에는 completion 배열의 요소들을 participant에서 하나하나 빼내서 남는 하나를 return하려고 했는데 이것도 제대로 되지 않았다.
따라서 방법을 고민하다가 배열 두개를 모두 정렬하고 같은 자리에 요소가 다를 경우를 찾는 방법을 사용했다.

profile
안녕:)

0개의 댓글

관련 채용 정보