
문제가 어렵지는 않았던 것 같은데 왜 어제는 그렇게 풀었나 싶다.
수와 수 사이에 짝을 이루게 되면 홀수 크기의 배열에서 짝수 개의 값과 홀수 개의 값으로 나누어지게 될 것이다. -> 코드 로직
아래는 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 |