{"componentChunkName":"component---src-templates-blog-post-js","path":"/algorithm/leetcode/742/","result":{"data":{"site":{"siteMetadata":{"title":"Zayden","author":"[Your Name]","siteUrl":"https://gatsby-starter-bee.netlify.com","comment":{"disqusShortName":"","utterances":"JaeYeopHan/gatsby-starter-bee"},"sponsor":{"buyMeACoffeeId":"jbee"}}},"markdownRemark":{"id":"59f6c373-bc88-5473-9b7c-ab25b6c9bf8d","excerpt":"문제 설명 정수 배열이 주어지면 이 배열의 피벗 인덱스를 계산합니다. 피벗 인덱스는 인덱스의 왼쪽에 있는 모든 숫자의 합이 인덱스의 오른쪽에 있는 모든 숫자의 합과 같은 인덱스입니다. 인덱스가 배열의 왼쪽 가장자리에 있으면 왼쪽에 요소가 없으므로 왼쪽 합계는 0입니다. 이는 배열의 오른쪽 가장자리에도 적용됩니다. 가장 왼쪽 피벗 인덱스를 반환합니다. 그러한 인덱스가 존재하지 않으면 -1을 반환합니다. 예시 1 예시2 예시…","html":"<h2 id=\"문제-설명\" style=\"position:relative;\"><a href=\"#%EB%AC%B8%EC%A0%9C-%EC%84%A4%EB%AA%85\" aria-label=\"문제 설명 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>문제 설명</h2>\n<p>정수 배열이 주어지면 이 배열의 피벗 인덱스를 계산합니다.</p>\n<p>피벗 인덱스는 인덱스의 왼쪽에 있는 모든 숫자의 합이 인덱스의 오른쪽에 있는 모든 숫자의 합과 같은 인덱스입니다.</p>\n<p>인덱스가 배열의 왼쪽 가장자리에 있으면 왼쪽에 요소가 없으므로 왼쪽 합계는 0입니다. 이는 배열의 오른쪽 가장자리에도 적용됩니다.</p>\n<p>가장 왼쪽 피벗 인덱스를 반환합니다. 그러한 인덱스가 존재하지 않으면 -1을 반환합니다.</p>\n<ul>\n<li>예시 1</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\">Input<span class=\"token operator\">:</span> nums <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span><span class=\"token number\">7</span><span class=\"token punctuation\">,</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span><span class=\"token number\">6</span><span class=\"token punctuation\">,</span><span class=\"token number\">5</span><span class=\"token punctuation\">,</span><span class=\"token number\">6</span><span class=\"token punctuation\">]</span>\nOutput<span class=\"token operator\">:</span> <span class=\"token number\">3</span>\nExplanation<span class=\"token operator\">:</span>\nThe pivot index is <span class=\"token number\">3.</span>\nLeft sum <span class=\"token operator\">=</span> nums<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> nums<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> nums<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span> <span class=\"token operator\">+</span> <span class=\"token number\">7</span> <span class=\"token operator\">+</span> <span class=\"token number\">3</span> <span class=\"token operator\">=</span> <span class=\"token number\">11</span>\nRight sum <span class=\"token operator\">=</span> nums<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> nums<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">5</span> <span class=\"token operator\">+</span> <span class=\"token number\">6</span> <span class=\"token operator\">=</span> <span class=\"token number\">11</span></code></pre></div>\n<ul>\n<li>예시2</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">Input: nums = [1,2,3]\nOutput: -1\nExplanation:\nThere is no index that satisfies the conditions in the problem statement.</code></pre></div>\n<ul>\n<li>예시3</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">Input: nums = [2,1,-1]\nOutput: 0\nExplanation:\nThe pivot index is 0.\nLeft sum = 0 (no elements to the left of index 0)\nRight sum = nums[1] + nums[2] = 1 + -1 = 0</code></pre></div>\n<p>제약 조건:</p>\n<ul>\n<li><code class=\"language-text\">1 &lt;= nums.length &lt;= 104</code></li>\n<li><code class=\"language-text\">-1000 &lt;= nums[i] &lt;= 1000</code></li>\n</ul>\n<h2 id=\"문제-접근\" style=\"position:relative;\"><a href=\"#%EB%AC%B8%EC%A0%9C-%EC%A0%91%EA%B7%BC\" aria-label=\"문제 접근 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>문제 접근</h2>\n<p><em>왼쪽 합, 오른쪽 합 변수를 각각 선언하여 배열을 순회하면서 왼쪽에 하나씩 더하고, 오른쪽에는 하나씩 빼서 왼쪽 합 그리고 오른쪽 합을 비교한다.</em></p>\n<ol>\n<li>left(왼쪽 합), right(오른쪽 합) 선언</li>\n<li>배열을 순회하면서 왼쪽에는 숫자 더하기, 오른쪽에는 숫자 빼기 진행</li>\n<li>왼쪽 합과 오른쪽 합을 비교</li>\n</ol>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">function</span> <span class=\"token function\">solution</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">nums</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>nums<span class=\"token punctuation\">.</span>length <span class=\"token operator\">===</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">let</span> left <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n  <span class=\"token keyword\">let</span> right <span class=\"token operator\">=</span> nums<span class=\"token punctuation\">.</span><span class=\"token function\">slice</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">reduce</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">acc<span class=\"token punctuation\">,</span> value</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> acc <span class=\"token operator\">+</span> value<span class=\"token punctuation\">)</span>\n\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>left <span class=\"token operator\">===</span> right<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token number\">0</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> i <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> nums<span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    left <span class=\"token operator\">+=</span> nums<span class=\"token punctuation\">[</span>i <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\n    right <span class=\"token operator\">-=</span> nums<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span>\n\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>left <span class=\"token operator\">===</span> right<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">return</span> i\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span>\n<span class=\"token punctuation\">}</span></code></pre></div>","frontmatter":{"title":"leetcode - Find Pivot Index","date":"July 27, 2023"}}},"pageContext":{"slug":"/algorithm/leetcode/742/","previous":{"fields":{"slug":"/frontendPerformance/animationOptimization/"},"frontmatter":{"title":"애니메이션 최적화"}},"next":{"fields":{"slug":"/algorithm/programmers/skillTree/"},"frontmatter":{"title":"Programmers - 스킬 트리"}}}}}