<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>.Zzumbong</title>
    <link>https://zzumbong.tistory.com/</link>
    <description>Front-End 개발자의 탐험 일지!</description>
    <language>ko</language>
    <pubDate>Mon, 13 Jul 2026 18:40:29 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>쭘봉</managingEditor>
    <image>
      <title>.Zzumbong</title>
      <url>https://tistory1.daumcdn.net/tistory/5794848/attach/cb1f6f777fbe459fa0bd94fe1a741897</url>
      <link>https://zzumbong.tistory.com</link>
    </image>
    <item>
      <title>우주 속 나의 족보, 그 시작과 끝 &amp;mdash; 「별의 자식」 시리즈 2부</title>
      <link>https://zzumbong.tistory.com/130</link>
      <description>&lt;h1&gt;빛에서 별로, 별에서 나로&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ChatGPT Image 2026년 6월 24일 오후 12_49_22.png&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;1491&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pUMmV/dJMcaijuVKn/VsKoByQjBvjokFFJoPOHl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pUMmV/dJMcaijuVKn/VsKoByQjBvjokFFJoPOHl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pUMmV/dJMcaijuVKn/VsKoByQjBvjokFFJoPOHl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpUMmV%2FdJMcaijuVKn%2FVsKoByQjBvjokFFJoPOHl0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1055&quot; height=&quot;1491&quot; data-filename=&quot;ChatGPT Image 2026년 6월 24일 오후 12_49_22.png&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;1491&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;도입 &amp;mdash; 사라지는 것은 정말 하나도 없을까&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1부에서 나는 내가 '굳어버린 에너지'라는 걸 알게 됐다. 그런데 받아들이자마자 다음 질문이 따라왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 에너지는 어디서 와서, 결국 어디로 가는 걸까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쌍소멸로 사라진 전자와 양전자는 빛이 되어 어디론가 날아갔다. 그 빛이 무언가에 부딪혀 흡수되면? 또 그 무언가가 식으면? 한참을 따라가다 보면 자연스레 의심이 든다. 이러다 에너지가 어디선가 그냥 '없어져' 버리는 순간이 오는 건 아닐까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;답부터 말하면 &amp;mdash; &lt;b&gt;아니다. 그 어느 단계에서도 에너지는 사라지지 않는다.&lt;/b&gt; 다만 끝없이 옷을 갈아입을 뿐이다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 사라지는 것은 없다 &amp;mdash; 에너지 보존과 엔트로피&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학교에서 우리는 '질량 보존의 법칙'을 배웠다. 그런데 사실 그건 정확한 법칙이 아니다. 화학 반응에서는 질량 변화가 너무 작아서 보존되는 것처럼 보일 뿐, 우주가 진짜로 철통같이 지키는 법칙은 &lt;b&gt;에너지 보존&lt;/b&gt;이다. (1부에서 봤듯, 질량도 결국 에너지의 한 형태니까.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러니 빛이 흡수되어도 그 에너지는 사라지지 않는다. 빛을 흡수한 물질 속 원자들의 &lt;b&gt;운동 에너지&lt;/b&gt;로 넘어간다. 그리고 여기서 작은 깨달음 하나 &amp;mdash; '열'이라는 건 사실 미시적인 운동 에너지다. 무언가가 뜨거워진다는 건, 그 안의 원자들이 더 격렬하게 떨고 있다는 뜻이니까.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 그 운동 에너지가 중력에 부딪혀 사라지면? 공을 위로 던져 보자. 올라갈수록 느려지며 운동 에너지가 줄어든다. 사라진 걸까? 아니다. 그 에너지는 &lt;b&gt;'높이'라는 형태로 저금&lt;/b&gt;됐을 뿐이다. 공이 다시 떨어지면 정확히 그만큼 운동 에너지로 돌아온다. 합계는 1줄도 변하지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 에너지는 영원히 모양만 바꾸며 돌고 돈다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;빛 &amp;rarr; 운동 &amp;rarr; 열 &amp;rarr; 위치&amp;nbsp;에너지 &amp;rarr; 다시&amp;nbsp;운동 &amp;rarr; ⋯&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 한 가지 경향은 있다. 에너지는 사라지지 않지만, 점점 &lt;b&gt;흩어지고 쓸모없어진다.&lt;/b&gt; 뜨거운 커피가 식어 주변과 미지근해지는 것처럼. 양은 그대로인데 '써먹기 좋은 상태'에서 '골고루 퍼진 상태'로 흘러간다. 이것이 &lt;b&gt;엔트로피&lt;/b&gt;다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 이 흐름을 우주 전체에, 무한한 시간에 걸쳐 끝까지 밀어붙이면 &amp;mdash; 도달하는 곳이 **빅 프리즈(열죽음)**다. 별은 모두 타버리고, 새 별도 생기지 않고, 마지막엔 블랙홀마저 천천히 증발한다. 어디에도 에너지의 차이가 남지 않아, 더는 아무 일도 일어날 수 없는 우주. 절대영도에 가까운, 텅 비고 차갑고 영원히 고요한 어둠. 지금으로선 우주의 가장 유력한 결말이다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;여담:&lt;/b&gt; 사실 '우주 전체'의 에너지 보존은 묘한 구석이 있다. 우주가 팽창하면서 먼 은하의 빛은 파장이 늘어나며 에너지를 잃는데(적색편이), 그 에너지가 어디로 갔는지 깔끔하게 설명되지 않는다. 일반상대성이론에선 우주 규모의 에너지 보존이라는 개념 자체가 명확히 정의되지 않는다. 동네 공놀이에선 답이 분명하지만, 우주 규모에선 아직 토론 중인 영역이다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ChatGPT Image 2026년 6월 24일 오후 12_49_18.png&quot; data-origin-width=&quot;1916&quot; data-origin-height=&quot;821&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqb2iE/dJMcagMOgzq/7fBucpoCFwFmMIkn228bD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqb2iE/dJMcagMOgzq/7fBucpoCFwFmMIkn228bD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqb2iE/dJMcagMOgzq/7fBucpoCFwFmMIkn228bD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbqb2iE%2FdJMcagMOgzq%2F7fBucpoCFwFmMIkn228bD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1916&quot; height=&quot;821&quot; data-filename=&quot;ChatGPT Image 2026년 6월 24일 오후 12_49_18.png&quot; data-origin-width=&quot;1916&quot; data-origin-height=&quot;821&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 우리는 왜 존재하는가 &amp;mdash; 10억분의 1의 기적&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 시간을 거꾸로, 우주의 맨 처음으로 돌려보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빅뱅 직후의 우주는 상상도 못 할 만큼 뜨거웠다. 너무 뜨거워서 안정적인 '물질'이란 게 존재할 수 없었다. 그저 펄펄 끓는 에너지 덩어리였다. 그 안에서 빛은 끊임없이 입자와 반입자 쌍을 만들어냈고(1부의 E=mc&amp;sup2;이 거꾸로 작동), 그 쌍은 곧바로 만나 다시 빛으로 소멸했다. 만들어지고, 사라지고, 또 만들어지고.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 물질과 반물질은 &lt;b&gt;거의 정확히 같은 양&lt;/b&gt;으로 생겨났다. 그런데 둘이 만나면 쌍소멸한다. 만약 완벽하게 50대 50이었다면? 모든 것이 소멸해 우주엔 빛만 남고, &lt;b&gt;물질이라곤 단 하나도 없었을 것이다.&lt;/b&gt; 별도, 지구도, 나도 없었을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 무슨 이유에선지, 물질이 &lt;b&gt;10억분의 1만큼&lt;/b&gt; 더 많았다. 반물질 10억 개당, 물질이 10억 하고도 1개. 우주가 식으면서 거대한 대소멸이 일어났고, 모든 반물질이 짝을 찾아 사라진 뒤 &amp;mdash; 짝을 못 찾은 그 '1개'의 물질만이 살아남았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 10억분의 1의 잔여물이, 지금 우주의 &lt;b&gt;모든 물질&lt;/b&gt;이다. 모든 은하, 모든 별, 그리고 나까지.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;증거도 하늘에 찍혀 있다. 지금 우주에는 물질 입자 하나당 광자가 약 &lt;b&gt;10억 개&lt;/b&gt; 떠다닌다(우주배경복사). 이것이 바로 그 대소멸의 '재'다. 10억은 빛으로 돌아갔고 1개만 물질로 남았다는 비율이, 지금도 온 하늘에 새겨져 있는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 &amp;mdash; &lt;b&gt;왜 물질이 아주 조금 더 많았는가?&lt;/b&gt; 이건 아직 아무도 풀지 못했다. 물리학이 가진 가장 큰 미스터리 중 하나이고, &quot;우리가 왜 존재하는가&quot;라는 질문에 현대 과학은 아직 완전한 답을 내놓지 못하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ChatGPT Image 2026년 6월 24일 오후 01_06_17.png&quot; data-origin-width=&quot;1672&quot; data-origin-height=&quot;941&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXCM0V/dJMcacQ4Hil/PpKfhRxC7fph15QOTrTkwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXCM0V/dJMcacQ4Hil/PpKfhRxC7fph15QOTrTkwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXCM0V/dJMcacQ4Hil/PpKfhRxC7fph15QOTrTkwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXCM0V%2FdJMcacQ4Hil%2FPpKfhRxC7fph15QOTrTkwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1672&quot; height=&quot;941&quot; data-filename=&quot;ChatGPT Image 2026년 6월 24일 오후 01_06_17.png&quot; data-origin-width=&quot;1672&quot; data-origin-height=&quot;941&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 빛에서 별로, 별에서 나로 &amp;mdash; 나의 족보&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 천문학을 좋아하면서, 막연히 우리가 '별의 파편'이라고 생각해 왔다. 우리 몸을 이루는 원소들은 단순한 핵융합으로 뚝딱 만들어지는 게 아니니까, 우리는 태양의 형제이자 항성의 자녀라고. 그 생각은 &amp;mdash; 정확했다. 다만 진실은 거기서 한 층 더 깊은 곳까지 이어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빅뱅이 직접 만든 원소는 사실 가장 가벼운 것들뿐이었다. &lt;b&gt;수소, 헬륨, 그리고 아주 약간의 리튬.&lt;/b&gt; 그게 전부였다. 우주는 너무 빨리 식어서 그 이상 무거운 원소를 만들 시간이 없었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 내 몸의 탄소, 뼈의 칼슘, 피 속의 철 같은 무거운 원소들은 빅뱅이 만들지 못했다. 이것들은 전부 &lt;b&gt;별 내부의 핵융합&lt;/b&gt;과, 별이 죽을 때의 &lt;b&gt;초신성 폭발&amp;middot;중성자별 충돌&lt;/b&gt;에서 빚어졌다. 그리고 그 별이 죽으며 흩뿌린 잔해에서 새로운 별과 행성이 태어났다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러니 내 족보를 거슬러 올라가면 이렇게 된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;빅뱅의 빛&lt;/b&gt; &amp;mdash; 모든 것의 시작&lt;/li&gt;
&lt;li&gt;&amp;rarr; &lt;b&gt;굳어버린 물질&lt;/b&gt; (10억분의 1의 생존자)&lt;/li&gt;
&lt;li&gt;&amp;rarr; &lt;b&gt;수소와 헬륨&lt;/b&gt; (빅뱅이 직접 준 태초의 원소)&lt;/li&gt;
&lt;li&gt;&amp;rarr; &lt;b&gt;별&lt;/b&gt; (그 수소를 태워 무거운 원소를 빚어낸 용광로)&lt;/li&gt;
&lt;li&gt;&amp;rarr; &lt;b&gt;별의 잔해&lt;/b&gt; (죽은 별이 흩뿌린 먼지)&lt;/li&gt;
&lt;li&gt;&amp;rarr; &lt;b&gt;나&lt;/b&gt; (그 먼지가 다시 모여 깨어난 존재)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;칼 세이건의 말처럼, 우리는 별의 먼지로 만들어졌다. 태양은 부모라기보다 같은 구름에서 태어난 &lt;b&gt;형제&lt;/b&gt;이고, 진짜 부모는 태양보다 먼저 살다 죽어간 윗세대의 별들이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빅뱅에서 시작된 그 빛이, 결국 우리 은하와 태양과 지구와 &amp;mdash; 그리고 나를 이루는 모든 물질의 근원이었던 것이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ChatGPT Image 2026년 6월 24일 오후 01_06_00.png&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;1491&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bysy2x/dJMcabdxs9w/VT5RMgtZ4lVShy0879kIUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bysy2x/dJMcabdxs9w/VT5RMgtZ4lVShy0879kIUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bysy2x/dJMcabdxs9w/VT5RMgtZ4lVShy0879kIUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbysy2x%2FdJMcabdxs9w%2FVT5RMgtZ4lVShy0879kIUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1055&quot; height=&quot;1491&quot; data-filename=&quot;ChatGPT Image 2026년 6월 24일 오후 01_06_00.png&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;1491&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;다음 편에서&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지가, 과학이 알려준 사실이다. 나는 빅뱅의 빛에서 와서, 대소멸을 살아남고, 별의 용광로를 거쳐 지금 여기에 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이상한 일이 일어난다. 이 사실들을 알고 나면, 머릿속만 채워지는 게 아니라 &amp;mdash; &lt;b&gt;마음에 무언가가 남는다.&lt;/b&gt; 어떤 날은 그게 까마득한 공포처럼, 어떤 날은 벅찬 경외처럼 다가온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막 편에서는, 이 모든 진실이 한 인간에게 무슨 의미인지를 이야기하려 한다. 코스믹 호러와 경외 사이에서, 허무주의에 빠지지 않고 내가 찾은 답에 대해.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;mdash; 「별의 자식」 시리즈, 3부에서 계속&lt;/p&gt;</description>
      <category>EveryDay</category>
      <author>쭘봉</author>
      <guid isPermaLink="true">https://zzumbong.tistory.com/130</guid>
      <comments>https://zzumbong.tistory.com/130#entry130comment</comments>
      <pubDate>Wed, 24 Jun 2026 13:10:36 +0900</pubDate>
    </item>
    <item>
      <title>나는 굳어버린 빛이다 &amp;mdash; 「별의 자식」 시리즈 1부</title>
      <link>https://zzumbong.tistory.com/129</link>
      <description>&lt;h1 data-sourcepos=&quot;1:1-1:14;0-13&quot;&gt;&lt;span style=&quot;color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; font-size: 16px; letter-spacing: 0px;&quot;&gt;반물질에서 시작된, 내 정체에 관한 질문 &amp;mdash; 「별의 자식」 시리즈 1부&lt;/span&gt;&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-sourcepos=&quot;16:1-16:27;411-437&quot; data-ke-size=&quot;size26&quot;&gt;프롤로그 &amp;mdash; 사소한 질문 하나에서 시작됐다&lt;/h2&gt;
&lt;p data-sourcepos=&quot;18:1-18:16;439-454&quot; data-ke-size=&quot;size16&quot;&gt;시작은 정말 별것 아니었다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;20:1-20:109;456-564&quot; data-ke-size=&quot;size16&quot;&gt;전자는 음전하를 띤다는데, 그럼 반대는 뭘까? 찾아보니 &lt;b&gt;양전자(positron)&lt;/b&gt;라는 게 있다고 한다. 거기서 멈췄으면 됐을 텐데, 한 번 당긴 실이 우주의 끝까지 풀려 나갈 줄은 몰랐다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;22:1-22:158;566-723&quot; data-ke-size=&quot;size16&quot;&gt;양전자에서 시작된 질문은 어느새 &quot;질량이란 무엇인가&quot;, &quot;나는 대체 무엇으로 만들어졌는가&quot;, 그리고 끝내 &quot;우리는 왜 존재하는가&quot;까지 번졌다. 그날 밤 나는 천문학을 취미로 좋아하는 평범한 사람일 뿐이었는데, 어느 순간 내 손으로 우주의 가장 근본적인 질문들을 하나씩 꿰고 있었다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;24:1-24:97;725-821&quot; data-ke-size=&quot;size16&quot;&gt;이 글은 물리 교과서가 아니다. 어느 밤, 가벼운 호기심 하나가 나를 어디까지 데려갔는지에 대한 기록이다. 그리고 그 끝에서 내가 왜 뭉클해졌는지에 대한 이야기이기도 하다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;26:1-26:22;823-844&quot; data-ke-size=&quot;size16&quot;&gt;먼저, 모든 것이 시작된 그 단어부터.&lt;/p&gt;
&lt;h2 data-sourcepos=&quot;28:1-28:22;846-867&quot; data-ke-size=&quot;size26&quot;&gt;1. 반물질 &amp;mdash; 이름이 만든 오해&lt;/h2&gt;
&lt;p data-sourcepos=&quot;30:1-30:124;869-992&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;반물질(antimatter).&lt;/b&gt; 이름부터 SF다. '반(反)'이라는 글자가 붙는 순간, 머릿속엔 반대 차원, 거울 세계, 평행우주 같은 게 떠오른다. 뭔가 우리 세상과 정반대인, 닿으면 안 될 것 같은 신비한 물질.&lt;/p&gt;
&lt;p data-sourcepos=&quot;32:1-32:33;994-1026&quot; data-ke-size=&quot;size16&quot;&gt;그런데 알고 보니 그 '반'은 그렇게 거창한 게 아니었다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;34:1-34:207;1028-1234&quot; data-ke-size=&quot;size16&quot;&gt;반물질의 '반'은 그저 &lt;b&gt;전하 부호가 뒤집혔다&lt;/b&gt;는 뜻일 뿐이다. 양전자는 전자와 질량이 완전히 똑같다. 단지 전자가 음(&amp;minus;)전하라면 양전자는 양(+)전하라는 것, 그 차이뿐이다. 반대 세상에서 온 무언가가 아니라, 그냥 부호가 뒤집힌 평범한 입자. 만약 발견자들이 '거울입자' 같은 밋밋한 이름을 붙였다면, 우리는 반물질을 이렇게까지 신비롭게 여기지 않았을 것이다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;36:1-36:35;1236-1270&quot; data-ke-size=&quot;size16&quot;&gt;재미있는 건 그다음이다. 물질과 반물질이 만나면 어떻게 될까?&lt;/p&gt;
&lt;p data-sourcepos=&quot;38:1-38:98;1272-1369&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;쌍소멸(annihilation)&lt;/b&gt;이 일어난다. 둘은 서로를 끌어안고 동시에 사라진다. 그리고 그 사라진 질량은 빛(감마선)으로 바뀐다. 여기서 그 유명한 식이 등장한다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;E = mc&lt;sup&gt;2&lt;/sup&gt;&lt;/blockquote&gt;
&lt;p data-sourcepos=&quot;42:1-42:45;1385-1429&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;질량(m)이 빛의 속도 제곱(c&amp;sup2;)을 곱한 만큼의 에너지(E)로 변하는 것이다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;44:1-44:187;1431-1617&quot; data-ke-size=&quot;size16&quot;&gt;이게 왜 무서운(?) 변환이냐면 &amp;mdash; 우리가 아는 가장 격렬한 반응들조차 질량을 에너지로 바꾸는 효율이 형편없기 때문이다. 장작이 타는 화학반응은 질량의 거의 0%를, 원자폭탄조차 0.1% 정도만 에너지로 바꾼다. 그런데 물질과 반물질의 쌍소멸은 **질량의 100%**를 에너지로 바꾼다. 이론상 우주에서 가장 완벽한 에너지 변환이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ChatGPT Image 2026년 6월 18일 오후 12_43_23.png&quot; data-origin-width=&quot;1122&quot; data-origin-height=&quot;1402&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwkdXL/dJMcaijqyxT/1ul4lguWrEuQ1XFaxZdacK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwkdXL/dJMcaijqyxT/1ul4lguWrEuQ1XFaxZdacK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwkdXL/dJMcaijqyxT/1ul4lguWrEuQ1XFaxZdacK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwkdXL%2FdJMcaijqyxT%2F1ul4lguWrEuQ1XFaxZdacK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1122&quot; height=&quot;1402&quot; data-filename=&quot;ChatGPT Image 2026년 6월 18일 오후 12_43_23.png&quot; data-origin-width=&quot;1122&quot; data-origin-height=&quot;1402&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-sourcepos=&quot;53:1-53:28;1992-2019&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-sourcepos=&quot;53:1-53:28;1992-2019&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-sourcepos=&quot;53:1-53:28;1992-2019&quot; data-ke-size=&quot;size26&quot;&gt;2. 질량이라는 착각 &amp;mdash; 나는 사실 에너지다&lt;/h2&gt;
&lt;p data-sourcepos=&quot;55:1-55:61;2021-2081&quot; data-ke-size=&quot;size16&quot;&gt;E=mc&amp;sup2;을 우리는 보통 &quot;질량을 에너지로 바꾼다&quot;고 읽는다. 그런데 이 식의 진짜 의미는 훨씬 충격적이다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;57:1-57:77;2083-2159&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;질량이 에너지를 '가진' 게 아니라, 질량이 곧 에너지의 한 형태라는 것.&lt;/b&gt; 둘은 별개의 무언가가 아니라, 처음부터 같은 것이었다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;59:1-59:167;2161-2327&quot; data-ke-size=&quot;size16&quot;&gt;비유하자면 이런 거다. &quot;1마일은 왜 1.6km나 되는 큰 거리를 품고 있지?&quot;라고 묻는 사람은 없다. 마일이 km를 '가진' 게 아니라, 둘 다 같은 거리를 다른 단위로 잰 것뿐이니까. 질량(kg)과 에너지(줄, J)도 정확히 그런 관계다. 그리고 &lt;b&gt;c&amp;sup2;은 그 둘 사이를 바꿔주는 환율&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;61:1-61:138;2329-2466&quot; data-ke-size=&quot;size16&quot;&gt;그럼 왜 이 환율이 이렇게 어마어마하게 클까? 순전히 우리가 일상에서 쓰는 단위 때문이다. 빛의 속도는 초속 3억 미터라는 비현실적인 숫자인데, 그걸 제곱하니 천문학적인 값이 나온다. 그래서 아주 작은 질량도 c&amp;sup2;을 곱하면 엄청난 에너지가 된다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;63:1-63:55;2468-2522&quot; data-ke-size=&quot;size16&quot;&gt;하지만 물리학자들이 쓰는 식으로 빛의 속도를 그냥 '1'로 놓으면, 이 식은 놀랍도록 단순해진다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;E=m&lt;/blockquote&gt;
&lt;p data-sourcepos=&quot;67:1-67:84;2535-2618&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;질량과 에너지가 &lt;b&gt;같은 숫자&lt;/b&gt;가 되는 것이다. &quot;질량은 엄청난 에너지를 품고 있다&quot;는 우리의 감탄은, 사실 인간이 만든 단위가 만들어낸 착시였다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;67:1-67:84;2535-2618&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ChatGPT Image 2026년 6월 18일 오후 12_47_40.png&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;1086&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bG8Mml/dJMcah5Wnyz/din9aUHgJibgM6g9zA80Q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bG8Mml/dJMcah5Wnyz/din9aUHgJibgM6g9zA80Q0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bG8Mml/dJMcah5Wnyz/din9aUHgJibgM6g9zA80Q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbG8Mml%2FdJMcah5Wnyz%2Fdin9aUHgJibgM6g9zA80Q0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1448&quot; height=&quot;1086&quot; data-filename=&quot;ChatGPT Image 2026년 6월 18일 오후 12_47_40.png&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;1086&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;67:1-67:84;2535-2618&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-sourcepos=&quot;76:1-76:27;2984-3010&quot; data-ke-size=&quot;size26&quot;&gt;3. 내 몸의 99% &amp;mdash; 묶여 있는 에너지&lt;/h2&gt;
&lt;p data-sourcepos=&quot;78:1-78:23;3012-3034&quot; data-ke-size=&quot;size16&quot;&gt;여기서부터가 진짜 소름이 돋는 지점이다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;80:1-80:78;3036-3113&quot; data-ke-size=&quot;size16&quot;&gt;그렇다면 질량은 대체 어디서 오는 걸까? 답을 알고 나면 세상이 조금 다르게 보인다. &lt;b&gt;내 몸무게의 약 99%는, 이미 '에너지'다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;82:1-82:154;3115-3268&quot; data-ke-size=&quot;size16&quot;&gt;내 몸을 잘게 쪼개 보자. 몸은 원자로 되어 있고, 원자 질량의 대부분은 핵 속의 양성자와 중성자에 있다. 그 양성자 하나를 또 열어 보면 안에는 쿼크 세 개가 들어 있다. 그런데 &amp;mdash; 이 쿼크 세 개의 질량을 전부 더해도, 양성자 질량의 &lt;b&gt;고작 1% 정도&lt;/b&gt;밖에 안 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-sourcepos=&quot;84:1-84:16;3270-3285&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;그럼 나머지 99%는 뭘까?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;86:1-86:120;3287-3406&quot; data-ke-size=&quot;size16&quot;&gt;쿼크들을 묶어두는 &lt;b&gt;강한 핵력의 에너지&lt;/b&gt;, 그리고 그 좁은 공간에 갇혀 미친 듯이 움직이는 쿼크들의 &lt;b&gt;운동 에너지&lt;/b&gt;다. 양성자 질량의 대부분은 '물질 덩어리'가 아니라, 갇혀 있는 에너지 그 자체인 것이다. 더 놀라운 사실. 쿼크를 묶는 글루온은 질량이 &lt;b&gt;아예 0&lt;/b&gt;이고, 쿼크 자체의 질량도 거의 0에 가깝다. 그러니까 나는 &amp;mdash; 질량이 거의 없는 재료들이 좁은 공간에 갇혀 맹렬하게 움직이고 서로를 붙드는, 그 &lt;b&gt;에너지&lt;/b&gt;로 만들어진 존재다. 질량이, 질량 없는 것들로부터 솟아난 것이다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;90:1-90:91;3570-3660&quot; data-ke-size=&quot;size16&quot;&gt;&quot;나는 단단한 물질로 된 존재&quot;라는 직관은 사실 거의 틀렸다. 더 정확히 말하면, 나는 텅 빈 공간 속에서 안정적으로 진동하는 &lt;b&gt;에너지 패턴&lt;/b&gt;에 훨씬 가깝다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-sourcepos=&quot;92:1-92:14;3662-3675&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;나는, 굳어버린 빛이다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-sourcepos=&quot;92:1-92:14;3662-3675&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ChatGPT Image 2026년 6월 18일 오후 01_05_45.png&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;1086&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9fymR/dJMcadoODyf/afjz5Gn63VWXuOxZPDgwb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9fymR/dJMcadoODyf/afjz5Gn63VWXuOxZPDgwb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9fymR/dJMcadoODyf/afjz5Gn63VWXuOxZPDgwb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9fymR%2FdJMcadoODyf%2Fafjz5Gn63VWXuOxZPDgwb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1448&quot; height=&quot;1086&quot; data-filename=&quot;ChatGPT Image 2026년 6월 18일 오후 01_05_45.png&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;1086&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-sourcepos=&quot;92:1-92:14;3662-3675&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-sourcepos=&quot;92:1-92:14;3662-3675&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-sourcepos=&quot;101:1-101:10;4094-4103&quot; data-ke-size=&quot;size26&quot;&gt;다음 편에서&lt;/h2&gt;
&lt;p data-sourcepos=&quot;103:1-103:52;4105-4156&quot; data-ke-size=&quot;size16&quot;&gt;좋다. 나는 단단한 물질이 아니라 굳어버린 에너지다. 받아들이고 나니 묘한 평온이 찾아온다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;105:1-105:47;4158-4204&quot; data-ke-size=&quot;size16&quot;&gt;그런데 곧바로 다음 질문이 따라온다. &lt;b&gt;그럼 이 에너지는 대체 어디서 왔을까?&lt;/b&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;107:1-107:103;4206-4308&quot; data-ke-size=&quot;size16&quot;&gt;이 실을 당기는 순간, 우주의 시작과 끝이 통째로 딸려 나온다. 사라지지 않는 에너지, 모든 것이 식어 멈추는 우주의 마지막, 그리고 137억 년을 거슬러 올라가는 내 진짜 족보까지.&lt;/p&gt;
&lt;p data-sourcepos=&quot;109:1-109:49;4310-4358&quot; data-ke-size=&quot;size16&quot;&gt;다음 편 **「빛에서 별로, 별에서 나로」**에서, 내가 어디서 왔는지를 따라가 본다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-sourcepos=&quot;113:1-113:25;4365-4389&quot; data-ke-size=&quot;size16&quot;&gt;&amp;mdash; 「별의 자식」 시리즈, 2부에서 계속&lt;/p&gt;</description>
      <category>EveryDay</category>
      <category>별</category>
      <category>빅뱅</category>
      <category>에너지</category>
      <category>우주</category>
      <author>쭘봉</author>
      <guid isPermaLink="true">https://zzumbong.tistory.com/129</guid>
      <comments>https://zzumbong.tistory.com/129#entry129comment</comments>
      <pubDate>Thu, 18 Jun 2026 13:44:52 +0900</pubDate>
    </item>
    <item>
      <title>행성과 별을 죽이는 SF미래 병기 뉴트로늄 탄자를 서울에 낙하해보기</title>
      <link>https://zzumbong.tistory.com/128</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;'뉴트로늄(Neutronium)'은 뭘까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;0. '뉴트로늄(Neutronium)'이란?&lt;/h3&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;우리가 아는 일반적인 물질(철, 물, 공기 등)은 사실 속이 거의 비어 있다. 원자를 축구장이라고 치면 원자핵은 한가운데 놓인 축구공 하나 정도고, 나머지는 전자가 돌아다니는 텅 빈 공간이다. (우리를 이루는 물질들은 텅텅 비어있는데 왜 벽을 통과하지 못할까? 라는 생각을 오래전에 해본 적이 있는데, 이것도 나중에 다뤄보면 재미난 주제일 것 같다.)&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;하지만 &lt;b data-index-in-node=&quot;4&quot; data-path-to-node=&quot;5&quot;&gt;뉴트로늄은 다르다!&lt;/b&gt; 거대한 별이 수명을 다해 죽으면서 엄청난 중력으로 짓눌려, 축구장만 한 원자들이 모두 축구공 크기로 압축되어 다닥다닥 붙어버린 상태다. 우주에서 블랙홀 다음으로 밀도가 높은 '&lt;b&gt;중성자 반죽&lt;/b&gt;'이라고 이해하면 쉽다.&lt;/p&gt;
&lt;blockquote data-path-to-node=&quot;6&quot; data-ke-style=&quot;style3&quot;&gt;5.56mm 탄환 하나의 무게는 약 &lt;b&gt;2억 톤&lt;/b&gt;이다. 전 세계의 모든 자동차를 한데 뭉쳐놓은 것보다 무겁고, &lt;br /&gt;에베레스트산 전체 무게 와 맞먹는다. (손가락만한 게 산 하나의 무게)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k9BAD/dJMcafFkKUh/xjaqkSuJPBCGotAdfXCr61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k9BAD/dJMcafFkKUh/xjaqkSuJPBCGotAdfXCr61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k9BAD/dJMcafFkKUh/xjaqkSuJPBCGotAdfXCr61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk9BAD%2FdJMcafFkKUh%2FxjaqkSuJPBCGotAdfXCr61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;559&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 뉴트로늄은 중력이 약한 곳에선 금방 폭발하며 붕괴한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;발사전에 준비할 것&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SF 차폐막 (붕괴 억제): 뉴트로늄은 중성자별의 엄청난 중력이 없으면 순식간에 폭발하며 붕괴한다.&lt;br /&gt;우리는 탄환이 목표에 맞을 때까지 이 붕괴를 막아주는 &lt;b&gt;미래 기술의 차폐막&lt;/b&gt;이 있다고 하자.&lt;/li&gt;
&lt;li&gt;발사 에너지 (리틀보이 8,000발): 에베레스트산을 총알 속도로 쏘려면 얼마나 많은 에너지가 필요할까? &lt;br /&gt;히로시마 원자폭탄(리틀보이) 약 1,300발을 동시에 터뜨려야 겨우 발사할 수 있다. &lt;br /&gt;이번엔 리틀보이 8,000발 분량의 막대한 운동 에너지를 가지고 지구로 돌진한다고 가정하자.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 발사 버튼을 눌러보자.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;9&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;9&quot; data-ke-size=&quot;size23&quot;&gt;1. 대기권 진입: 공기를 삭제하는 '플라즈마 바늘'&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dflCYr/dJMcai24wML/TibEn3yWL3MuiKsi9LdkkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dflCYr/dJMcai24wML/TibEn3yWL3MuiKsi9LdkkK/img.png&quot; data-alt=&quot;나노 바나나 이쉨..&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dflCYr/dJMcai24wML/TibEn3yWL3MuiKsi9LdkkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdflCYr%2FdJMcai24wML%2FTibEn3yWL3MuiKsi9LdkkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;1024&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;나노 바나나 이쉨..&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;정지궤도에서 서울로 내려올 때, 우리가 아는 공기역학은 가볍게 무시된다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;2억 톤의 질량이 5.56mm 바늘 끝에 실려 있으니 대기는 그냥 없는 거나 다름없다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;공기 분자들은 비켜날 시간조차 없어 탄환 표면 원자와 그대로 충돌하며 &lt;b data-index-in-node=&quot;39&quot; data-path-to-node=&quot;11&quot;&gt;핵융합&lt;/b&gt;을 시작한다. 서울 하늘에는 낙뢰보다 수조 배 강한 감마선 레이저와 태양보다 뜨거운 플라즈마 터널이 뚫린다. 탄환이 땅에 닿기도 전에 지상의 생명체들은 이 강렬한 빛에 눈이 멀고 타버릴 것이다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size23&quot;&gt;2. 서울 명중: &quot;구멍이 뚫리는 지각&quot;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caH2L4/dJMcabv90Aa/DZ048FJD4KIscGpWXrxKAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caH2L4/dJMcabv90Aa/DZ048FJD4KIscGpWXrxKAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caH2L4/dJMcabv90Aa/DZ048FJD4KIscGpWXrxKAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaH2L4%2FdJMcabv90Aa%2FDZ048FJD4KIscGpWXrxKAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;1024&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;탄환이 서울 시청 광장 보도블록에 닿는 순간을 상상해 보자, 보통의 폭탄은 땅에 닿으면 표면에서 터지지만, 이 탄환은 다르닷!&lt;br /&gt;&lt;br /&gt;탄환이 지면에 가하는 압력은 너무나 거대해서, 암석이나 콘크리트의 원자 구조가 버틸 수 없으므로 탄환에게 지각은 마치 '부드러운 안개'나 '묽은 주스' 로 처리된다.&lt;br /&gt;&lt;br /&gt;탄환은 폭발하기도 전에 지각을 수십 킬로미터 깊이로 뚫고 들어간다. 마치 뜨겁게 달궈진 바늘이 스티로폼을 뚫고 지나가는 것과 같이.. 이 과정에서 탄환이 가진 &lt;b&gt;120메가톤(리틀보이 8,000발)&lt;/b&gt;의 운동 에너지가 순식간에 열과 충격파로 변환되며 지면으로 전달됩니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;이 충격은 지구 반대편까지 감지될 정도의 초거대 지진을 일으킵니다. 서울 시내의 모든 건물은 0.1초 만에 가루가 되고, 충격파는 음속의 수십 배로 경기도 전역을 향해 뻗어 나갑니다. 이 충격파에 닿는 모든 생명체는 세포 단위에서 분해됩니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-path-to-node=&quot;24&quot; data-ke-size=&quot;size23&quot;&gt;3. 뉴트로늄 활성화: 현실의 붕괴&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tk11M/dJMcajt8MAR/nYWdcf7dJxsyxWVGAcmM31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tk11M/dJMcajt8MAR/nYWdcf7dJxsyxWVGAcmM31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tk11M/dJMcajt8MAR/nYWdcf7dJxsyxWVGAcmM31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftk11M%2FdJMcajt8MAR%2FnYWdcf7dJxsyxWVGAcmM31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;559&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;진짜 재앙은 탄환이 박힌 뒤 차폐막이 깨지면서 시작된다. 지금까지의 파괴는 '운동 에너지' 때문이었지만,&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;이제는 짓눌려 있던 중성자들이 서로를 밀어내는 힘(축퇴압) 때문에, 탄환은 찰나의 순간에 원래의 부피로 돌아가려 한다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;5.56mm였던 물질이 순식간에 &lt;b data-index-in-node=&quot;81&quot; data-path-to-node=&quot;26&quot;&gt;수 킬로미터 크기의 가스 덩어리&lt;/b&gt;로 부풀어 오르며 지구 내부에서 밖으로 폭발한다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;2억 톤의 뉴트로늄이 일반 물질로 돌아가며 방출하는 에너지는 지구의 지각 일부를 우주 밖으로 튕겨낼 정도.&lt;/p&gt;
&lt;p data-path-to-node=&quot;27&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;2&quot; data-ke-size=&quot;size23&quot;&gt;4. 그 후, 지구가 마주할 거대한 재앙&lt;/h3&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;뉴트로늄 탄환이 박히고 '활성화'되어 서울이 지도에서 사라진 뒤에도 비극은 끝나지 않는다. 이 작은 탄환 하나가 불러온 여파는 한반도를 넘어 지구 전체의 운명을 뒤흔들게 된다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4&quot;&gt;방사능의 바다 (베타 붕괴의 역습):&lt;/b&gt; 뉴트로늄은 중성자 덩어리다. 압박이 사라진 중성자는 약 10분의 반감기를 거치며 양성자와 전자로 변하는 '베타 붕괴'를 일으킨다. 2억 톤의 뉴트로늄이 붕괴하며 뿜어내는 에너지는 단순히 폭발에 그치지 않고, 지구 대기를 치명적인 중성자 방사선과 고에너지 입자로 가득 채운다. 한반도를 넘어 전 세계의 방사능 수치가 생명체가 살기 힘든 수준으로 급격히 치솟게 된다. (그야말로 방사능 지옥이 열리는 셈이다.)&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5&quot;&gt;지구를 휘감는 충격파:&lt;/b&gt; 120메가톤 급의 폭발과 뉴트로늄의 팽창 에너지는 대기를 타고 전 지구로 퍼져나간다. 과거 크라카토아 화산 폭발 당시 충격파가 지구를 일곱 바퀴 돌았다고 하는데, 이 탄환의 충격파는 그보다 훨씬 강력하다. 전 세계의 기압계가 요동치고, 해안가 근처의 도시들은 이 인공적인 진동이 만들어낸 거대한 쓰나미를 마주하게 될 것이다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6&quot;&gt;암흑의 겨울 (Impact Winter):&lt;/b&gt; 폭발로 인해 증발한 서울의 잔해와 뉴트로늄 가스, 그리고 성층권까지 치솟은 수십억 톤의 먼지구름이 태양 빛을 가로막는다. 낮에도 밤처럼 어두운 상태가 수개월간 지속되며 지구의 기온은 급격히 떨어지게 된다. 식물들이 광합성을 멈추고 생태계 사슬이 무너지는 '충격의 겨울'이 찾아오는 것이다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7&quot;&gt;지각의 상처와 궤도의 미세한 변화:&lt;/b&gt; 탄환이 뚫고 들어간 지각의 구멍은 거대한 마그마 분출구가 될 가능성이 높다. 또한, 2억 톤이라는 질량이 초고속으로 부딪힌 충격은 지구의 자전 속도나 축에 아주 미세하지만 물리적인 영향을 줄 수 있다. (물론 지구가 박살 날 정도는 아니겠지만, 전 세계의 정밀 시계들을 모두 다시 맞춰야 할지도 모른다.)&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-path-to-node=&quot;9&quot; data-ke-size=&quot;size23&quot;&gt;좀 더 생각해보면.&lt;/h3&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;뉴트로늄에 대한 체쥐, 제조 후 유통, 발사 까지하려면 수많은 고비가 많다. 거기에 탄자 또는 탄두 등으로 만들어서 발사까지 하려면 엄청난 에너지가 필요할 것이다. 단순히 리틀보이 8000개를 주요 타격지점에 쏘는게 나을지도?&lt;br /&gt;&lt;br /&gt;만약 &lt;b&gt;카르다쇼프 척도&lt;/b&gt;&amp;nbsp; 2티어 급 문명이라면?&lt;br /&gt;뉴트로늄을 제조하는건 에너지가 너무 많이 들어서 안할꺼고 중성자별에 가서 채취하는게 나아보이는데? 어찌저찌 축퇴물질을 뜯어서 가져온다 치고&lt;/p&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;그럼 중력이 강한 무언가로 잡아둬야함. 미니 블랙홀이나 시공간 왜곡????&lt;/p&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;발사는 뭐 다이슨 스피어를 통한 에너지를 레이저화 한다면 충분히 밀어내 줄 수 있어보이고 아니면 태양을 통한 스윙바이나 투석기처럼 돌다가 쏘면 충분히 가능해보임.&lt;/p&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;: 예전에 나사 출신 과학자들이 재미있는 망상 질문에 진지하게 답변해주던 왓이프를 처음 읽던 느낌으로 AI와 함께 작성했다.&amp;nbsp;&lt;br /&gt;계산은 너무 귀찮기도 하고 뇌내 에너지도 없고 할 줄 도 모르지만 AI가 다 해주니 너무 좋아.&lt;/p&gt;</description>
      <category>AI와 함께 망상하기</category>
      <author>쭘봉</author>
      <guid isPermaLink="true">https://zzumbong.tistory.com/128</guid>
      <comments>https://zzumbong.tistory.com/128#entry128comment</comments>
      <pubDate>Wed, 14 Jan 2026 03:14:26 +0900</pubDate>
    </item>
    <item>
      <title>[leetCode/JS] 1266. Minimum Time Visiting All Points</title>
      <link>https://zzumbong.tistory.com/127</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;난이도 [ &lt;span style=&quot;background-color: #ffffff; color: #0a0a23;&quot;&gt; &lt;/span&gt;&amp;nbsp;]&amp;nbsp;&lt;span style=&quot;color: #409d00;&quot;&gt;Easy&lt;/span&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 설명&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;On&amp;nbsp;a&amp;nbsp;2D&amp;nbsp;plane,&amp;nbsp;there&amp;nbsp;are&amp;nbsp;n&amp;nbsp;points&amp;nbsp;with&amp;nbsp;integer&amp;nbsp;coordinates&amp;nbsp;points[i]&amp;nbsp;=&amp;nbsp;[xi,&amp;nbsp;yi].&amp;nbsp;Return&amp;nbsp;the&amp;nbsp;minimum&amp;nbsp;time&amp;nbsp;in&amp;nbsp;seconds&amp;nbsp;to&amp;nbsp;visit&amp;nbsp;all&amp;nbsp;the&amp;nbsp;points&amp;nbsp;in&amp;nbsp;the&amp;nbsp;order&amp;nbsp;given&amp;nbsp;by&amp;nbsp;points.&amp;nbsp;You&amp;nbsp;can&amp;nbsp;move&amp;nbsp;according&amp;nbsp;to&amp;nbsp;these&amp;nbsp;rules:&amp;nbsp;In&amp;nbsp;1&amp;nbsp;second,&amp;nbsp;you&amp;nbsp;can&amp;nbsp;either:&amp;nbsp;move&amp;nbsp;vertically&amp;nbsp;by&amp;nbsp;one&amp;nbsp;unit,&amp;nbsp;move&amp;nbsp;horizontally&amp;nbsp;by&amp;nbsp;one&amp;nbsp;unit,&amp;nbsp;or&amp;nbsp;move&amp;nbsp;diagonally&amp;nbsp;sqrt(2)&amp;nbsp;units&amp;nbsp;(in&amp;nbsp;other&amp;nbsp;words,&amp;nbsp;move&amp;nbsp;one&amp;nbsp;unit&amp;nbsp;vertically&amp;nbsp;then&amp;nbsp;one&amp;nbsp;unit&amp;nbsp;horizontally&amp;nbsp;in&amp;nbsp;1&amp;nbsp;second).&amp;nbsp;You&amp;nbsp;have&amp;nbsp;to&amp;nbsp;visit&amp;nbsp;the&amp;nbsp;points&amp;nbsp;in&amp;nbsp;the&amp;nbsp;same&amp;nbsp;order&amp;nbsp;as&amp;nbsp;they&amp;nbsp;appear&amp;nbsp;in&amp;nbsp;the&amp;nbsp;array.&amp;nbsp;You&amp;nbsp;are&amp;nbsp;allowed&amp;nbsp;to&amp;nbsp;pass&amp;nbsp;through&amp;nbsp;points&amp;nbsp;that&amp;nbsp;appear&amp;nbsp;later&amp;nbsp;in&amp;nbsp;the&amp;nbsp;order,&amp;nbsp;but&amp;nbsp;these&amp;nbsp;do&amp;nbsp;not&amp;nbsp;count&amp;nbsp;as&amp;nbsp;visits.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Example 1:&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;684&quot; data-origin-height=&quot;585&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kHcvq/dJMcahC7B3m/NMwGKja4M9peLIfbmhD091/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kHcvq/dJMcahC7B3m/NMwGKja4M9peLIfbmhD091/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kHcvq/dJMcahC7B3m/NMwGKja4M9peLIfbmhD091/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkHcvq%2FdJMcahC7B3m%2FNMwGKja4M9peLIfbmhD091%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;684&quot; height=&quot;585&quot; data-origin-width=&quot;684&quot; data-origin-height=&quot;585&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input: points = [[1,1],[3,4],[-1,0]] &lt;br /&gt;Output: 7 &lt;br /&gt;Explanation: One optimal path is [1,1] -&amp;gt; [2,2] -&amp;gt; [3,3] -&amp;gt; [3,4] -&amp;gt; [2,3] -&amp;gt; [1,2] -&amp;gt; [0,1] -&amp;gt; [-1,0] Time from [1,1] to [3,4] = 3 seconds Time from [3,4] to [-1,0] = 4 seconds Total time = 7 seconds&amp;nbsp;&lt;/blockquote&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Example 2:&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input: points = [[3,2],[-2,2]] Output: 5&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Constraints&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;points.length&amp;nbsp;==&amp;nbsp;n&amp;nbsp;&lt;/li&gt;
&lt;li&gt;1&amp;nbsp;&amp;lt;=&amp;nbsp;n&amp;nbsp;&amp;lt;=&amp;nbsp;100&amp;nbsp;&lt;/li&gt;
&lt;li&gt;points[i].length&amp;nbsp;==&amp;nbsp;2&amp;nbsp;&lt;/li&gt;
&lt;li&gt;-1000&amp;nbsp;&amp;lt;=&amp;nbsp;points[i][0],&amp;nbsp;points[i][1]&amp;nbsp;&amp;lt;=&amp;nbsp;1000&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;내 솔루션&lt;/h2&gt;
&lt;pre id=&quot;code_1669187862053&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * https://leetcode.com/problems/minimum-time-visiting-all-points
 * @param {number[][]} points
 * @return {number}
 */
var minTimeToVisitAllPoints = function (points) {
    let awnser = 0;
    for (let i = 0; i &amp;lt; points.length - 1; i++) {
        let cur = points[i];
        let next = points[i + 1];
        awnser += Math.max(
            Math.abs(next[0] - cur[0]), Math.abs(next[1] - cur[1])
        );
    }

    return awnser;
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;감상평&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1220&quot; data-origin-height=&quot;696&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b58juS/dJMcadtU0iq/80Nok3v0il8PGrMM8U6n61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b58juS/dJMcadtU0iq/80Nok3v0il8PGrMM8U6n61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b58juS/dJMcadtU0iq/80Nok3v0il8PGrMM8U6n61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb58juS%2FdJMcadtU0iq%2F80Nok3v0il8PGrMM8U6n61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1220&quot; height=&quot;696&quot; data-origin-width=&quot;1220&quot; data-origin-height=&quot;696&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이지 문제가 가장 재미있다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>coding test/leetCode</category>
      <author>쭘봉</author>
      <guid isPermaLink="true">https://zzumbong.tistory.com/127</guid>
      <comments>https://zzumbong.tistory.com/127#entry127comment</comments>
      <pubDate>Mon, 12 Jan 2026 12:59:40 +0900</pubDate>
    </item>
    <item>
      <title>[leetCode/JS] 1339. Maximum Product of Splitted Binary Tree</title>
      <link>https://zzumbong.tistory.com/126</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;난이도 [ &lt;span style=&quot;background-color: #ffffff; color: #0a0a23;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a23;&quot;&gt; &lt;/span&gt;&lt;/span&gt; ] &lt;span style=&quot;color: #f3c000;&quot;&gt;Medium&lt;/span&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 설명&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Given&amp;nbsp;the&amp;nbsp;root&amp;nbsp;of&amp;nbsp;a&amp;nbsp;binary&amp;nbsp;tree,&amp;nbsp;split&amp;nbsp;the&amp;nbsp;binary&amp;nbsp;tree&amp;nbsp;into&amp;nbsp;two&amp;nbsp;subtrees&amp;nbsp;by&amp;nbsp;removing&amp;nbsp;one&amp;nbsp;edge&amp;nbsp;such&amp;nbsp;that&amp;nbsp;the&amp;nbsp;product&amp;nbsp;of&amp;nbsp;the&amp;nbsp;sums&amp;nbsp;of&amp;nbsp;the&amp;nbsp;subtrees&amp;nbsp;is&amp;nbsp;maximized.&amp;nbsp;Return&amp;nbsp;the&amp;nbsp;maximum&amp;nbsp;product&amp;nbsp;of&amp;nbsp;the&amp;nbsp;sums&amp;nbsp;of&amp;nbsp;the&amp;nbsp;two&amp;nbsp;subtrees.&amp;nbsp;Since&amp;nbsp;the&amp;nbsp;answer&amp;nbsp;may&amp;nbsp;be&amp;nbsp;too&amp;nbsp;large,&amp;nbsp;return&amp;nbsp;it&amp;nbsp;modulo&amp;nbsp;109&amp;nbsp;+&amp;nbsp;7.&amp;nbsp;Note&amp;nbsp;that&amp;nbsp;you&amp;nbsp;need&amp;nbsp;to&amp;nbsp;maximize&amp;nbsp;the&amp;nbsp;answer&amp;nbsp;before&amp;nbsp;taking&amp;nbsp;the&amp;nbsp;mod&amp;nbsp;and&amp;nbsp;not&amp;nbsp;after&amp;nbsp;taking&amp;nbsp;it.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Example 1:&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;695&quot; data-origin-height=&quot;232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6xzOB/dJMcajt53B3/QxXxpyk8JIKMGMKGEoOCi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6xzOB/dJMcajt53B3/QxXxpyk8JIKMGMKGEoOCi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6xzOB/dJMcajt53B3/QxXxpyk8JIKMGMKGEoOCi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6xzOB%2FdJMcajt53B3%2FQxXxpyk8JIKMGMKGEoOCi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;695&quot; height=&quot;232&quot; data-origin-width=&quot;695&quot; data-origin-height=&quot;232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input: root = [1,2,3,4,5,6] &lt;br /&gt;Output: 110 &lt;br /&gt;Explanation: Remove the red edge and get 2 binary trees with sum 11 and 10. Their product is 110 (11*10)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Example 2:&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGyxr2/dJMcagRIYmi/MfV2OvLfrKZfUkCbwBK611/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGyxr2/dJMcagRIYmi/MfV2OvLfrKZfUkCbwBK611/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGyxr2/dJMcagRIYmi/MfV2OvLfrKZfUkCbwBK611/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGyxr2%2FdJMcagRIYmi%2FMfV2OvLfrKZfUkCbwBK611%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;667&quot; height=&quot;281&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input: root = [1,null,2,3,4,null,null,5,6]&lt;br /&gt;Output: 90&lt;br /&gt;Explanation: Remove the red edge and get 2 binary trees with sum 15 and 6.Their product is 90 (15*6) &lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Constraints&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;The number of nodes in the tree is in the range [2, 5 * 10^4].&amp;nbsp;&lt;/li&gt;
&lt;li&gt;1 &amp;lt;= Node.val &amp;lt;= 10^4&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;내 솔루션&lt;/h2&gt;
&lt;pre id=&quot;code_1669187862053&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var maxProduct = function (root) {
    const MOD = 1000000007;

    // DFS로 순회하면서 현재 트리 합을 계속 저장하면서 
    // 전체 합을 구해두기

    const allSums = [];

    const getSum = (node) =&amp;gt; {
        if (!node) return 0;

        const currentSum = node.val + getSum(node.left) + getSum(node.right);

        allSums.push(currentSum);
        return currentSum;
    }
    const totalSum = getSum(root)

    let maxProd = 0;

    for (let sum of allSums) {
        const currentProd = sum * (totalSum - sum);
        if (currentProd &amp;gt; maxProd) {
            maxProd = currentProd;
        }
    }

    return maxProd % MOD
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;감상평&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;array push 가 아니라&amp;nbsp; 그때그때 비교하는 코드로 만들면 더 빠름&lt;/li&gt;
&lt;li&gt;MOD 하는거 0 몇개인지 자꾸 햇갈려&amp;nbsp; 1-0은 8개-7&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1194&quot; data-origin-height=&quot;662&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TFrdj/dJMcaf6l4TD/TD9nZ2sXOx2XP5xlS0iIkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TFrdj/dJMcaf6l4TD/TD9nZ2sXOx2XP5xlS0iIkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TFrdj/dJMcaf6l4TD/TD9nZ2sXOx2XP5xlS0iIkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTFrdj%2FdJMcaf6l4TD%2FTD9nZ2sXOx2XP5xlS0iIkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1194&quot; height=&quot;662&quot; data-origin-width=&quot;1194&quot; data-origin-height=&quot;662&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>coding test/leetCode</category>
      <author>쭘봉</author>
      <guid isPermaLink="true">https://zzumbong.tistory.com/126</guid>
      <comments>https://zzumbong.tistory.com/126#entry126comment</comments>
      <pubDate>Wed, 7 Jan 2026 09:41:42 +0900</pubDate>
    </item>
    <item>
      <title>[leetCode/JS] 1161. Maximum Level Sum of a Binary Tree</title>
      <link>https://zzumbong.tistory.com/125</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;난이도 [ &lt;span style=&quot;background-color: #ffffff; color: #0a0a23;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a23;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;] &lt;span style=&quot;color: #f3c000;&quot;&gt;Medium&lt;/span&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 설명&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Given&amp;nbsp;the&amp;nbsp;root&amp;nbsp;of&amp;nbsp;a&amp;nbsp;binary&amp;nbsp;tree,&amp;nbsp;the&amp;nbsp;level&amp;nbsp;of&amp;nbsp;its&amp;nbsp;root&amp;nbsp;is&amp;nbsp;1,&amp;nbsp;the&amp;nbsp;level&amp;nbsp;of&amp;nbsp;its&amp;nbsp;children&amp;nbsp;is&amp;nbsp;2,&amp;nbsp;and&amp;nbsp;so&amp;nbsp;on.&amp;nbsp;Return&amp;nbsp;the&amp;nbsp;smallest&amp;nbsp;level&amp;nbsp;x&amp;nbsp;such&amp;nbsp;that&amp;nbsp;the&amp;nbsp;sum&amp;nbsp;of&amp;nbsp;all&amp;nbsp;the&amp;nbsp;values&amp;nbsp;of&amp;nbsp;nodes&amp;nbsp;at&amp;nbsp;level&amp;nbsp;x&amp;nbsp;is&amp;nbsp;maximal.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;이진 트리의 루트(root)가 주어집니다. 루트의 레벨은 1이고, 그 자식들의 레벨은 2, 그다음은 3으로 이어집니다.각 레벨에 있는 모든 노드 값의 합을 구했을 때, 그 합이 최대가 되는 가장 작은 레벨 x를 반환하세요.&lt;br /&gt;&lt;br /&gt;포인트 1: 합이 최대인 레벨을 찾아야 함.&lt;br /&gt;포인트 2: 만약 합이 같은 레벨이 여러 개라면, 그중 숫자가 더 작은 레벨(더 위쪽에 있는 레벨)을 선택해야 함.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Example 1:&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;291&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMX0Kd/dJMcahpzEey/mOuqnOhiK5SOupSX25pvL1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMX0Kd/dJMcahpzEey/mOuqnOhiK5SOupSX25pvL1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMX0Kd/dJMcahpzEey/mOuqnOhiK5SOupSX25pvL1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMX0Kd%2FdJMcahpzEey%2FmOuqnOhiK5SOupSX25pvL1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;332&quot; height=&quot;291&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;291&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input: root = [1,7,0,7,-8,null,null]&lt;br /&gt;Output: 2 &lt;br /&gt;Explanation: Level 1 sum = 1. Level 2 sum = 7 + 0 = 7. Level 3 sum = 7 + -8 = -1. &lt;br /&gt;So we return the level with the maximum sum which is level 2.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Example 2:&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input: root = [989,null,10250,98693,-89388,null,null,null,-32127]&lt;br /&gt;Output: 2&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Constraints&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;The number of nodes in the tree is in the range [1, 10^4].&amp;nbsp;&lt;/li&gt;
&lt;li&gt;-10^5 &amp;lt;= Node.val &amp;lt;= 10^5&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;내 솔루션&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1669187862053&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var maxLevelSum = function (root) {
    let maxSum = -Infinity;
    let maxLevel = 1;
    let level = 1;
    let que = [root];

    while (que.length &amp;gt; 0) {
        let currentSize = que.length;
        let currentSum = 0;
        for (let i = 0; i &amp;lt; currentSize; i++) {
            let node = que.shift();
            currentSum += node.val;

            if (node.left) que.push(node.left);
            if (node.right) que.push(node.right);
        }

        if (currentSum &amp;gt; maxSum) {
            maxSum = currentSum;
            maxLevel = level;
        }
        level++;
    }
    return maxLevel;
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;감상평&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문제 보고 음.. BFS를 사용해야 겠네&lt;/li&gt;
&lt;li&gt;BFS로 레벨 별로 돌아야 하니까 while 속에 for문으로 돌리면서 합계를 구해야하는군!&lt;/li&gt;
&lt;li&gt;for문이 끝나면 누가 더큰지 비교해서 제일 큰 값의 레벨을 리턴하면 된다!&lt;/li&gt;
&lt;li&gt;라는 생각으로 풀면 쉽게 풀림.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1190&quot; data-origin-height=&quot;648&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RWROF/dJMcahC5swk/qA6eHoih17gxvvTbFWR720/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RWROF/dJMcahC5swk/qA6eHoih17gxvvTbFWR720/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RWROF/dJMcahC5swk/qA6eHoih17gxvvTbFWR720/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRWROF%2FdJMcahC5swk%2FqA6eHoih17gxvvTbFWR720%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1190&quot; height=&quot;648&quot; data-origin-width=&quot;1190&quot; data-origin-height=&quot;648&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Beast 100% 달성 코드 첨부&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로직와 알고리즘 모두 똑같은데, 찿이가 que 대신에 head하는 index를 이용해서 반복함.&lt;/li&gt;
&lt;li&gt;shift() 같은 경우 [1,2,3,4] 에서 1이 빠지면 나머지 3칸이 이동하는 시스템이라고함. 그래서 더 오래 걸림.&lt;/li&gt;
&lt;li&gt;단순히 head 라는 index만 ++ 하니까 런타임이 줄어든다고 한다.&lt;/li&gt;
&lt;li&gt;BFS가 잘 도는데 느리다고 빠꾸 먹으면 head BFS를 떠올릴 것&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1767658987791&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var maxLevelSum = function(root) {
    if(!root) return -1;

    const queue = [root];
    let head = 0;

    let maxValue = -Infinity;
    let maxIndex = 1;
    let currentLevel = 1;

    while (head &amp;lt; queue.length) {
        const levelSize = queue.length - head;
        let levelSum = 0;
        
        for (let i = 0; i &amp;lt; levelSize; i++) {
            const node = queue[head++];
            levelSum += node.val;

            if(node.left) queue.push(node.left);
            if(node.right) queue.push(node.right);
        }

        if(levelSum &amp;gt; maxValue) {
            maxValue = levelSum;
            maxIndex = currentLevel;
        }

        currentLevel++
    }

    return maxIndex
};&lt;/code&gt;&lt;/pre&gt;</description>
      <category>coding test/leetCode</category>
      <author>쭘봉</author>
      <guid isPermaLink="true">https://zzumbong.tistory.com/125</guid>
      <comments>https://zzumbong.tistory.com/125#entry125comment</comments>
      <pubDate>Tue, 6 Jan 2026 09:25:12 +0900</pubDate>
    </item>
    <item>
      <title>[leetCode/JS] 1975. Maximum Matrix Sum</title>
      <link>https://zzumbong.tistory.com/124</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;난이도 [ &lt;span style=&quot;background-color: #ffffff; color: #0a0a23;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a23;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&amp;nbsp;] &lt;span style=&quot;color: #f3c000;&quot;&gt;Medium&lt;/span&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 설명&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;You are given an n x n integer matrix. You can do the following operation any number of times: Choose any two adjacent elements of matrix and multiply each of them by -1. Two elements are considered adjacent if and only if they share a border. Your goal is to maximize the summation of the matrix's elements. Return the maximum sum of the matrix's elements using the operation mentioned above.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;당신에게 n x n 크기의 정수 행렬이 주어집니다. 당신은 다음과 같은 연산을 원하는 만큼 수행할 수 있습니다.행렬에서 인접한 두 요소를 선택하고, 각각에 -1을 곱합니다.두 요소가 경계(변)를 공유하는 경우에만 인접한 것으로 간주합니다.당신의 목표는 행렬 내 모든 요소의 합을 최대화하는 것입니다. 위 연산을 사용하여 얻을 수 있는 행렬 요소 합의 최댓값을 반환하세요.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Example 1:&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;81&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcF3wv/dJMcadHqgoN/Ns5fvCVwilVY8MWKCTbG9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcF3wv/dJMcadHqgoN/Ns5fvCVwilVY8MWKCTbG9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcF3wv/dJMcadHqgoN/Ns5fvCVwilVY8MWKCTbG9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcF3wv%2FdJMcadHqgoN%2FNs5fvCVwilVY8MWKCTbG9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;401&quot; height=&quot;81&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;81&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input:&amp;nbsp;matrix&amp;nbsp;=&amp;nbsp;[[1,-1],[-1,1]]&amp;nbsp;&lt;br /&gt;Output:&amp;nbsp;4&amp;nbsp;&lt;br /&gt;Explanation:&amp;nbsp;We&amp;nbsp;can&amp;nbsp;follow&amp;nbsp;the&amp;nbsp;following&amp;nbsp;steps&amp;nbsp;to&amp;nbsp;reach&amp;nbsp;sum&amp;nbsp;equals&amp;nbsp;4:&amp;nbsp;&lt;br /&gt;&amp;nbsp;- Multiply the 2 elements in the first row by -1. &lt;br /&gt;- Multiply the 2 elements in the first column by -1.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Example 2:&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;321&quot; data-origin-height=&quot;121&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bg8miz/dJMcadOaipc/zvnoSF4ia6H6SBDiAS7jDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bg8miz/dJMcadOaipc/zvnoSF4ia6H6SBDiAS7jDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bg8miz/dJMcadOaipc/zvnoSF4ia6H6SBDiAS7jDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbg8miz%2FdJMcadOaipc%2FzvnoSF4ia6H6SBDiAS7jDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;321&quot; height=&quot;121&quot; data-origin-width=&quot;321&quot; data-origin-height=&quot;121&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input:&amp;nbsp;matrix&amp;nbsp;=&amp;nbsp;[[1,2,3],[-1,-2,-3],[1,2,3]]&amp;nbsp;&lt;br /&gt;Output:&amp;nbsp;16&amp;nbsp;&lt;br /&gt;Explanation:&amp;nbsp;We&amp;nbsp;can&amp;nbsp;follow&amp;nbsp;the&amp;nbsp;following&amp;nbsp;step&amp;nbsp;to&amp;nbsp;reach&amp;nbsp;sum&amp;nbsp;equals&amp;nbsp;16:&amp;nbsp;&lt;br /&gt;&amp;nbsp;- Multiply the 2 last elements in the second row by -1.&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Constraints&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;n == matrix.length == matrix[i].length&lt;/li&gt;
&lt;li&gt;2 &amp;lt;= n &amp;lt;= 250&lt;/li&gt;
&lt;li&gt;-10^5 &amp;lt;= matrix[i][j] &amp;lt;= 10^5&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;내 솔루션&lt;/h2&gt;
&lt;pre id=&quot;code_1669187862053&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * https://leetcode.com/problems/maximum-matrix-sum
 * @param {number[][]} matrix
 * @return {number}
 *//**
 * @param {number[][]} matrix
 * @return {number}
 */

/**
 * @param {number[][]} matrix
 * @return {number}
 */
var maxMatrixSum = function (matrix) {
    // 1차원 배열로 펼쳐서 처리 (가독성을 위해 flat 사용)
    const flatMatrix = matrix.flat();
    
    let numberOfMinus = 0; // 행렬 내 음수(-)의 총 개수
    let sum = 0;           // 모든 요소의 절댓값 합
    let minimunABS = Infinity; // 가장 작은 절댓값을 저장 (초기값은 무한대)

    for (let i = 0; i &amp;lt; flatMatrix.length; i++) {
        const val = flatMatrix[i];
        const absNum = Math.abs(val); // 현재 요소의 절댓값
        
        // 1. 모든 숫자를 양수로 가정하고 합산
        sum += absNum;
        
        // 2. 음수의 개수를 카운트
        // 인접한 두 수의 부호를 바꾸는 연산을 반복하면, 
        // 음수 부호를 원하는 위치로 이동시키거나 짝수개의 음수를 제거할 수 있음
        if (val &amp;lt; 0) numberOfMinus++;
        
        // 3. 행렬에서 절댓값이 가장 작은 숫자 찾기
        // 만약 음수가 홀수개라면, 전체 합에서 이 가장 작은 값을 음수로 남겨야 손해가 최소화됨
        if (minimunABS &amp;gt; absNum) minimunABS = absNum;
    }

    /**
     * 결과 반환 로직:
     * - 음수가 짝수개(numberOfMinus % 2 === 0): 
     * 모든 음수를 연산을 통해 양수로 바꿀 수 있으므로 전체 합(sum) 반환.
     * * - 음수가 홀수개: 
     * 무조건 한 개의 숫자는 음수로 남음. 가장 작은 숫자(minimunABS)를 음수로 선택.
     * 이미 sum에는 minimunABS가 양수로 더해져 있으므로, 
     * 이를 음수로 바꾸기 위해 sum에서 해당 값을 두 번 뺌 (sum - 2 * min).
     */
    return numberOfMinus % 2 === 0 ? sum : sum - (minimunABS * 2);
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;감상평&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;재미있는 문제. 구현이 어렵다기 보단 규칙을 찾아서 알고리즘을 만드는 이해력 문제&lt;/li&gt;
&lt;li&gt;const flatMatrix = matrix.flat(); 대신에 2중 for 문을 사용하면 100% 가능해짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;658&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MIHxq/dJMb99SA1Tu/bMQ4rR3Raxmx8KNRSjvjJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MIHxq/dJMb99SA1Tu/bMQ4rR3Raxmx8KNRSjvjJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MIHxq/dJMb99SA1Tu/bMQ4rR3Raxmx8KNRSjvjJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMIHxq%2FdJMb99SA1Tu%2FbMQ4rR3Raxmx8KNRSjvjJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1192&quot; height=&quot;658&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;658&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>coding test/leetCode</category>
      <author>쭘봉</author>
      <guid isPermaLink="true">https://zzumbong.tistory.com/124</guid>
      <comments>https://zzumbong.tistory.com/124#entry124comment</comments>
      <pubDate>Mon, 5 Jan 2026 12:36:34 +0900</pubDate>
    </item>
    <item>
      <title>[leetCode/JS] 66. Plus One</title>
      <link>https://zzumbong.tistory.com/123</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;난이도 [ &lt;span style=&quot;background-color: #ffffff; color: #0a0a23;&quot;&gt; &lt;/span&gt; ] &lt;span style=&quot;color: #409d00;&quot;&gt;Easy&lt;/span&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 설명&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;You&amp;nbsp;are&amp;nbsp;given&amp;nbsp;a&amp;nbsp;large&amp;nbsp;integer&amp;nbsp;represented&amp;nbsp;as&amp;nbsp;an&amp;nbsp;integer&amp;nbsp;array&amp;nbsp;digits,&amp;nbsp;where&amp;nbsp;each&amp;nbsp;digits[i]&amp;nbsp;is&amp;nbsp;the&amp;nbsp;ith&amp;nbsp;digit&amp;nbsp;of&amp;nbsp;the&amp;nbsp;integer.&amp;nbsp;The&amp;nbsp;digits&amp;nbsp;are&amp;nbsp;ordered&amp;nbsp;from&amp;nbsp;most&amp;nbsp;significant&amp;nbsp;to&amp;nbsp;least&amp;nbsp;significant&amp;nbsp;in&amp;nbsp;left-to-right&amp;nbsp;order.&amp;nbsp;The&amp;nbsp;large&amp;nbsp;integer&amp;nbsp;does&amp;nbsp;not&amp;nbsp;contain&amp;nbsp;any&amp;nbsp;leading&amp;nbsp;0's.&amp;nbsp;Increment&amp;nbsp;the&amp;nbsp;large&amp;nbsp;integer&amp;nbsp;by&amp;nbsp;one&amp;nbsp;and&amp;nbsp;return&amp;nbsp;the&amp;nbsp;resulting&amp;nbsp;array&amp;nbsp;of&amp;nbsp;digits.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Example 1:&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input: digits = [1,2,3] &lt;br /&gt;Output: [1,2,4] &lt;br /&gt;Explanation: The array represents the integer 123. Incrementing by one gives 123 + 1 = 124. &lt;br /&gt;Thus, the result should be [1,2,4].&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Example 2:&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input: digits = [4,3,2,1] &lt;br /&gt;Output: [4,3,2,2] &lt;br /&gt;Explanation: The array represents the integer 4321. Incrementing by one gives 4321 + 1 = 4322. &lt;br /&gt;Thus, the result should be [4,3,2,2].&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Example 3:&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input: digits = [9] &lt;br /&gt;Output: [1,0] &lt;br /&gt;Explanation: The array represents the integer 9. Incrementing by one gives 9 + 1 = 10. &lt;br /&gt;Thus, the result should be [1,0].&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Constraints&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1 &amp;lt;= digits.length &amp;lt;= 100&lt;/li&gt;
&lt;li&gt;0 &amp;lt;= digits[i] &amp;lt;= 9&lt;/li&gt;
&lt;li&gt;digits does not contain any leading 0's.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;내 솔루션&lt;/h2&gt;
&lt;pre id=&quot;code_1669187862053&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * https://leetcode.com/problems/plus-one
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function (digits) {
    for (let i = digits.length - 1; i &amp;gt;= 0; i--) {
        digits[i]++;

        if (digits[i] &amp;lt; 10) {
            return digits;
        }
        digits[i] = 0;
    }
    digits.unshift(1);
    return digits;
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;감상평&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;처음엔 reduce로 모든 배열을 더해서 숫자 -&amp;gt; 스트링으로 변경 후 -&amp;gt; 다시 배열 변경 하려고 했는데 숫자가 100 자리 이상이라 오류가 났음.&lt;/li&gt;
&lt;li&gt;배열을 직접 건들이는 방식으로 해결.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;854&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMz8ww/dJMcaaxbqxK/B0YgkTHkppHYGlaizoFsr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMz8ww/dJMcaaxbqxK/B0YgkTHkppHYGlaizoFsr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMz8ww/dJMcaaxbqxK/B0YgkTHkppHYGlaizoFsr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMz8ww%2FdJMcaaxbqxK%2FB0YgkTHkppHYGlaizoFsr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1500&quot; height=&quot;854&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;854&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>coding test/leetCode</category>
      <author>쭘봉</author>
      <guid isPermaLink="true">https://zzumbong.tistory.com/123</guid>
      <comments>https://zzumbong.tistory.com/123#entry123comment</comments>
      <pubDate>Fri, 2 Jan 2026 08:27:28 +0900</pubDate>
    </item>
    <item>
      <title>[leetCode/JS] 1970. Last Day Where You Can Still Cross</title>
      <link>https://zzumbong.tistory.com/122</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;난이도 [   ] &lt;span style=&quot;color: #ee2323;&quot;&gt;Hard&lt;/span&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 설명&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;There is a 1-based binary matrix where 0 represents land and 1 represents water. You are given integers row and col representing the number of rows and columns in the matrix, respectively.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Initially on day 0, the entire matrix is land. However, each day a new cell becomes flooded with water. You are given a 1-based 2D array cells, where cells[i] = [ri, ci] represents that on the ith day, the cell on the rith row and cith column (1-based coordinates) will be covered with water (i.e., changed to 1).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;You want to find the last day that it is possible to walk from the top to the bottom by only walking on land cells. You can start from any cell in the top row and end at any cell in the bottom row. You can only travel in the four cardinal directions (left, right, up, and down).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Return the last day where it is possible to walk from the top to the bottom by only walking on land cells.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;  마지막으로 건널 수 있는 날 찾기 (Last Day to Walk Across)&lt;br /&gt;&lt;br /&gt;0은 땅을 나타내고 1은 물을 나타내는 '1-기반(1-based)' 이진 행렬이 있습니다. 행렬의 행과 열의 개수를 나타내는 정수 row와 col이 주어집니다.&lt;br /&gt;처음 0일차에는 행렬의 전체가 땅입니다. 하지만 매일 새로운 칸 하나가 물에 잠기게 됩니다. 당신에게는 '1-기반' 2차원 배열 cells가 주어지며, 여기서 cells[i] = [ri, ci]는 $i$번째 날에 $r_i$행 $c_i$열(1-기반 좌표)에 있는 칸이 물로 덮임(즉, 1로 변경됨)을 의미합니다.&lt;br /&gt;당신은 오직 땅(0)으로만 이동하여 맨 윗줄(top)에서 맨 아랫줄(bottom)까지 걸어갈 수 있는 마지막 날이 언제인지 찾고 싶습니다. 맨 윗줄의 어느 칸에서든 시작할 수 있으며, 맨 아랫줄의 어느 칸에서든 끝낼 수 있습니다. 이동은 오직 상, 하, 좌, 우 네 방향으로만 가능합니다.&lt;br /&gt;땅으로만 걸어서 맨 윗줄에서 맨 아랫줄까지 횡단할 수 있는 마지막 날을 반환하세요.&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Example 1:&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfzXz1/dJMcaiu9Sia/xLs4KghZj5jHEHdxHlILAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfzXz1/dJMcaiu9Sia/xLs4KghZj5jHEHdxHlILAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfzXz1/dJMcaiu9Sia/xLs4KghZj5jHEHdxHlILAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfzXz1%2FdJMcaiu9Sia%2FxLs4KghZj5jHEHdxHlILAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;624&quot; height=&quot;162&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input:&amp;nbsp;row&amp;nbsp;=&amp;nbsp;2,&amp;nbsp;col&amp;nbsp;=&amp;nbsp;2,&amp;nbsp;cells&amp;nbsp;=&amp;nbsp;[[1,1],[2,1],[1,2],[2,2]]&amp;nbsp;&lt;br /&gt;Output: 2 &lt;br /&gt;Explanation: The above image depicts how the matrix changes each day starting from day 0.&lt;br /&gt;The last day where it is possible to cross from top to bottom is on day 2.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Example 2:&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;504&quot; data-origin-height=&quot;178&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beVsls/dJMcac2MUT2/XktxnA3PCMLg4tsncB1xNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beVsls/dJMcac2MUT2/XktxnA3PCMLg4tsncB1xNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beVsls/dJMcac2MUT2/XktxnA3PCMLg4tsncB1xNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeVsls%2FdJMcac2MUT2%2FXktxnA3PCMLg4tsncB1xNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;504&quot; height=&quot;178&quot; data-origin-width=&quot;504&quot; data-origin-height=&quot;178&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input:&amp;nbsp;row&amp;nbsp;=&amp;nbsp;2,&amp;nbsp;col&amp;nbsp;=&amp;nbsp;2,&amp;nbsp;cells&amp;nbsp;=&amp;nbsp;[[1,1],[1,2],[2,1],[2,2]]&amp;nbsp;&lt;br /&gt;Output:&amp;nbsp;1&amp;nbsp;&lt;br /&gt;Explanation:&amp;nbsp;The&amp;nbsp;above&amp;nbsp;image&amp;nbsp;depicts&amp;nbsp;how&amp;nbsp;the&amp;nbsp;matrix&amp;nbsp;changes&amp;nbsp;each&amp;nbsp;day&amp;nbsp;starting&amp;nbsp;from&amp;nbsp;day&amp;nbsp;0.&amp;nbsp;&lt;br /&gt;The&amp;nbsp;last&amp;nbsp;day&amp;nbsp;where&amp;nbsp;it&amp;nbsp;is&amp;nbsp;possible&amp;nbsp;to&amp;nbsp;cross&amp;nbsp;from&amp;nbsp;top&amp;nbsp;to&amp;nbsp;bottom&amp;nbsp;is&amp;nbsp;on&amp;nbsp;day&amp;nbsp;1.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Example 3:&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;666&quot; data-origin-height=&quot;167&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beaSnS/dJMcac2MUTX/N0bdgo5kee4OuZc0mmz3x1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beaSnS/dJMcac2MUTX/N0bdgo5kee4OuZc0mmz3x1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beaSnS/dJMcac2MUTX/N0bdgo5kee4OuZc0mmz3x1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeaSnS%2FdJMcac2MUTX%2FN0bdgo5kee4OuZc0mmz3x1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;666&quot; height=&quot;167&quot; data-origin-width=&quot;666&quot; data-origin-height=&quot;167&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input:&amp;nbsp;row&amp;nbsp;=&amp;nbsp;3,&amp;nbsp;col&amp;nbsp;=&amp;nbsp;3,&amp;nbsp;cells&amp;nbsp;=&amp;nbsp;[[1,2],[2,1],[3,3],[2,2],[1,1],[1,3],[2,3],[3,2],[3,1]]&amp;nbsp;&lt;br /&gt;Output:&amp;nbsp;3&amp;nbsp;&lt;br /&gt;Explanation:&amp;nbsp;The&amp;nbsp;above&amp;nbsp;image&amp;nbsp;depicts&amp;nbsp;how&amp;nbsp;the&amp;nbsp;matrix&amp;nbsp;changes&amp;nbsp;each&amp;nbsp;day&amp;nbsp;starting&amp;nbsp;from&amp;nbsp;day&amp;nbsp;0.&amp;nbsp;&lt;br /&gt;The&amp;nbsp;last&amp;nbsp;day&amp;nbsp;where&amp;nbsp;it&amp;nbsp;is&amp;nbsp;possible&amp;nbsp;to&amp;nbsp;cross&amp;nbsp;from&amp;nbsp;top&amp;nbsp;to&amp;nbsp;bottom&amp;nbsp;is&amp;nbsp;on&amp;nbsp;day&amp;nbsp;3.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Constraints&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2&amp;nbsp;&amp;lt;=&amp;nbsp;row,&amp;nbsp;col&amp;nbsp;&amp;lt;=&amp;nbsp;2&amp;nbsp;*&amp;nbsp;104&amp;nbsp;&lt;/li&gt;
&lt;li&gt;4&amp;nbsp;&amp;lt;=&amp;nbsp;row&amp;nbsp;*&amp;nbsp;col&amp;nbsp;&amp;lt;=&amp;nbsp;2&amp;nbsp;*&amp;nbsp;104&amp;nbsp;&lt;/li&gt;
&lt;li&gt;cells.length&amp;nbsp;==&amp;nbsp;row&amp;nbsp;*&amp;nbsp;col&amp;nbsp;&lt;/li&gt;
&lt;li&gt;1&amp;nbsp;&amp;lt;=&amp;nbsp;ri&amp;nbsp;&amp;lt;=&amp;nbsp;row&amp;nbsp;&lt;/li&gt;
&lt;li&gt;1&amp;nbsp;&amp;lt;=&amp;nbsp;ci&amp;nbsp;&amp;lt;=&amp;nbsp;col&amp;nbsp;&lt;/li&gt;
&lt;li&gt;All&amp;nbsp;the&amp;nbsp;values&amp;nbsp;of&amp;nbsp;cells&amp;nbsp;are&amp;nbsp;unique.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;내 솔루션&lt;/h2&gt;
&lt;pre id=&quot;code_1669187862053&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * https://leetcode.com/problems/last-day-where-you-can-still-cross
 * @param {number} row - 전체 행의 수
 * @param {number} col - 전체 열의 수
 * @param {number[][]} cells - 매일 물에 잠기는 좌표 리스트 (1-based)
 * @return {number} - 건널 수 있는 마지막 날짜
 */
var latestDayToCross = function (row, col, cells) {
    let answerDay = 0;
    // 이진 탐색을 위한 범위 설정 (0일부터 마지막 날까지)
    let left = 0;
    let right = cells.length - 1;

    /**
     * 특정 날짜(day)에 위에서 아래로 건널 수 있는지 확인하는 함수 (BFS)
     */
    const canCross = (day) =&amp;gt; {
        // 1. 해당 날짜의 격자 상태 생성 (0: 땅, 1: 물)
        const grid = Array.from({ length: row }, () =&amp;gt; new Array(col).fill(0));
        
        // 2. 0일부터 day일까지의 cells를 바탕으로 격자에 물 채우기
        // i &amp;lt; day 이므로, day가 3이면 cells[0], [1], [2] (3일치)를 채움
        for (let i = 0; i &amp;lt; day; i++) {
            const [r, c] = cells[i];
            grid[r - 1][c - 1] = 1; // 1-based 좌표를 0-based 인덱스로 변환
        }

        // 3. BFS 탐색 준비
        const queue = [];
        const visited = Array.from({ length: row }, () =&amp;gt; new Array(col).fill(false));
        
        // 4. 시작 지점 설정: 맨 윗줄(row 0)에서 땅(0)인 곳을 모두 큐에 삽입
        for (let i = 0; i &amp;lt; col; i++) {
            if (grid[0][i] === 0) {
                queue.push([0, i]);
                visited[0][i] = true; // 중복 방문 방지
            }
        }

        // 5. 탐색 시작 (상하좌우 방향 설정)
        const direction = [[0, 1], [0, -1], [1, 0], [-1, 0]]; 
        
        while (queue.length &amp;gt; 0) {
            const [curR, curC] = queue.shift();
            
            // 목적지 도착: 맨 아랫줄(row - 1)에 도달하면 건너기 성공
            if (curR === row - 1) return true; 

            for (const [dirR, dirC] of direction) {
                const nextR = curR + dirR;
                const nextC = curC + dirC;
                
                // 격자 범위 내에 있고, 물이 아니며(0), 아직 방문하지 않은 경우만 이동
                if (nextR &amp;gt;= 0 &amp;amp;&amp;amp; nextC &amp;gt;= 0 &amp;amp;&amp;amp; nextR &amp;lt; row &amp;amp;&amp;amp; nextC &amp;lt; col &amp;amp;&amp;amp;
                    grid[nextR][nextC] === 0 &amp;amp;&amp;amp; !visited[nextR][nextC]) {
                    
                    visited[nextR][nextC] = true; // 방문 표시 (중요: nextR, nextC 사용)
                    queue.push([nextR, nextC]); // 다음 탐색 후보로 큐에 추가
                }
            }
        }

        // 모든 경로를 탐색했으나 아랫줄에 도달하지 못한 경우
        return false;
    }

    /**
     * 이진 탐색(Binary Search) 수행
     * 매일 BFS를 돌리면 느리기 때문에, '건널 수 있는 날'의 경계선을 Up/Down 게임처럼 탐색
     */
    while (left &amp;lt;= right) {
        // 중간 날짜(mid)를 선택
        const mid = Math.floor((left + right) / 2);
        
        if (canCross(mid)) {
            // 해당 날짜에 건널 수 있다면, 더 늦은 날짜가 가능한지 확인
            answerDay = mid; // 현재 날짜를 정답 후보로 저장
            left = mid + 1;  // 범위를 뒤쪽(더 큰 날짜)으로 좁힘
        } else {
            // 해당 날짜에 건널 수 없다면, 너무 많이 잠긴 것이므로 더 앞선 날짜 확인
            right = mid - 1; // 범위를 앞쪽(더 작은 날짜)으로 좁힘
        }
    }
    
    return answerDay;
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;감상평&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;처음엔 day 1 -&amp;gt; day end 까지 순회하려고 했는데, 너무 오래 걸릴 것 같아서 바이너리 서치로 변경&lt;/li&gt;
&lt;li&gt;BFS + 바이너리 서치 2가지 조합이 필요한 문제. 역시 Hard는 달라&lt;/li&gt;
&lt;li&gt;최적화는 못하겠다. 너무 힘듦.. 이거 1시간 짜리 코테에서 나오면 바로 맨붕인데 ㅋㅋㅋ&lt;/li&gt;
&lt;li&gt;최소 4시간 급 코테에서 1문제 정도 등장할 가능성이 있어보임..&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;660&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJVBMh/dJMcahQBi4e/bMoJxXk3JkUsxKb11mKbXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJVBMh/dJMcahQBi4e/bMoJxXk3JkUsxKb11mKbXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJVBMh/dJMcahQBi4e/bMoJxXk3JkUsxKb11mKbXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJVBMh%2FdJMcahQBi4e%2FbMoJxXk3JkUsxKb11mKbXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1262&quot; height=&quot;660&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;660&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>coding test/leetCode</category>
      <author>쭘봉</author>
      <guid isPermaLink="true">https://zzumbong.tistory.com/122</guid>
      <comments>https://zzumbong.tistory.com/122#entry122comment</comments>
      <pubDate>Wed, 31 Dec 2025 13:24:19 +0900</pubDate>
    </item>
    <item>
      <title>[leetCode/JS] 3074. Apple Redistribution into Boxes</title>
      <link>https://zzumbong.tistory.com/121</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;난이도 [ &lt;span style=&quot;background-color: #ffffff; color: #0a0a23;&quot;&gt; &lt;/span&gt; ] &lt;span style=&quot;color: #409d00;&quot;&gt;Easy&lt;/span&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 설명&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;You&amp;nbsp;are&amp;nbsp;given&amp;nbsp;an&amp;nbsp;array&amp;nbsp;apple&amp;nbsp;of&amp;nbsp;size&amp;nbsp;n&amp;nbsp;and&amp;nbsp;an&amp;nbsp;array&amp;nbsp;capacity&amp;nbsp;of&amp;nbsp;size&amp;nbsp;m.&amp;nbsp;There&amp;nbsp;are&amp;nbsp;n&amp;nbsp;packs&amp;nbsp;where&amp;nbsp;the&amp;nbsp;ith&amp;nbsp;pack&amp;nbsp;contains&amp;nbsp;apple[i]&amp;nbsp;apples.&amp;nbsp;There&amp;nbsp;are&amp;nbsp;m&amp;nbsp;boxes&amp;nbsp;as&amp;nbsp;well,&amp;nbsp;and&amp;nbsp;the&amp;nbsp;ith&amp;nbsp;box&amp;nbsp;has&amp;nbsp;a&amp;nbsp;capacity&amp;nbsp;of&amp;nbsp;capacity[i]&amp;nbsp;apples.&amp;nbsp;Return&amp;nbsp;the&amp;nbsp;minimum&amp;nbsp;number&amp;nbsp;of&amp;nbsp;boxes&amp;nbsp;you&amp;nbsp;need&amp;nbsp;to&amp;nbsp;select&amp;nbsp;to&amp;nbsp;redistribute&amp;nbsp;these&amp;nbsp;n&amp;nbsp;packs&amp;nbsp;of&amp;nbsp;apples&amp;nbsp;into&amp;nbsp;boxes.&amp;nbsp;Note&amp;nbsp;that,&amp;nbsp;apples&amp;nbsp;from&amp;nbsp;the&amp;nbsp;same&amp;nbsp;pack&amp;nbsp;can&amp;nbsp;be&amp;nbsp;distributed&amp;nbsp;into&amp;nbsp;different&amp;nbsp;boxes.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;당신에게는 크기가 n인 apple 배열과 크기가 m인 capacity 배열이 주어집니다.&lt;br /&gt;n개의 팩이 있으며, i번째 팩에는 apple[i]개의 사과가 들어있습니다. 또한 m개의 상자가 있으며, i번째 상자는 capacity[i]개의 사과를 담을 수 있는 용량을 가지고 있습니다.&lt;br /&gt;이 n팩의 사과들을 상자들에 다시 나누어 담기 위해 선택해야 하는 상자의 최소 개수를 반환하세요.&lt;br /&gt;단, 같은 팩에 들어있던 사과들이라도 서로 다른 상자에 나누어서 담을 수 있다는 점에 유의하세요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;어렵게 설명 되어있는데, 사과의 Array는 의미가 없음. 총 사과가 몇개고, 몇개의 상자(capacity)로 담을 수 있느냐가 문제.&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Example 1:&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input:&amp;nbsp;apple&amp;nbsp;=&amp;nbsp;[1,3,2],&amp;nbsp;capacity&amp;nbsp;=&amp;nbsp;[4,3,1,5,2]&lt;br /&gt;Output:&amp;nbsp;2&amp;nbsp;Explanation:&amp;nbsp;We&amp;nbsp;will&amp;nbsp;use&amp;nbsp;boxes&amp;nbsp;with&amp;nbsp;capacities&amp;nbsp;4&amp;nbsp;and&amp;nbsp;5.&amp;nbsp;&lt;br /&gt;It&amp;nbsp;is&amp;nbsp;possible&amp;nbsp;to&amp;nbsp;distribute&amp;nbsp;the&amp;nbsp;apples&amp;nbsp;as&amp;nbsp;the&amp;nbsp;total&amp;nbsp;capacity&amp;nbsp;is&amp;nbsp;greater&amp;nbsp;than&amp;nbsp;or&amp;nbsp;equal&amp;nbsp;to&amp;nbsp;the&amp;nbsp;total&amp;nbsp;number&amp;nbsp;of&amp;nbsp;apples.&amp;nbsp;&lt;/blockquote&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Example 2:&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Input: apple = [5,5,5], capacity = [2,4,2,7] &lt;br /&gt;Output: 4 Explanation: We will need to use all the boxes.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Constraints&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1&amp;nbsp;&amp;lt;=&amp;nbsp;n&amp;nbsp;==&amp;nbsp;apple.length&amp;nbsp;&amp;lt;=&amp;nbsp;50&amp;nbsp;&lt;/li&gt;
&lt;li&gt;1&amp;nbsp;&amp;lt;=&amp;nbsp;m&amp;nbsp;==&amp;nbsp;capacity.length&amp;nbsp;&amp;lt;=&amp;nbsp;50&amp;nbsp;&lt;/li&gt;
&lt;li&gt;1&amp;nbsp;&amp;lt;=&amp;nbsp;apple[i],&amp;nbsp;capacity[i]&amp;nbsp;&amp;lt;=&amp;nbsp;50&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The&amp;nbsp;input&amp;nbsp;is&amp;nbsp;generated&amp;nbsp;such&amp;nbsp;that&amp;nbsp;it's&amp;nbsp;possible&amp;nbsp;to&amp;nbsp;redistribute&amp;nbsp;packs&amp;nbsp;of&amp;nbsp;apples&amp;nbsp;into&amp;nbsp;boxes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 사과나 용량 배열은 숫자가 작구나를 파악하면 굿&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;내 솔루션&lt;/h2&gt;
&lt;pre id=&quot;code_1669187862053&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * https://leetcode.com/problems/apple-redistribution-into-boxes
 * @param {number[]} apple
 * @param {number[]} capacity
 * @return {number}
 */
 
// 처음 푼 문제
var minimumBoxes = function(apple, capacity) {
    const apples = apple.reduce((cur, acc) =&amp;gt; acc += cur, 0)
    let sum = 0;
    let answer = 0;
    const sorted = capacity.sort((a, b) =&amp;gt; b - a);
    
    for(let i = 0; i &amp;lt; sorted.length; i++){
        sum += sorted[i];
        if(sum &amp;gt;= apples) {
            answer = (i+1);
            break;
        }
    }
    return answer;
};


// While과 sum으로 더하는 방식이 빼는 방식으로 최적화
var minimumBoxes = function(apple, capacity) {
    let apples = apple.reduce((cur, acc) =&amp;gt; acc + cur, 0)
    capacity.sort((a, b) =&amp;gt; b - a);
    
    let idx = 0;
    while(apples &amp;gt; 0) {
        apples -= capacity[idx++]
    }
    return idx;
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;감상평&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코테에서 나오면 5분컷 내야하는 문제긴한데, 좀 더 걸림&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1696&quot; data-origin-height=&quot;968&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkcHMy/dJMcafeaQYW/ksqpv8QgNnwh24I0EgxY9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkcHMy/dJMcafeaQYW/ksqpv8QgNnwh24I0EgxY9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkcHMy/dJMcafeaQYW/ksqpv8QgNnwh24I0EgxY9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkcHMy%2FdJMcafeaQYW%2Fksqpv8QgNnwh24I0EgxY9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1696&quot; height=&quot;968&quot; data-origin-width=&quot;1696&quot; data-origin-height=&quot;968&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>coding test/leetCode</category>
      <author>쭘봉</author>
      <guid isPermaLink="true">https://zzumbong.tistory.com/121</guid>
      <comments>https://zzumbong.tistory.com/121#entry121comment</comments>
      <pubDate>Mon, 29 Dec 2025 16:39:40 +0900</pubDate>
    </item>
  </channel>
</rss>