끄적끄적 코딩일지

[Programmers]완주하지 못한 선수(난이도:★★★) 본문

알고리즘

[Programmers]완주하지 못한 선수(난이도:★★★)

BaekGyuHyeon 2022. 5. 16. 19:11

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

 

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

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

programmers.co.kr

import java.util.Arrays;

class Solution {
    int i = 0;
    public String solution(String[] participant, String[] completion) {
        return solutionB(participant,completion);
    }
    // 효율성은 개망
    public String solutionA(String[] participant,String[] completion){
        for(i = 0 ; i < participant.length;i++){
        	int pCount = Arrays.stream(participant).filter(e->e.eqauls(praticipant[i])).count();
            int cCount = Arrays.stream(completion).filter(e->e.equals(participant[i])).count();
	            if(pCount != cCount) {
	            	return participant[i];
	            };
	        }
	        return null;
    } 
    // 정렬후 다른 이름이 나온 시점 반환
    public String solutionB(String[] participant,String[] completion){
        Arrays.sort(participant);
        Arrays.sort(completion);
        String answer = participant[participant.length-1];
        for(int i = 0 ; i <participant.length-1; i++){
            if(!participant[i].equals(completion[i])){
                return participant[i];
            }
        }
        return null;
    }
    
}