ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Programmers] Hash - 완주하지 못한 선수
    문제 풀이/Algorithm 2020. 7. 8. 09:52

     

    출처: 프로그래머스 - 완주하지 못한 선수

    언어: JAVA

     

     

    1. 풀이 과정

    이 문제는 참여자 명단과 완주자 명단을 정렬하여 두 명단의 같은 index의 값을 비교하여 해결할 수 있다.

    만약 참여자 명단에 있는 모든 사람이 완주자 명단에도 있다면?? 배열을 정렬했을 때, 두 배열은 완벽히 같을 것이다.

    (같은 index의 값이 모두 같다!)

    따라서 같은 index의 값만 비교해 준다면 누가 완주하지 못했는지 알 수 있다!

     

    • 참여자 명단

    0

    1

    2

    "eden"

    "kiki"

    "leo"

     

    • 완주자 명단

    0

    1

    "eden"

    "kiki"

     

    위의 두 표는 첫 번째 입출력 예의 참여자 명단과 완주자 명단을 정렬한 결과다(index와 값).

    얼핏 봐도   index 0   과    index 1   의 값은 두 배열이 같은데   index 2   의 값은 참여자 명단에만 존재한다!

    따라서 “leo”는 참여만했지 완주하지 못한 것이다!!

    2. 주요 코드

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

      Arrays.sort()   로 두 배열을 정렬한 후,  for문  을 이용하여 두 배열의 index의 값을 비교하여 두 값이 다를 때 그 값을 return했다.

     

    * 전체 코드

    '문제 풀이 > Algorithm' 카테고리의 다른 글

    [Programmers] 쿼드 압축 후 개수 세기  (0) 2021.05.16
    [Programmers] Hash - 위장  (0) 2020.07.08
    [Programmers] Hash - 전화번호 목록  (0) 2020.07.08

    댓글

Designed by Tistory.