<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Bitwise Operation on Kelly Dev</title><link>https://kelly-chui.github.io/algorithmtags/bitwise-operation/</link><description>Recent content in Bitwise Operation on Kelly Dev</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 15 Aug 2026 12:38:30 +0900</lastBuildDate><atom:link href="https://kelly-chui.github.io/algorithmtags/bitwise-operation/index.xml" rel="self" type="application/rss+xml"/><item><title>Leetcode 3702. Longest Subsequence With Non-Zero Bitwise XOR</title><link>https://kelly-chui.github.io/ps/2026/ps-leetcode-3702-longest-subsequence-with-non-zero-bitwise-xor/</link><pubDate>Sat, 15 Aug 2026 12:38:30 +0900</pubDate><guid>https://kelly-chui.github.io/ps/2026/ps-leetcode-3702-longest-subsequence-with-non-zero-bitwise-xor/</guid><description>&lt;h2 id="문제"&gt;문제&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://leetcode.com/problems/longest-subsequence-with-non-zero-bitwise-xor"&gt;https://leetcode.com/problems/longest-subsequence-with-non-zero-bitwise-xor&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="풀이"&gt;풀이&lt;/h2&gt;
&lt;p&gt;수열 &lt;code&gt;nums&lt;/code&gt;가 주어지고, 이 &lt;code&gt;nums&lt;/code&gt;의 서브시퀀스 중, 모든 원소를 XOR해서 0이 아니게 되는 서브시퀀스의 최대 길이를 리턴하면 된다.&lt;/p&gt;
&lt;p&gt;이 문제는 XOR 연산의 특성을 잘 알아야 한다. 만약 XOR이 아니라 $+$이었다면, 모든 $\text{nums}$의 원소들을 더해보고, 0이 아니라면 $\text{nums}$ 전체를, 0이라면 원소 중 0이 아닌 것 하나를 제외하면 된다. $+$의 역연산은 $-$이므로, 어떤 원소 $x$를 제외했을 때 다음과 같이 된다.&lt;/p&gt;
&lt;p&gt;$$\sum \text{nums} - x \neq 0$$&lt;/p&gt;
&lt;p&gt;만약 모든 원소가 0이라면 답은 0이 된다.&lt;/p&gt;</description></item><item><title>Leetcode 3514. Number of Unique XOR Triplets II</title><link>https://kelly-chui.github.io/ps/2026/ps-leetcode-3514-number-of-unique-xor-triplets-ii/</link><pubDate>Fri, 24 Jul 2026 11:34:15 +0900</pubDate><guid>https://kelly-chui.github.io/ps/2026/ps-leetcode-3514-number-of-unique-xor-triplets-ii/</guid><description>&lt;h2 id="문제"&gt;문제&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://leetcode.com/problems/number-of-unique-xor-triplets-ii"&gt;https://leetcode.com/problems/number-of-unique-xor-triplets-ii&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="풀이"&gt;풀이&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;n&lt;/code&gt; 길이의 배열 &lt;code&gt;nums&lt;/code&gt;가 주어지고, 여기에서 3개의 인덱스 &lt;code&gt;i&lt;/code&gt;, &lt;code&gt;j&lt;/code&gt;, &lt;code&gt;k&lt;/code&gt;를 (&lt;code&gt;i &amp;lt;= j &amp;lt;= k&lt;/code&gt;) 뽑아서 XOR 했을 때, 얻을 수 있는 모든 결과의 수를 리턴하는 문제이다.&lt;/p&gt;
&lt;p&gt;Leetcode 3513 문제와 다른 점은, &lt;code&gt;nums&lt;/code&gt;가 순열이 아니다. 따라서, 자연스럽게 모든 경우의 수를 커버하지 못한다. 다만, 인덱스 제약조건이 저번과 같으므로 &amp;lsquo;값 3개를 무작위&amp;rsquo;로 뽑는다는 점은 같다. 여전히 &lt;code&gt;n&lt;/code&gt;이 최대 1500이기 때문에, $O(n^3)$ 으로 풀기에는 무리가 있다.&lt;/p&gt;
&lt;p&gt;우선, 값의 중복을 가리지 않고, 인덱스도 가리지 않으므로 배열의 순서가 중요하지 않다. 따라서 배열에 있는 모든 중복을 제거하는 전처리를 한다.&lt;/p&gt;</description></item><item><title>Leetcode 3513. Number of Unique XOR Triplets I</title><link>https://kelly-chui.github.io/ps/2026/ps-leetcode-3513-number-of-unique-xor-triplets-i/</link><pubDate>Thu, 23 Jul 2026 10:33:25 +0900</pubDate><guid>https://kelly-chui.github.io/ps/2026/ps-leetcode-3513-number-of-unique-xor-triplets-i/</guid><description>&lt;h2 id="문제"&gt;문제&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://leetcode.com/problems/number-of-unique-xor-triplets-i"&gt;https://leetcode.com/problems/number-of-unique-xor-triplets-i&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="풀이"&gt;풀이&lt;/h2&gt;
&lt;p&gt;1에서 &lt;code&gt;n&lt;/code&gt;까지의 모든 값이 들어있는 &lt;code&gt;n&lt;/code&gt; 크기 배열 &lt;code&gt;nums&lt;/code&gt; 배열이 주어지고, 그 배열에서 인덱스 3개 &lt;code&gt;i&lt;/code&gt;, &lt;code&gt;j&lt;/code&gt;, &lt;code&gt;k&lt;/code&gt; (&lt;code&gt;i &amp;lt;= j &amp;lt;= k&lt;/code&gt;)를 골라서 XOR 했을 때, 나올 수 있는 모든 값을 리턴하면 되는 문제이다.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nums&lt;/code&gt; 배열의 크기가 10만이고, 브루트 포스를하면 시간 복잡도가 $O(n^3)$ 이기 때문에 시간 내에 해결할 수 없다.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nums&lt;/code&gt;가 순열이라는 것과 XOR의 연산 특징을 알면 생각보다 간단한 공식으로 해결할 수 있다. 우선 인덱스 제약조건은 없는 것과 마찬가지인데, 등호를 포함한 대소관계이기 때문에, 인덱스를 중복해서 골라도 된다.&lt;/p&gt;</description></item></channel></rss>