<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Leetcode on j2234's log</title><link>https://log.j2234.cc/tags/leetcode/</link><description>Recent content in Leetcode on j2234's log</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026</copyright><lastBuildDate>Sat, 04 Apr 2026 21:02:54 +0000</lastBuildDate><atom:link href="https://log.j2234.cc/tags/leetcode/index.xml" rel="self" type="application/rss+xml"/><item><title>레벤슈타인 거리</title><link>https://log.j2234.cc/posts/velog/010-%EB%A0%88%EB%B2%A4%EC%8A%88%ED%83%80%EC%9D%B8-%EA%B1%B0%EB%A6%AC/</link><pubDate>Tue, 05 Nov 2024 11:14:05 +0000</pubDate><guid>https://log.j2234.cc/posts/velog/010-%EB%A0%88%EB%B2%A4%EC%8A%88%ED%83%80%EC%9D%B8-%EA%B1%B0%EB%A6%AC/</guid><description>&lt;h2 class="relative group"&gt;Levenshtein distance?
 &lt;div id="levenshtein-distance" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#levenshtein-distance" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;문자열 비교 알고리즘으로, 문자열 a,b가 있을 때 a를b로 만드는데 드는 비용을 동적 계획법으로 구하는 알고리즘
문자열의 유사성을 판단하는데 쓰인다.&lt;/p&gt;

&lt;h2 class="relative group"&gt;기본 풀이
 &lt;div id="기본-풀이" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ea%b8%b0%eb%b3%b8-%ed%92%80%ec%9d%b4" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;dp[i][j] = 문자열 a의 [i]까지 고려했을때, 문자열 b의[j]를 만들 수 있는 최소 변환 수&lt;/p&gt;
&lt;blockquote&gt;&lt;ol&gt;
&lt;li&gt;문자열은 빈 문자열 &lt;code&gt;''&lt;/code&gt;부터 시작한다. 빈 문자열은 다른 문자열의 길이만큼 특정 문자를 추가해야 같아지므로 각각 인덱스값을 가지게 된다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="401"
 height="297"
 src="https://log.j2234.cc/posts/velog/010-%EB%A0%88%EB%B2%A4%EC%8A%88%ED%83%80%EC%9D%B8-%EA%B1%B0%EB%A6%AC/img/image-01.webp"
 srcset="https://log.j2234.cc/posts/velog/010-%EB%A0%88%EB%B2%A4%EC%8A%88%ED%83%80%EC%9D%B8-%EA%B1%B0%EB%A6%AC/img/image-01.webp 800w, https://log.j2234.cc/posts/velog/010-%EB%A0%88%EB%B2%A4%EC%8A%88%ED%83%80%EC%9D%B8-%EA%B1%B0%EB%A6%AC/img/image-01.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/velog/010-%EB%A0%88%EB%B2%A4%EC%8A%88%ED%83%80%EC%9D%B8-%EA%B1%B0%EB%A6%AC/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;blockquote&gt;&lt;p&gt;dp[1][1]은 세 가지 중 하나로 만들어지는데&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://log.j2234.cc/posts/velog/010-%EB%A0%88%EB%B2%A4%EC%8A%88%ED%83%80%EC%9D%B8-%EA%B1%B0%EB%A6%AC/featured.webp"/></item><item><title>1371. Find the Longest Substring Containing Vowels in Even Counts</title><link>https://log.j2234.cc/posts/velog/011-1371.-find-the-longest-substring-containing-vowels-in-even-counts/</link><pubDate>Sun, 15 Sep 2024 13:22:56 +0000</pubDate><guid>https://log.j2234.cc/posts/velog/011-1371.-find-the-longest-substring-containing-vowels-in-even-counts/</guid><description>&lt;p&gt;&lt;a href="https://leetcode.com/problems/find-the-longest-substring-containing-vowels-in-even-counts/description/" target="_blank" rel="noreferrer"&gt;문제링크&lt;/a&gt;&lt;/p&gt;

&lt;h2 class="relative group"&gt;설명
 &lt;div id="설명" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ec%84%a4%eb%aa%85" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;임의의 ASCII 문자열 &lt;code&gt;S&lt;/code&gt;가 주어졌을때, 모음 &lt;code&gt;{'a','e','i','o','u'}&lt;/code&gt; 를 각각 짝수번 포함(0번도 가능) 하고 있는 부분 문자열 중 가장 긴 길이를 구하여라&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;&amp;quot;leetcodeisgreat&amp;quot;&lt;/code&gt; =&amp;gt; &lt;code&gt;&amp;quot;leetc&amp;quot;&lt;/code&gt; =&amp;gt; 5&lt;/p&gt;
&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;hr&gt;

&lt;h2 class="relative group"&gt;💡풀이
 &lt;div id="풀이" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ed%92%80%ec%9d%b4" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;처음에 투포인터 문제인줄 알아서 많이 헤멨다&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;ol start="0"&gt;
&lt;li&gt;첫 상태를 정의한다 ( 모든 모음이 0번 나타난 상태)&lt;/li&gt;
&lt;li&gt;모음을 2의 제곱 비트로 정의하고, 모음이 나타날때마다 비트마스크를 업데이트한다. 이전에 기록되지 않았다면 map에 넣는다&lt;/li&gt;
&lt;li&gt;비트마스크가 이미 존재한다면, 이전 비트마스크와 현재 비트마스크 사이에는 모든 모음이 짝수번 존재하므로, 최대길이와 비교한다&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;h2 class="relative group"&gt;코드
 &lt;div id="코드" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ec%bd%94%eb%93%9c" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Solution&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;findTheLongestSubstring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;vowels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;e&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;i&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;o&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;u&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# vowels = {&amp;#39;a&amp;#39;:1, &amp;#39;e&amp;#39;: 2, &amp;#39;i&amp;#39;: 3, &amp;#39;o&amp;#39;: 4, &amp;#39;u&amp;#39;: 5} # 왜 안되는지 모르겠다면, 3인 경우를 생각해보자&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;my_map&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;mask&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;vowels&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;mask&lt;/span&gt; &lt;span class="o"&gt;^=&lt;/span&gt; &lt;span class="n"&gt;vowels&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;mask&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;my_map&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;my_map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;mask&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;answer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;my_map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;mask&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;😎그다지 어렵진 않지만, 풀이가 재미있는 문제였다.&lt;/p&gt;</description></item><item><title>857. Minimum Cost to Hire K Workers</title><link>https://log.j2234.cc/posts/velog/015-857.-minimum-cost-to-hire-k-workers/</link><pubDate>Sat, 11 May 2024 15:25:06 +0000</pubDate><guid>https://log.j2234.cc/posts/velog/015-857.-minimum-cost-to-hire-k-workers/</guid><description>&lt;p&gt;&lt;a href="https://leetcode.com/problems/minimum-cost-to-hire-k-workers/description/" target="_blank" rel="noreferrer"&gt;문제링크&lt;/a&gt;&lt;/p&gt;

&lt;h2 class="relative group"&gt;설명
 &lt;div id="설명" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ec%84%a4%eb%aa%85" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;arr[i] 는 각각 i번째 노동자의 &lt;code&gt;품질&lt;/code&gt;,&lt;code&gt;월급&lt;/code&gt;을 나타내는 &lt;code&gt;quality&lt;/code&gt;, &lt;code&gt;wage&lt;/code&gt; 배열이 주어진다
가장 최소한의 비용으로 &lt;code&gt;k&lt;/code&gt; 명을 고용할때 드는 비용을 구하여라&lt;/p&gt;
&lt;p&gt;조건&lt;/p&gt;
&lt;blockquote&gt;&lt;ul&gt;
&lt;li&gt;i번째 노동자를 고용하려면, &lt;code&gt;최소 wage[i] 보다 돈을 많이줘야됨&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;각 작업자의 월급은, quality에 정비례해야 함&lt;/li&gt;
&lt;li&gt;&lt;del&gt;quality가 얼마던 간에 최소한의 비용이면 상관없음ㅋㅋ&lt;/del&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;hr&gt;

&lt;h2 class="relative group"&gt;💡풀이
 &lt;div id="풀이" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ed%92%80%ec%9d%b4" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;가장 중요한건, 기준으로 삼을 작업자를 정하는 것이다&lt;/em&gt;&lt;/p&gt;</description></item><item><title>1915. Number of Wonderful Substrings</title><link>https://log.j2234.cc/posts/velog/016-1915.-number-of-wonderful-substrings/</link><pubDate>Tue, 30 Apr 2024 21:40:10 +0000</pubDate><guid>https://log.j2234.cc/posts/velog/016-1915.-number-of-wonderful-substrings/</guid><description>&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="165"
 height="172"
 src="https://log.j2234.cc/posts/velog/016-1915.-number-of-wonderful-substrings/img/image-01.webp"
 srcset="https://log.j2234.cc/posts/velog/016-1915.-number-of-wonderful-substrings/img/image-01.webp 800w, https://log.j2234.cc/posts/velog/016-1915.-number-of-wonderful-substrings/img/image-01.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/velog/016-1915.-number-of-wonderful-substrings/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;p&gt;&lt;a href="https://leetcode.com/problems/number-of-wonderful-substrings/description/" target="_blank" rel="noreferrer"&gt;문제링크&lt;/a&gt;&lt;/p&gt;

&lt;h2 class="relative group"&gt;설명
 &lt;div id="설명" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ec%84%a4%eb%aa%85" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;문자열 중에 최대 한 글자만 홀수 번 나타나면 &lt;code&gt;완벽한 문자열&lt;/code&gt;임
단어 &lt;code&gt;word&lt;/code&gt;가 주어졌을때, 여기에서 나타날 수 있는 모든 완벽한 문자열의 수를 구하셈 (world는 a~j만으로 구성)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 class="relative group"&gt;풀이
 &lt;div id="풀이" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ed%92%80%ec%9d%b4" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;단어를 순회하면서, 해당 단어를 비트로 바꿔 bitmask 집합에 넣는다.
이 비트마스를 key로 하는 dict에서, dict[key] 가 존재한다면, 그만큼 더한다
dict[key]를 1증가시킨다&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;&lt;p&gt;왜?
&lt;code&gt;XOR&lt;/code&gt;연산은, 같은 숫자가 짝수번 연산되면 모두 상쇄되어 사라진다.
비트마스크는 &lt;strong&gt;현재의 상태&lt;/strong&gt; 를 의미하는데, 이전에 똑같은 마스크가 존재했다는 뜻은, 그 사이에 있는 모든 단어들은 짝수번 등장한다는 뜻이다 &lt;em&gt;근데 왜 dict[key]만큼 더함??&lt;/em&gt;&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://log.j2234.cc/posts/velog/016-1915.-number-of-wonderful-substrings/featured.webp"/></item><item><title>834. Sum of Distances in Tree</title><link>https://log.j2234.cc/posts/velog/017-834.-sum-of-distances-in-tree/</link><pubDate>Sun, 28 Apr 2024 15:34:28 +0000</pubDate><guid>https://log.j2234.cc/posts/velog/017-834.-sum-of-distances-in-tree/</guid><description>&lt;p&gt;&lt;a href="https://leetcode.com/problems/sum-of-distances-in-tree/description/" target="_blank" rel="noreferrer"&gt;문제링크&lt;/a&gt;&lt;/p&gt;

&lt;h2 class="relative group"&gt;설명
 &lt;div id="설명" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ec%84%a4%eb%aa%85" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="304"
 height="224"
 src="https://log.j2234.cc/posts/velog/017-834.-sum-of-distances-in-tree/img/image-01.webp"
 srcset="https://log.j2234.cc/posts/velog/017-834.-sum-of-distances-in-tree/img/image-01.webp 800w, https://log.j2234.cc/posts/velog/017-834.-sum-of-distances-in-tree/img/image-01.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/velog/017-834.-sum-of-distances-in-tree/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;blockquote&gt;&lt;p&gt;💀 0~n-1까지 방향이 없는 트리와, 연결고리&lt;code&gt;edges&lt;/code&gt;가 주어졌을때,&lt;br&gt;
&lt;code&gt;answer[i] = i번째 노드와 다른 모든 노드들과 거리의 합&lt;/code&gt; 를 만족하는 answer을 리턴하기&lt;/p&gt;
&lt;/blockquote&gt;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;sumOfDistancesInTree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;edges&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;]])&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# n = 6, edges = [[0,1],[0,2],[2,3],[2,4],[2,5]]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class="relative group"&gt;풀이과정
 &lt;div id="풀이과정" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ed%92%80%ec%9d%b4%ea%b3%bc%ec%a0%95" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;1. 배열 2개 &lt;code&gt;answer&lt;/code&gt;,&lt;code&gt;node_cnt&lt;/code&gt; 생성
 &lt;div id="1-배열-2개-answernode_cnt-생성" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-%eb%b0%b0%ec%97%b4-2%ea%b0%9c-answernode_cnt-%ec%83%9d%ec%84%b1" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;answer&lt;/code&gt; : 정답용 &lt;em&gt;answer[i] = 다른 모든 노드들과의 거리 합&lt;/em&gt;
&lt;code&gt;node_cnt&lt;/code&gt; : 현재 정점의 누적 노드 개수&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://log.j2234.cc/posts/velog/017-834.-sum-of-distances-in-tree/featured.webp"/></item></channel></rss>