{
    "componentChunkName": "component---src-templates-blog-template-js",
    "path": "/pg-42885/",
    "result": {"data":{"cur":{"id":"6680d9d5-8931-5969-a431-fc39c6deb510","html":"<h2 id=\"문제\" style=\"position:relative;\"><a href=\"#%EB%AC%B8%EC%A0%9C\" 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><a href=\"https://programmers.co.kr/learn/courses/30/lessons/42885\">https://programmers.co.kr/learn/courses/30/lessons/42885</a></p>\n<p>무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다.</p>\n<p>예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다.</p>\n<p>구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다.</p>\n<p>사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution 함수를 작성해주세요.</p>\n<hr>\n<h2 id=\"제한사항\" style=\"position:relative;\"><a href=\"#%EC%A0%9C%ED%95%9C%EC%82%AC%ED%95%AD\" 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<ul>\n<li>무인도에 갇힌 사람은 1명 이상 50,000명 이하입니다.</li>\n<li>각 사람의 몸무게는 40kg 이상 240kg 이하입니다.</li>\n<li>구명보트의 무게 제한은 40kg 이상 240kg 이하입니다.</li>\n<li>구명보트의 무게 제한은 항상 사람들의 몸무게 중 최댓값보다 크게 주어지므로 사람들을 구출할 수 없는 경우는 없습니다.</li>\n</ul>\n<hr>\n<h2 id=\"입출력-예\" style=\"position:relative;\"><a href=\"#%EC%9E%85%EC%B6%9C%EB%A0%A5-%EC%98%88\" 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<table>\n<thead>\n<tr>\n<th>people</th>\n<th>limit</th>\n<th>return</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>[70, 50, 80, 50]</td>\n<td>100</td>\n<td>3</td>\n</tr>\n<tr>\n<td>[70, 80, 50]</td>\n<td>100</td>\n<td>3</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2 id=\"-algorithm\" style=\"position:relative;\"><a href=\"#-algorithm\" aria-label=\" algorithm 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>🔍 Algorithm</h2>\n<p><strong>Greedy</strong></p>\n<h2 id=\"-logic\" style=\"position:relative;\"><a href=\"#-logic\" aria-label=\" logic 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>💻 Logic</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">solution</span><span class=\"token punctuation\">(</span>people<span class=\"token punctuation\">,</span> limit<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    answer<span class=\"token punctuation\">,</span> left<span class=\"token punctuation\">,</span> right <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>people<span class=\"token punctuation\">)</span><span class=\"token operator\">-</span><span class=\"token number\">1</span>\n    <span class=\"token comment\"># 오름차순 정렬</span>\n    people<span class=\"token punctuation\">.</span>sort<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># 전부 태울 때까지 반복</span>\n    <span class=\"token keyword\">while</span> left <span class=\"token operator\">&lt;=</span> right<span class=\"token punctuation\">:</span>\n        answer <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n        boat <span class=\"token operator\">=</span> people<span class=\"token punctuation\">[</span>right<span class=\"token punctuation\">]</span>\n        right <span class=\"token operator\">-=</span> <span class=\"token number\">1</span>\n        <span class=\"token comment\"># 전부 태운 경우</span>\n        <span class=\"token keyword\">if</span> left <span class=\"token operator\">></span> right <span class=\"token punctuation\">:</span> <span class=\"token keyword\">break</span>\n        <span class=\"token comment\"># 제일 가벼운 사람(left)도 같이 태울 수 있는 경우</span>\n        <span class=\"token keyword\">if</span> boat <span class=\"token operator\">+</span> people<span class=\"token punctuation\">[</span>left<span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;=</span> limit<span class=\"token punctuation\">:</span>\n            left <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n    <span class=\"token keyword\">return</span> answer</code></pre></div>\n<ul>\n<li><strong>오름차순 정렬</strong><br>\n제일 무게가 나가는 사람을 기준으로 확인하면서 배에 태우기 위해</li>\n<li><strong>전부 태울 때까지 반복</strong><br>\n남아있는 제일 가벼운 사람의 위치인 <code class=\"language-text\">left</code>가 남아있는 제일 무거운 사람의 위치인 <code class=\"language-text\">right</code>보다 커질 때까지 반복</li>\n<li><strong>전부 태운 경우</strong><br>\n남아있는 제일 가벼운 사람의 위치인 <code class=\"language-text\">left</code>가 남아있는 제일 무거운 사람의 위치인 <code class=\"language-text\">right</code>보다 커진 경우</li>\n<li><strong>제일 가벼운 사람도 같이 태울 수 있는 경우</strong><br>\n남아있는 제일 가벼운 사람의 위치는 <code class=\"language-text\">left</code><br>\n<code class=\"language-text\">left</code> 위치에 있는 사람을 더한 무게가 <code class=\"language-text\">limit</code> 이하인 경우에는 <code class=\"language-text\">left</code> <strong>+1</strong></li>\n</ul>\n<hr>\n<h2 id=\"-code\" style=\"position:relative;\"><a href=\"#-code\" aria-label=\" code 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>🧩 Code</h2>\n<details><summary>전체 코드 확인</summary>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">solution</span><span class=\"token punctuation\">(</span>people<span class=\"token punctuation\">,</span> limit<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    answer<span class=\"token punctuation\">,</span> left<span class=\"token punctuation\">,</span> right <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>people<span class=\"token punctuation\">)</span><span class=\"token operator\">-</span><span class=\"token number\">1</span>\n    <span class=\"token comment\"># 오름차순 정렬</span>\n    people<span class=\"token punctuation\">.</span>sort<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># 전부 태울 때까지 반복</span>\n    <span class=\"token keyword\">while</span> left <span class=\"token operator\">&lt;=</span> right<span class=\"token punctuation\">:</span>\n        answer <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n        boat <span class=\"token operator\">=</span> people<span class=\"token punctuation\">[</span>right<span class=\"token punctuation\">]</span>\n        right <span class=\"token operator\">-=</span> <span class=\"token number\">1</span>\n        <span class=\"token comment\"># 전부 태운 경우</span>\n        <span class=\"token keyword\">if</span> left <span class=\"token operator\">></span> right <span class=\"token punctuation\">:</span> <span class=\"token keyword\">break</span>\n        <span class=\"token comment\"># 제일 가벼운 사람(left)도 같이 태울 수 있는 경우</span>\n        <span class=\"token keyword\">if</span> boat <span class=\"token operator\">+</span> people<span class=\"token punctuation\">[</span>left<span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;=</span> limit<span class=\"token punctuation\">:</span>\n            left <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n    <span class=\"token keyword\">return</span> answer</code></pre></div>\n</details>\n<hr>\n<h2 id=\"-review\" style=\"position:relative;\"><a href=\"#-review\" aria-label=\" review 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>📝 Review</h2>\n<p>pop()을 이용해서 해결하는 방식으로 구현했는데 효율성 첫 번째 테스트케이스에서 시간초과가 났다,,<br>\n그래서 pop()을 사용하지 않고 해결할 수 있는 방법을 생각해서 다시 풀었다.<br>\n대표적인 그리디 문제인 동전 문제처럼 제일 무게가 많이 나가는 사람을 기준으로 생각해야 함.</p>\n<div class=\"table-of-contents\">\n<ul>\n<li><a href=\"#%EB%AC%B8%EC%A0%9C\">문제</a></li>\n<li><a href=\"#%EC%A0%9C%ED%95%9C%EC%82%AC%ED%95%AD\">제한사항</a></li>\n<li><a href=\"#%EC%9E%85%EC%B6%9C%EB%A0%A5-%EC%98%88\">입출력 예</a></li>\n<li><a href=\"#-algorithm\">🔍 Algorithm</a></li>\n<li><a href=\"#-logic\">💻 Logic</a></li>\n<li><a href=\"#-code\">🧩 Code</a></li>\n<li><a href=\"#-review\">📝 Review</a></li>\n</ul>\n</div>","excerpt":"문제 https://programmers.co.kr/learn/courses/30/lessons/42885 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다. 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제한사항 무인도에 갇힌 사람은 1명 이상 50,000명 이하입니다. 각 사람의 몸…","frontmatter":{"date":"April 01, 2022","title":"[Programmers] 42885번: 구명보트 (Python)","categories":"Algorithm","author":"JFe","emoji":"💻"},"fields":{"slug":"/pg-42885/"}},"next":{"id":"57cc0db1-d00d-5569-8e27-c59e6d545994","html":"<h2 id=\"문제\" style=\"position:relative;\"><a href=\"#%EB%AC%B8%EC%A0%9C\" 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><a href=\"https://programmers.co.kr/learn/courses/30/lessons/42883\">https://programmers.co.kr/learn/courses/30/lessons/42883</a></p>\n<p>어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다.</p>\n<p>예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다.</p>\n<p>문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요.</p>\n<hr>\n<h2 id=\"제한사항\" style=\"position:relative;\"><a href=\"#%EC%A0%9C%ED%95%9C%EC%82%AC%ED%95%AD\" 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<ul>\n<li>number는 1자리 이상, 1,000,000자리 이하인 숫자입니다.</li>\n<li>k는 1 이상 number의 자릿수 미만인 자연수입니다.</li>\n</ul>\n<hr>\n<h2 id=\"입출력-예\" style=\"position:relative;\"><a href=\"#%EC%9E%85%EC%B6%9C%EB%A0%A5-%EC%98%88\" 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<table>\n<thead>\n<tr>\n<th>number</th>\n<th>k</th>\n<th>return</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>“1924”</td>\n<td>2</td>\n<td>“94”</td>\n</tr>\n<tr>\n<td>“1231234”</td>\n<td>3</td>\n<td>“3234”</td>\n</tr>\n<tr>\n<td>“4177252841”</td>\n<td>4</td>\n<td>“775841”</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2 id=\"-algorithm\" style=\"position:relative;\"><a href=\"#-algorithm\" aria-label=\" algorithm 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>🔍 Algorithm</h2>\n<p><strong>Greedy</strong></p>\n<h2 id=\"-logic\" style=\"position:relative;\"><a href=\"#-logic\" aria-label=\" logic 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>💻 Logic</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">solution</span><span class=\"token punctuation\">(</span>number<span class=\"token punctuation\">,</span> k<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    answer<span class=\"token punctuation\">,</span> cnt <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span>\n    number <span class=\"token operator\">=</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span>number<span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># 숫자 추가하면서 제거할 숫자 확인</span>\n    <span class=\"token keyword\">for</span> n <span class=\"token keyword\">in</span> number<span class=\"token punctuation\">:</span>\n        <span class=\"token comment\"># index error 나지 않도록</span>\n        <span class=\"token keyword\">if</span> <span class=\"token number\">0</span> <span class=\"token operator\">&lt;</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>answer<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token comment\"># 맨 뒤 숫자가 현재 숫자 n보다 작으면 pop</span>\n            <span class=\"token keyword\">while</span> cnt <span class=\"token operator\">&lt;</span> k <span class=\"token keyword\">and</span> answer<span class=\"token punctuation\">[</span><span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;</span> n<span class=\"token punctuation\">:</span>\n                answer<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n                cnt <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n                <span class=\"token comment\"># index error 나지 않도록</span>\n                <span class=\"token keyword\">if</span> <span class=\"token number\">0</span> <span class=\"token operator\">==</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>answer<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> <span class=\"token keyword\">break</span>\n        <span class=\"token comment\"># 숫자 추가</span>\n        answer<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>n<span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># k개 숫자를 전부 제거하지 않은 경우</span>\n    <span class=\"token keyword\">if</span> cnt <span class=\"token operator\">!=</span> k<span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>k<span class=\"token operator\">-</span>cnt<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            answer<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    answer <span class=\"token operator\">=</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">.</span>join<span class=\"token punctuation\">(</span>answer<span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">return</span> answer</code></pre></div>\n<ul>\n<li><strong>숫자 추가하면서 제거할 숫자 확인</strong><br>\n숫자 하나씩 반복문을 돌면서 <strong>append</strong> 해주고, 제거할 숫자를 확인한 뒤 <strong>k</strong>개만큼 제거</li>\n<li><strong>맨 뒤 숫자가 현재 숫자 n보다 작으면 pop</strong><br>\n맨 뒤 숫자가 현재 숫자 <strong>n</strong>보다 작으면 맨 뒤 숫자 <strong>pop</strong>해주고 <code class=\"language-text\">cnt</code> <strong>+1</strong><br>\n<code class=\"language-text\">cnt</code>가 <strong>k</strong>개 될 때까지만 반복</li>\n<li><strong>k개 숫자를 전부 제거하지 않은 경우</strong><br>\n제거할 숫자가 남은 경우에는 숫자가 <strong>내림차순</strong>으로 정렬된 상태이기 때문에<br>\n남은 개수만큼 뒤에서부터 <strong>pop</strong>해서 제거</li>\n</ul>\n<hr>\n<h2 id=\"-code\" style=\"position:relative;\"><a href=\"#-code\" aria-label=\" code 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>🧩 Code</h2>\n<details><summary>전체 코드 확인</summary>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> sys\n<span class=\"token keyword\">def</span> <span class=\"token function\">solution</span><span class=\"token punctuation\">(</span>number<span class=\"token punctuation\">,</span> k<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    answer<span class=\"token punctuation\">,</span> cnt <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span>\n    number <span class=\"token operator\">=</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span>number<span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># 숫자 추가하면서 제거할 숫자 확인</span>\n    <span class=\"token keyword\">for</span> n <span class=\"token keyword\">in</span> number<span class=\"token punctuation\">:</span>\n        <span class=\"token comment\"># index error 나지 않도록</span>\n        <span class=\"token keyword\">if</span> <span class=\"token number\">0</span> <span class=\"token operator\">&lt;</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>answer<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token comment\"># 맨 뒤 숫자가 현재 숫자 n보다 작으면 pop</span>\n            <span class=\"token keyword\">while</span> cnt <span class=\"token operator\">&lt;</span> k <span class=\"token keyword\">and</span> answer<span class=\"token punctuation\">[</span><span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;</span> n<span class=\"token punctuation\">:</span>\n                answer<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n                cnt <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n                <span class=\"token comment\"># index error 나지 않도록</span>\n                <span class=\"token keyword\">if</span> <span class=\"token number\">0</span> <span class=\"token operator\">==</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>answer<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> <span class=\"token keyword\">break</span>\n        <span class=\"token comment\"># 숫자 추가</span>\n        answer<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>n<span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># k개 숫자를 전부 제거하지 않은 경우</span>\n    <span class=\"token keyword\">if</span> cnt <span class=\"token operator\">!=</span> k<span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>k<span class=\"token operator\">-</span>cnt<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            answer<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    answer <span class=\"token operator\">=</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">.</span>join<span class=\"token punctuation\">(</span>answer<span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">return</span> answer</code></pre></div>\n</details>\n<hr>\n<h2 id=\"-review\" style=\"position:relative;\"><a href=\"#-review\" aria-label=\" review 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>📝 Review</h2>\n<p>문제를 제대로 이해했다고 생각했는데 풀이를 잘못 생각하고 그걸로 계속 해결하려고 해서 시간이 걸렸다,,<br>\n문제에서 주는 입출력 예시 말고 다른 특이한 상황에 테스트케이스를 생각해내는 실력도 중요하니까 많이 해봐야겠다,,</p>\n<div class=\"table-of-contents\">\n<ul>\n<li><a href=\"#%EB%AC%B8%EC%A0%9C\">문제</a></li>\n<li><a href=\"#%EC%A0%9C%ED%95%9C%EC%82%AC%ED%95%AD\">제한사항</a></li>\n<li><a href=\"#%EC%9E%85%EC%B6%9C%EB%A0%A5-%EC%98%88\">입출력 예</a></li>\n<li><a href=\"#-algorithm\">🔍 Algorithm</a></li>\n<li><a href=\"#-logic\">💻 Logic</a></li>\n<li><a href=\"#-code\">🧩 Code</a></li>\n<li><a href=\"#-review\">📝 Review</a></li>\n</ul>\n</div>","frontmatter":{"date":"March 28, 2022","title":"[Programmers] 42883번: 큰 수 만들기 (Python)","categories":"Algorithm","author":"JFe","emoji":"💻"},"fields":{"slug":"/pg-42883/"}},"prev":{"id":"f5b461ae-e59d-5ffe-b13b-71f1e54f2e23","html":"<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 496px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 21.666666666666668%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAYAAACOXx+WAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAtElEQVQY06WPwYqCUABF/bz5ob4iEU1bCqJLJ5qBIchCw0U1vHCj6EIY0SkI3NaqfCd6v+CFuzlcDlwNKeHYwqqE/IJkXDQpJV/LHdPZD9/rUsHPxYIo2tB1HXme43keVVXRNA1JklDXtWoYhhRFQdu2pGlK3/dv4ZOP7T+Tk484z5XwcNirsa7rxHGM67pYloXjOIoFQYAQAt/3MQwD0zSxbZssy9CQA79/D27XEu6CYeTnFw99Hh5OIyXqAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"the-elastic-stack.png\"\n        title=\"the-elastic-stack.png\"\n        src=\"/static/a9db969eb67ca22f846adad0fbf99b15/bb630/the-elastic-stack.png\"\n        srcset=\"/static/a9db969eb67ca22f846adad0fbf99b15/e9ff0/the-elastic-stack.png 180w,\n/static/a9db969eb67ca22f846adad0fbf99b15/f21e7/the-elastic-stack.png 360w,\n/static/a9db969eb67ca22f846adad0fbf99b15/bb630/the-elastic-stack.png 496w\"\n        sizes=\"(max-width: 496px) 100vw, 496px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n<blockquote>\n<p><a href=\"https://www.elastic.co/\">Elastic 공식 페이지</a> 문서를 참고하여 작성하였습니다.</p>\n</blockquote>\n<h1 id=\"elastic-stack-\" style=\"position:relative;\"><a href=\"#elastic-stack-\" aria-label=\"elastic stack  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>Elastic Stack ??</h1>\n<p>모든 유형의 데이터를 실시간으로 검색, 분석 및 시각화할 수 있는 Elastic의 오픈소스 프로젝트들을 하나로 묶어서 <strong>Elastic Stack</strong>이라고 한다.<br>\n원래는 검색 및 분석 엔진인 <strong>Elasticsearch</strong>, 수집 파이프라인인 <strong>Logstash</strong>, 시각화 도구인 <strong>Kibana</strong>의 앞글자만 따서 <strong>ELK Stack</strong>이라고 불렀으나 파일 추적을 위한 <strong>Beats</strong>를 추가하면서 <strong>Elastic Stack</strong>으로 이름이 바뀌었다.</p>\n<p><a href=\"https://www.elastic.co/kr/what-is/elk-stack\">https://www.elastic.co/kr/what-is/elk-stack</a></p>\n<hr>\n<h1 id=\"elastic-stack-구조\" style=\"position:relative;\"><a href=\"#elastic-stack-%EA%B5%AC%EC%A1%B0\" aria-label=\"elastic stack 구조 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>Elastic Stack 구조</h1>\n<p><img src=\"/6bc245db3aed12d3419054acae53f980/elk-stack-elkb-diagram.svg\" alt=\"elk-stack-elkb-diagram.svg\"></p>\n<table>\n<thead>\n<tr>\n<th>SQL</th>\n<th>Elastic</th>\n<th>설명</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>column</td>\n<td>field</td>\n<td></td>\n</tr>\n<tr>\n<td>row</td>\n<td>document</td>\n<td></td>\n</tr>\n<tr>\n<td>table</td>\n<td>index</td>\n<td></td>\n</tr>\n<tr>\n<td>schema</td>\n<td>X</td>\n<td>SQL의 schema와 비슷한 기능을 따로 제공하지 X</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"1-beats\" style=\"position:relative;\"><a href=\"#1-beats\" aria-label=\"1 beats 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>1. Beats</h2>\n<p><strong>[경량 데이터 수집기]</strong><br>\n<strong>Beats</strong>는 단일 목적의 데이터 수집기 무료 오픈 소스 플랫폼으로 수백 수천 개의 장비와 시스템으로부터 Logstash나 Elasticsearch에 데이터를 전송한다.</p>\n<ul>\n<li>Filebeat - 로그 파일</li>\n<li>Metricbeat - 메트릭</li>\n<li>Packetbeat - 네트워크 데이터</li>\n<li>Winlogbeat - Windows 이벤트 로그</li>\n<li>Auditbeat - 감사 데이터</li>\n<li>Heartbeat - 가동 시간 모니터링</li>\n<li>Functionbeat - 서버를 사용하지 않는 수집기</li>\n</ul>\n<p>다음과 같이 데이터 유형에 따라 여러 종류의 수집기를 제공하고 있고, 자신의 데이터 수집 환경에 맞게 원하는 수집기를 선택하여 편리하게 데이터를 수집할 수 있다.</p>\n<h2 id=\"2-logstash\" style=\"position:relative;\"><a href=\"#2-logstash\" aria-label=\"2 logstash 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>2. Logstash</h2>\n<p><strong>[데이터 처리 파이프라인]</strong><br>\n무료 오픈 소스 서버의 데이터 처리 파이프라인인 Logstash는 다양한 소스에서 데이터를 수집하여 변환한 후 자주 사용하는 저장소로 전달한다.<br>\n<strong>Logstash</strong>는 입력/필터/출력 구조로 구성되어 있고, 모든 형태의 데이터를 수집해서 필터를 이용해 형식이나 복잡성에 관계없이 데이터를 동적으로 변환하고 원하는 곳으로 스태시를 선택하여 전송할 수 있다.<br>\n특히 필터에서는 <code class=\"language-text\">grok</code>을 이용해 비구조적 데이터에서 구조를 도출하여 IP 주소에서 위치 정보 좌표를 해독하고, 민감한 필드를 익명화하거나 제외시키며, 전반적인 처리를 손쉽게 할 수 있고, 플러그인을 이용해 원하는대로 파이프라인을 생성하고 구성할 수 있다.</p>\n<h2 id=\"3-elasticsearch\" style=\"position:relative;\"><a href=\"#3-elasticsearch\" aria-label=\"3 elasticsearch 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>3. Elasticsearch</h2>\n<p><strong>[검색 및 분석 엔진]</strong><br>\n<strong>Elasticsearch</strong>는 <code class=\"language-text\">Apache Lucene</code>을 기반으로 하는 분산형 <strong>RESTful</strong> 검색 및 분석 엔진이다.<br>\nElastic Stack의 중심으로, Elasticsearch는 빠른 검색, 정교하게 조정된 정확도, 강력한 분석을 위해 데이터를 중앙에 저장하고 정형 데이터, 비정형 데이터, 위치 정보, 메트릭 등 다양한 유형의 데이터를 사용자가 원하는 방식으로 검색하고 결합할 수 있도록 지원한다.</p>\n<h2 id=\"4-kibana\" style=\"position:relative;\"><a href=\"#4-kibana\" aria-label=\"4 kibana 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>4. Kibana</h2>\n<p><strong>[시각화 도구]</strong><br>\n<strong>Kibana</strong>는 Elasticsearch 데이터를 시각화하고 Elastic Stack을 탐색하게 해주는 무료 오픈 소스 인터페이스다.<br>\n히스토그램, 선 그래프, 원형 차트, 선버스트 등의 기본적인 요소로 구성되어 있고, 모든 문서에 걸쳐 검색이 가능하다.</p>\n<ul>\n<li><strong>위치 분석</strong><br>\n: <code class=\"language-text\">Elastic Maps</code>를 활용하여 위치 데이터를 탐색하거나 사용자 정의 레이어와 벡터 도형을 시각화할 수 있다.</li>\n<li><strong>시계열</strong><br>\n: <code class=\"language-text\">시계열 UI</code>를 통해 Elasticsearch 데이터에 대한 상세 시계열 분석을 할 수 있다.</li>\n<li><strong>머신러닝</strong><br>\n: 자율적인 <code class=\"language-text\">머신 러닝</code> 기능을 통해 Elasticsearch 데이터에 숨어 있는 이상 징후를 탐색하고 이에 영향을 미치는 근본 원인을 찾아낼 수 있다.</li>\n<li><strong>그래프와 네트워크</strong><br>\n: 검색 엔진의 연관성 기능과 <code class=\"language-text\">Graph 탐색</code>을 활용해 Elasticsearch 데이터에서 관계성을 발견할 수 있다.</li>\n</ul>\n<hr>\n<h2 id=\"-reference\" style=\"position:relative;\"><a href=\"#-reference\" aria-label=\" reference 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>📎 Reference</h2>\n<p><a href=\"https://www.elastic.co/kr/what-is/elk-stack\">https://www.elastic.co/kr/what-is/elk-stack</a><br>\n<a href=\"https://www.elastic.co/guide/en/elasticsearch/reference/8.1/_mapping_concepts_across_sql_and_elasticsearch.html#\">https://www.elastic.co/guide/en/elasticsearch/reference/8.1/_mapping_concepts_across_sql_and_elasticsearch.html#</a><br>\n<a href=\"https://www.elastic.co/static-res/images/elk/elk-stack-elkb-diagram.svg\">https://www.elastic.co/static-res/images/elk/elk-stack-elkb-diagram.svg</a></p>\n<div class=\"table-of-contents\">\n<ul>\n<li><a href=\"#1-beats\">1. Beats</a></li>\n<li><a href=\"#2-logstash\">2. Logstash</a></li>\n<li><a href=\"#3-elasticsearch\">3. Elasticsearch</a></li>\n<li><a href=\"#4-kibana\">4. Kibana</a></li>\n<li><a href=\"#-reference\">📎 Reference</a></li>\n</ul>\n</div>","frontmatter":{"date":"April 06, 2022","title":"[Elastic] Elastic Stack(ELK Stack) 소개","categories":"Database","author":"JFe","emoji":"📚"},"fields":{"slug":"/elastic-intro/"}},"site":{"siteMetadata":{"siteUrl":"https://jfelog.netlify.app","comments":{"utterances":{"repo":"Go-Jaecheol/Jfe_Blog"}}}}},"pageContext":{"slug":"/pg-42885/","nextSlug":"/pg-42883/","prevSlug":"/elastic-intro/"}},
    "staticQueryHashes": ["1073350324","1956554647","2938748437"]}