프로그래머스 - 완주하지 못한 선수 풀이 FROM 반친구

 package allpractice;


import java.util.Arrays;


public class Pro {


public static void main(String[] args) {


String[] participant = {"marina" , "josipa", "nikola" , "vinko" , "filipa" }; 

String[] completion = {"marina" , "josipa", "nikola" ,  "filipa"} ; 

String answer = "" ; 

Arrays.sort(participant);

Arrays.sort(completion); 

for(int i = 0 ; i <completion.length ; i++ ){ 

if(!participant[i].equals(completion[i])){ 

answer = participant[i] ; 

break; 

}

}

if(answer == ""){ 

answer = participant[participant.length-1]; 

}

        System.out.println(answer); 

}

--------



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


프로그래머스에 입력하기 


import java.util.Arrays; 

class Solution{ 

    public String solution(String[] participant, String[] completion) { 

    String answer = "" ; 

    Arrays.sort(participant) ; 

    Arrays.sort(completion); 

    for(int i = 0 ; i < completion.length; i++ ) { 

        if(!participant[i].equals(completion[i])){ 

          answer = participant[i]; 

          break; 

}

}

if(answer == "" ) { 

    answer = participant[participant.length-1]; 

}

return answer; 

}


---------------------------------------------------------------------------------------

연습장 


기본 생각 : 참가자와 완주자의 배열이 하나씩 있을텐데 그 배열을 알파벳 순서대로 배열한다. 

그렇게 되면 participant 와 completion 두개의 배열이 동일하게 작동할테고 

if : 참가자에 동명이인이 없다면

참가자와 완주자가 동일한 배열을 갖다가 갑자기 참가자에는 있는데 완주자에는 없는 

그러니까 참가자와 완주자가 (같은 배열의 순서에서) 다를때가 처음 나오는데 

그때의 그 [i] 는 완주하지 못한 사람이다. 결과값으로 나와야 하는 


if 참가자에 동명이인이 있어도 서로 배열이 다 같다가 한번 틀려질때 그때 그 

위치에 있는 participant[i] 애가 완주하지 못한 사람이다. 


//마라톤에 참가 

//PA

String [] participant = {"marina", "josipa", "nikola", "vinko", "filipa"}; 

String [] completion = { "josipa", "filipa", "marina", "nikola" }; 

//공통점과 차이점을 발견해보기 : participant 에 있는애들은 vinko 말고는 전부 동일하다. 

//completion 에는 vinko 가 하나 없을뿐 그러면 -> 동일하게 정렬을 시켜 놓을 수 있겠지. 

String answer = "";

//anwser 라는 변수를 만들고 이거를 이용해서 participant 배열이랑 completion 배열을 확인할거야 

Arrays.sort(participant); 

Arrays.sort(completion); 

//participant와 completion 이라는 두개의 배열 안에 있는 애를 알파벳순서대로 정렬을 해보도록 하자. 

// 그렇게 되면 두개의 배열의 순서가 동일하게 이루어지고 participant 에 있는 유일한 애(완주하지 못한애 ) 빼고는 

//전부 동일하게 정렬이 될거다. 

//그렇게 됬을때 비교를 하면서 동일한 배열의 자리수에 해당하는 그때의 그애를 출력을 할 수 있게 된다. 

//solution 이라는 메소드에 파라미터를 participant[] 와 completion[]을 넣어준것. 

for ( int i = 0 ; i < completion.length ; i++){ 

if ( !participant[i].equals(completion[i])){ 

         answer = participant[i]; 

         break; 

}

}

    if ( answer == "" ){ 

    answer = participant[participant.length-1]; 

    }

      

System.out.println(answer); 



-------------------------------------------------------------------------------------

프로그래머스에 옮기기 . 


import java.util.Arrays; 

class Solution{ 



public String solution(String [] participant, String [] completion) {

    String answer = "";

Arrays.sort(participant ); 

Arrays.sort(completion );

for ( int i = 0 ; i < completion.length ; i++ ) { 

if ( !participant[i].equals(completion[i]) ) { 

answer = participant[i];

break;  

}

}

if( answer == "" ) { 

answer = participant[participant.length-1]; 

    }

return answer;

}























댓글