[알고리즘 문제풀이] Codility - OddOccurrencesInArray

yourjin·2022년 8월 10일
0

알고리즘 문제풀이

목록 보기
27/28

➕ 오늘 푼 문제


Codility - OddOccurrencesInArray

➕ 아이디어


배열에서 짝이 안맞는 숫자 값 하나를 반환하는 문제이다. 배열이 크기 때문에 효율적으로 구하는 방법을 알아내는 게 중요하다.

  • 배열 A 를 정렬한다. (오름차순/내림차순은 상관 없다.)
  • answerA 의 가장 마지막 값으로 초기화한다.
    • 배열의 마지막 값이 짝이 없는 경우를 고려해야 하기 때문이다.
  • A 를 두 개씩 짝지어 확인하면서, 서로 값이 다르다면 짝이 안맞는 것이기 때문에 그 숫자가 정답이다.

➕ Java 코드


// you can also use imports, for example:
import java.util.*;

// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");

class Solution {
    public int solution(int[] A) {
        // write your code in Java SE 8
        Arrays.sort(A);
        int N = A.length;
        int answer = A[N-1];

        for(int i=0; i<N-1; i+=2){
            if(A[i] != A[i+1]){
                answer = A[i];
                break;
            }
        }

        return answer;
    }
}

➕ 궁금한 내용 및 소감


  • 처음에는 숫자별로 카운트 배열을 만들어서 카운트가 홀수인 값을 반환하려고 했는데, 배열이 너무 크다보니까 힙 에러가 떴다. 조금 더 고민해보다가 정렬해서 문제를 해결할 수 있었다.

➕ 참고 문헌


  • 없음
profile
make it mine, make it yours

0개의 댓글