LeetCode 문제 풀이

[LeetCode] 136번 문제를 풀어보았다. (ft. java)

pantrom 2022. 2. 15. 19:50

2022년 2월 15일 화요일 - 아니 오늘 왤케 추운데


오늘 올려볼 문제는 136번 Single Number 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

오늘은 1분 컷


입력


사진에서도 볼 수 있듯이 int 배열 하나가 입력으로 주어진다.



풀이 및 코드


주어진 배열에서 단 한 개만 존재하는 원소를 찾는 문제이다.


오늘은 처음부터 정답을 생각해냈다.

xor 연산을 사용한 방법이다.

1개의 원소를 제외하고 다른 모든 원소는 정확히 2개씩 존재하므로 1개만 있는 원소만 남는 방법이다.

위와 같은 풀이가 가능한게 이해가 힘들다면 xor 연산 방법을 찾아보자.


이제 코드를 봐보자!


풀이코드

class Solution {
    public int singleNumber(int[] nums) {
        int result = 0;
        for(int num : nums) result ^= num;

        return result;
    }
}



제출 화면

leetcode 문제 맞았습니다


오늘은 전에 봤던 풀이를 기반으로 풀었던 문제이다.

아마 이 풀이를 몰랐다면 우리의 영원한 구세주 "HashMap"을 사용해서 문제를 풀지 않았을까 생각된다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.