코딩테스트

[2022-12-27]

nayoon 2022. 12. 28. 01:09

 

문제가 어렵지는 않았던 것 같은데 왜 어제는 그렇게 풀었나 싶다.

 

수와 수 사이에 짝을 이루게 되면 홀수 크기의 배열에서 짝수 개의 값과 홀수 개의 값으로 나누어지게 될 것이다. -> 코드 로직

 

아래는 OddOccurrencesInArray에 대한 O(n) 정답 코드이다.

// 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) {
        int result = 0;
        Map<Integer, Integer> map = new HashMap<>();
        Set<Integer> set = new HashSet<>();
        for(int a: A) {
            map.put(a, map.getOrDefault(a, 0) + 1);
            set.add(a);
        }

        Iterator<Integer> numbers = set.iterator();
        while(numbers.hasNext()) {
            int num = numbers.next();
            if (map.get(num) % 2 == 1) {
                result = num;
            }
        }
        return result;
    }
}

 

'코딩테스트' 카테고리의 다른 글

[2023-01-05]  (0) 2023.01.05
[2023-01-03]  (0) 2023.01.03
[2023-01-02]  (0) 2023.01.03
[2023-01-01]  (0) 2023.01.01
[2022-12-26]  (0) 2022.12.27