최초 풀이 -> 정렬 후 맨 마지막이 정답이라 가정한 후 for문으로 인덱스 2씩 이동하면서 두 개의 수를 비교
최종 풀이 -> 비트연산자 ^를 사용함
^는 XOR 연산자로 이진수에서 대응되는 수가 같으면 0, 다르면 1을 반환한다.
최종 풀이(1ms)
class Solution {
public int singleNumber(int[] nums) {
int r = 0;
for(int i = 0; i < nums.length; i++) {
r = r ^ nums[i];
}
return r;
}
}
최초 풀이(7ms)
class Solution {
public int singleNumber(int[] nums) {
Arrays.sort(nums);
int answer = nums[nums.length - 1];
for(int i = 0; i < nums.length - 1; i+=2) {
boolean result = nums[i + 1] == nums[i];
if (!result) {
answer = nums[i];
break;
}
}
return answer;
}
}
'코딩테스트' 카테고리의 다른 글
[leetcode] 605. Can Place Flowers (0) | 2024.06.06 |
---|---|
[leetcode] 208. Implement Trie(Prefix Tree) (0) | 2024.06.05 |
[leetcode] 338. Counting Bits (0) | 2024.06.03 |
[leetcode] 746. Min Cost Climbing Stairs (0) | 2024.06.03 |
[leetcode] 1137. N-th Tribonacci Number, 62. Unique Paths (0) | 2024.05.31 |