[프로그래머스/Java] 완주하지 못한 선수

괜찮아요?·2023년 3월 29일
0

programmers

목록 보기
7/23

프로그래머스_완주하지 못한 선수


1차 풀이

풀이 순서

  1. competion 배열을 리스트로 변경한다.
  2. 동명이인이 있기 때문에, 한번 비교대응된 이름은 리스트에서 제거한다.
  3. competion에 없는 이름이 나왔을때 answer 변수에 참가자 이름을 집어넣고 for문 종료
  4. return

code

import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

class Solution {
    public String solution(String[] participant, String[] completion) {
        List<String> com = new ArrayList<>(Arrays.asList(completion));
        String answer = "";
        
        for (String par: participant){
            if(com.contains(par)){
                com.remove(par);
            }else{
                answer = par;
                break;
            }
        }
        return answer;
    }
}
  • 테스트는 전부 맞았지만, 효율성 테스트에서 시간초과로 실패

2차 풀이

풀이 순서

  1. 각각 participant, compeltion sort
  2. for문 돌려서 일치하는지 확인
  3. 일치하지 않으면 return

코드

import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

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])){
                continue;
            }else{
                return participant[i];
            }
        }
        return participant[participant.length-1];
    }
}


profile
할 수 있어요

0개의 댓글