<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>기록되지 않은 것은 기억되지 않는다.</title>
    <link>https://0x15.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 12 Aug 2026 13:23:02 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>파카산</managingEditor>
    <image>
      <title>기록되지 않은 것은 기억되지 않는다.</title>
      <url>https://tistory1.daumcdn.net/tistory/4600143/attach/ed3514d9a6964c1ea08314b4cca8c782</url>
      <link>https://0x15.tistory.com</link>
    </image>
    <item>
      <title>2021 상반기 현대오토에버 신입공채 1차 면접 &amp;amp; 2차 면접 후기</title>
      <link>https://0x15.tistory.com/68</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt; 2021 상반기 현대오토에버 신입공채 1차 면접 후기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접관 3 : 지원자 1 / 다대일 면접&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  웹엑스 화상 면접&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  약 30분간 진행&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접 후기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이력서 위주의 질문이 많이 들어왔습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그 밖에,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;전장 sw 플랫폼 개발 직무가 어떤건지?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원치 않는 직무를 배정받으면 어떻게 할건지?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;플랫폼의 정의가 무엇이라고 생각하는지? ... 등등&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접결과 : 합격&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt; 2021&amp;nbsp;상반기 현대오토에버 신입공채 2차 면접 후기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접관 3 : 지원자 4 / 다대다 면접&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  웹엑스 화상 면접&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  약 50분간 진행&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접 후기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;공통 질문을 던져주고 순서를 정해주셨고, 순서대로 답변.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;MZ세대의 정의와 자신이 MZ세대와 부합하는 공통점이 무엇인지?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;자신을 꼭 뽑아야하는 이유가 무엇인지?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;플랫폼의 정의가 무엇인지? (1차와 동일한 질문이 들어옴)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Java를 많이 써봤다고 했는데 전장sw플랫폼 직무에 지원한 이유가 무엇인지? -&amp;gt; 우대사항에 있어서 지원했다고 하였음.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;다른 지원자가 솔직하지 못한 모습을 보이자, 솔직하게 답변해달라고 하셨음.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접결과 : 합격&lt;/span&gt;&lt;/p&gt;</description>
      <category> /취준</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/68</guid>
      <comments>https://0x15.tistory.com/68#entry68comment</comments>
      <pubDate>Mon, 19 Jul 2021 15:12:41 +0900</pubDate>
    </item>
    <item>
      <title>2021 LG CNS 클라우드 2차 면접 후기</title>
      <link>https://0x15.tistory.com/67</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt; 2021 LG CNS 클라우드 2차 면접 후기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접관 1 : 지원자 1 / 일대일 면접&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  스카이프 화상 면접&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  약 10분간 진행&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접 후기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1분 자기소개 후 이력서, 자소서 기반의 질문을 하셨습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이 후 기술적인 질문 보다는 인성 질문 위주로 무난한 질문들만 들어왔습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;지원한 직무가 어떤 직무인지 ? 정도 물어보셨습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;마지막 할말, 궁금한 점을 물어보시고 면접이 빨리 끝났습니다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접결과 : 합격&lt;/span&gt;&lt;/p&gt;</description>
      <category> /취준</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/67</guid>
      <comments>https://0x15.tistory.com/67#entry67comment</comments>
      <pubDate>Mon, 19 Jul 2021 14:50:56 +0900</pubDate>
    </item>
    <item>
      <title>[OS] 프로세스와 스레드 (Process, Thread)</title>
      <link>https://0x15.tistory.com/64</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; 프로세스 &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 메모리에 올라와서 실행되고 있는 프로그램의 인스턴스&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 프로세서에 의해 동작하고 있는 프로그램&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 스레드 단위 작업을 지원하기 위한 자원 할당의 단위&lt;/span&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;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; 프로세스의 구조&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Stack : 호출된 함수, 지역 변수 등 임시 데이터&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Heap : 동적으로 생긴 데이터 (객체..)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Data : 전역변수 (static, global)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Code : 프로그램의 코드&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;여러개의 프로세스로 하나의 작업을 구성할 수 있음 -&amp;gt; &lt;b&gt;멀티 프로세스&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;각 프로세스가 따로 Stack, heap, data, code를 가지고 있기 때문에 비효율이 발생한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;(Context Switching을 할 때에, 비효율이 발생함)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;다른 프로세스의 정보를 이용하기 위해 통신이 필요하다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이러한 비효율을 없애기 위해 나온것이 스레드이다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  &lt;b&gt;스레드&lt;/b&gt; : 프로세스 내에서 실행되는 작업 흐름의 단위&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; &lt;b&gt; 스레드의 구조&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;하나의 프로세스 안에서 Code, Data, Heap 영역을 공유한다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; &lt;b&gt; 멀티 프로세스 vs 멀티 스레드&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Code, Data, Heap 영역을 공유하는 멀티 스레드가 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;컨텍스트 스위칭 비용이 더 적게 들기 때문에 효율적이다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  &lt;b&gt;멀티 스레드 주의점&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;디버깅이 까다로움&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;한 프로세스 안의 스레드에 문제 발생 -&amp;gt; 같은 프로세스 안의 스레드도 같이 문제가 생김&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;같은 데이터를 공유하므로, 데이터 동기화에 항상 신경 써야한다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  &lt;b&gt;결론&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;자원은 프로세스 단위로 받고,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;작업/스케줄링은 스레드 단위로 진행한다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Computer Science/OS</category>
      <category>OS</category>
      <category>Process</category>
      <category>thread</category>
      <category>멀티스레드</category>
      <category>멀티프로세스</category>
      <category>스레드</category>
      <category>운영체제</category>
      <category>프로세스</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/64</guid>
      <comments>https://0x15.tistory.com/64#entry64comment</comments>
      <pubDate>Tue, 15 Jun 2021 21:13:40 +0900</pubDate>
    </item>
    <item>
      <title>2021 LG CNS 클라우드 1차 면접 후기</title>
      <link>https://0x15.tistory.com/62</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; 2021&amp;nbsp;LG&amp;nbsp;CNS&amp;nbsp;클라우드&amp;nbsp;1차&amp;nbsp;면접&amp;nbsp;후기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접관 3 : 지원자 2 / 다대다 면접&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  스카이프 화상 면접&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  약 30분간 진행&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접 후기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;대부분 인성 위주의 질문이었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;구글링이나 취업 사이트를 찾아보면 나왔던 질문들 위주로 나와서,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;다 예상 질문 안에서 나온 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;CS 관련 질문은 없었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;클라우드 직무지만 클라우드에 대한 질문은 없었고,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;제가 AWS 자격증을 취득한 것과, 직무에 대해 이해한 내용을 스스로 어필했습니다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  면접결과 : 합격&lt;/span&gt;&lt;/p&gt;</description>
      <category> /취준</category>
      <category>lgcns1차면접</category>
      <category>LGCNS면접</category>
      <category>lgcns면접후기</category>
      <category>lgcns클라우드면접</category>
      <category>lgcns클라우드면접후기</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/62</guid>
      <comments>https://0x15.tistory.com/62#entry62comment</comments>
      <pubDate>Mon, 14 Jun 2021 20:34:45 +0900</pubDate>
    </item>
    <item>
      <title>2021 상반기 현대오토에버 신입공채 코딩테스트 합격</title>
      <link>https://0x15.tistory.com/59</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;673&quot; width=&quot;577&quot; height=&quot;576&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vg6eu/btq6z4CLazb/lBB1t13EfU2eSI6ygHKNKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vg6eu/btq6z4CLazb/lBB1t13EfU2eSI6ygHKNKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vg6eu/btq6z4CLazb/lBB1t13EfU2eSI6ygHKNKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvg6eu%2Fbtq6z4CLazb%2FlBB1t13EfU2eSI6ygHKNKK%2Fimg.png&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;673&quot; width=&quot;577&quot; height=&quot;576&quot; data-ke-mobilestyle=&quot;widthOrigin&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;3문제 중에 애매한 2솔을 해서 떨어질줄 알았는데,, 덜컥 붙었다!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;아무래도 인성검사도 많이 당락에 영향을 준 것같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1솔합 2솔탈도 있었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;삼성역에 있어서 너무너무 가고싶다......!!! ㅎㅇㅌ&lt;/span&gt;&lt;/p&gt;</description>
      <category> /취준</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/59</guid>
      <comments>https://0x15.tistory.com/59#entry59comment</comments>
      <pubDate>Fri, 4 Jun 2021 21:33:45 +0900</pubDate>
    </item>
    <item>
      <title>AWS Cloud Practitioner Essentials 무료 강의 + 자격증 따는법</title>
      <link>https://0x15.tistory.com/57</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;a href=&quot;https://www.aws.training/Details/eLearning?id=68459&quot;&gt;https://www.aws.training/Details/eLearning?id=68459&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1622535989060&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;AWS training and certification&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.aws.training&quot; data-og-source-url=&quot;https://www.aws.training/Details/eLearning?id=68459&quot; data-og-url=&quot;https://www.aws.training/Details/eLearning?id=68459&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.aws.training/Details/eLearning?id=68459&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.aws.training/Details/eLearning?id=68459&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;AWS training and certification&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.aws.training&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;CNS 면접준비를 하면서, 클라우드에 관심이 생겼고 자격증에도 욕심이 생겼다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;AWS에서 무료로 강의를 제공해준다. 한번 열심히 들어보잣&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;a href=&quot;https://mlmlml.tistory.com/6&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mlmlml.tistory.com/6&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1622537530082&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;AWS Cloud Practitioner 시험 준비부터 합격까지 (+문제 자료)&quot; data-og-description=&quot;2020년 1월 중순 AWS Cloud Practitioner 자격증을 땄다. https://www.certmetrics.com/amazon/public/badge.aspx?i=9&amp;amp;t=c&amp;amp;d=2020-01-20&amp;amp;ci=AWS01044548 AWS Certified Cloud Practitioner The AWS Cloud Practiti..&quot; data-og-host=&quot;mlmlml.tistory.com&quot; data-og-source-url=&quot;https://mlmlml.tistory.com/6&quot; data-og-url=&quot;https://mlmlml.tistory.com/6&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/AvQCQ/hyKo2zum2W/HcZNkttaqj1kKt14lUJMuK/img.png?width=800&amp;amp;height=214&amp;amp;face=0_0_800_214,https://scrap.kakaocdn.net/dn/bbPeY7/hyKoPz7V0M/RqSKekCLKL6IIRqQlOtr2k/img.png?width=800&amp;amp;height=214&amp;amp;face=0_0_800_214,https://scrap.kakaocdn.net/dn/rRaHO/hyKqJ56xBs/lH3RxWOgr1joeKHU6urGwk/img.png?width=2006&amp;amp;height=539&amp;amp;face=0_0_2006_539&quot;&gt;&lt;a href=&quot;https://mlmlml.tistory.com/6&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mlmlml.tistory.com/6&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/AvQCQ/hyKo2zum2W/HcZNkttaqj1kKt14lUJMuK/img.png?width=800&amp;amp;height=214&amp;amp;face=0_0_800_214,https://scrap.kakaocdn.net/dn/bbPeY7/hyKoPz7V0M/RqSKekCLKL6IIRqQlOtr2k/img.png?width=800&amp;amp;height=214&amp;amp;face=0_0_800_214,https://scrap.kakaocdn.net/dn/rRaHO/hyKqJ56xBs/lH3RxWOgr1joeKHU6urGwk/img.png?width=2006&amp;amp;height=539&amp;amp;face=0_0_2006_539');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;AWS Cloud Practitioner 시험 준비부터 합격까지 (+문제 자료)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;2020년 1월 중순 AWS Cloud Practitioner 자격증을 땄다. https://www.certmetrics.com/amazon/public/badge.aspx?i=9&amp;amp;t=c&amp;amp;d=2020-01-20&amp;amp;ci=AWS01044548 AWS Certified Cloud Practitioner The AWS Cloud Practiti..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mlmlml.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;와.. 이분은 정리가 진짜 대박이다... 너무 잘해놓으셔서 매우 감사..&lt;/span&gt;&lt;/p&gt;</description>
      <category>Web/AWS</category>
      <category>AWS</category>
      <category>aws강의</category>
      <category>AWS자격증</category>
      <category>클라우드강의</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/57</guid>
      <comments>https://0x15.tistory.com/57#entry57comment</comments>
      <pubDate>Tue, 1 Jun 2021 17:27:13 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 위상 정렬 알고리즘 (Topology sort)</title>
      <link>https://0x15.tistory.com/56</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위상 정렬은 정렬 알고리즘의 일종으로,&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;방향 그래프의 모든 노드를 '&lt;u&gt;&lt;b&gt;방향성에 거스르지 않도록 순서대로 나열하는 것&lt;/b&gt;&lt;/u&gt;' 이다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위상 정렬을 위해서는 먼저 &lt;b&gt;진입차수 (Indegree)&lt;/b&gt; 를 알아야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;진입차수란 특정한 노드로 들어오는 간선의 개수를 의미한다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위상 정렬 과정&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[1]&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; 진입차수가 0인 노드를 큐에 넣는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;[2]&lt;/b&gt; 큐가 빌 때까지 다음의 과정을 반복한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;nbsp;I. 큐에서 원소를 꺼내 해당 노드에서 출발하는 간선을 그래프에서 제거한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; II. 새롭게 진입차수가 0이 된 노드를 큐에 넣는다.&lt;/span&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;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위상 정렬 코드&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622306914540&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from collections import deque

# 노드의 개수와 간선의 개수를 입력 받기
v, e = map(int, input().split())
# 모든 노드에 대한 진입차수는 0으로 초기화
indegree = [0] * (v + 1)
# 각 노드에 연결된 간선 정보를 담기 위한 연결 리스트 초기화
graph = [[] for i in range(v + 1)]

# 방향 그래프의 모든 간선 정보를 입력 받기
for _ in range(e):
    a, b = map(int, input().split())
    graph[a].append(b) # 정점 A에서 B로 이동 가능
    # 진입 차수를 1 증가
    indegree[b] += 1

# 위상 정렬 함수
def topology_sort():
    result = [] # 알고리즘 수행 결과를 담을 리스트
    q = deque() # 큐 기능을 위한 deque 라이브러리 사용

    # 처음 시작할 때는 진입차수가 0인 노드를 큐에 삽입
    for i in range(1, v + 1):
        if indegree[i] == 0:
            q.append(i)

    # 큐가 빌 때까지 반복
    while q:
        # 큐에서 원소 꺼내기
        now = q.popleft()
        result.append(now)
        # 해당 원소와 연결된 노드들의 진입차수에서 1 빼기
        for i in graph[now]:
            indegree[i] -= 1
            # 새롭게 진입차수가 0이 되는 노드를 큐에 삽입
            if indegree[i] == 0:
                q.append(i)

    # 위상 정렬을 수행한 결과 출력
    for i in result:
        print(i, end=' ')

topology_sort()

# input
# 7 8
# 1 2
# 1 5
# 2 3
# 2 6
# 3 4
# 4 7
# 5 6
# 6 4
#
# output
# 1 2 5 3 6 4 7&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR'; color: #0593d3;&quot;&gt;&lt;b&gt;본 게시글은 나동빈 저자의 &quot;이것이 코딩테스트다 with 파이썬&quot; 책 내용을 정리한 것입니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm | SQL/개념</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/56</guid>
      <comments>https://0x15.tistory.com/56#entry56comment</comments>
      <pubDate>Sun, 30 May 2021 01:51:29 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers | Level 3 | SQL] 헤비 유저가 소유한 장소</title>
      <link>https://0x15.tistory.com/55</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/77487&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/77487&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1622302246026&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 헤비 유저가 소유한 장소&quot; data-og-description=&quot;PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 &quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/77487&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/77487&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bHrMqT/hyKniIgtfH/tRRPyhGl1lIYo0ylqKJ5E1/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bBKYw4/hyKnsYpvsH/uERazRVIKJI7WEVcWaZ8zk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/77487&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/77487&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bHrMqT/hyKniIgtfH/tRRPyhGl1lIYo0ylqKJ5E1/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bBKYw4/hyKnsYpvsH/uERazRVIKJI7WEVcWaZ8zk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 헤비 유저가 소유한 장소&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1622302255921&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT A.ID, A.NAME, A.HOST_ID
FROM PLACES A
JOIN 
(SELECT HOST_ID
 FROM PLACES
 GROUP BY HOST_ID
 HAVING COUNT(HOST_ID) &amp;gt;= 2
) B
ON A.HOST_ID = B.HOST_ID
ORDER BY A.ID&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;서브 쿼리를 사용하여 HOST_ID가 두번 이상 나온 것만 체크하여 서브 테이블을 만들고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;inner join을 이용하여 이 테이블과 조인하였다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;다른 방법도 찾아보면 많이 있는 것 같다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Algorithm | SQL/Programmers</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/55</guid>
      <comments>https://0x15.tistory.com/55#entry55comment</comments>
      <pubDate>Sun, 30 May 2021 00:32:25 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers | Level 3] 단속카메라 (Python)</title>
      <link>https://0x15.tistory.com/53</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42884&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/42884&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1622208103004&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 단속카메라&quot; data-og-description=&quot;[[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/42884&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/42884&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qOlem/hyKnhaA2wG/3aOQZbHQ1BGzomdsrpbygK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bjkkAG/hyKno8Dmqw/Fh0gTu4BbsTL01k97wLiY0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42884&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/42884&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qOlem/hyKnhaA2wG/3aOQZbHQ1BGzomdsrpbygK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bjkkAG/hyKno8Dmqw/Fh0gTu4BbsTL01k97wLiY0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 단속카메라&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1622208119934&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(routes):
    ans = 0
    routes.sort(key=lambda x: x[1])
    cam = -30001

    for route in routes:
        if cam &amp;lt; route[0]:
            cam = route[1]
            ans += 1
    return ans&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그리디 알고리즘을 활용한 문제.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;진출 시점으로 정렬하는 것은 생각해 냈는데,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그다음에 어떻게 카메라를 카운팅 할지 한참 고민했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;-30001로 카메라 초기 위치를 주고, 진출 시점으로 계속 카메라를 세워주면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;다시 볼 가치가 있는 문제!&lt;/span&gt;&lt;/p&gt;</description>
      <category>Algorithm | SQL/Programmers</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/53</guid>
      <comments>https://0x15.tistory.com/53#entry53comment</comments>
      <pubDate>Fri, 28 May 2021 22:23:49 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers | Level 2] 타겟 넘버 (Python)</title>
      <link>https://0x15.tistory.com/52</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43165&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/43165&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1622203384615&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 타겟 넘버&quot; data-og-description=&quot;n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43165&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43165&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cmpDW1/hyKnuub3GF/sX4Sezsdk6zx828z4VWDGK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bS5gUO/hyKnigdkG6/XINofvtuIi4NWZfiNsTE4K/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43165&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43165&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cmpDW1/hyKnuub3GF/sX4Sezsdk6zx828z4VWDGK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bS5gUO/hyKnigdkG6/XINofvtuIi4NWZfiNsTE4K/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 타겟 넘버&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1622203378765&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ans = 0
def solution(numbers, target):
    dfs(0, numbers, target, 0)
    return ans
    
def dfs(s, num, tgt, depth):
    global ans
    if depth == len(num):
        if s == tgt:
            ans += 1
        return
    dfs(s+num[depth], num, tgt, depth+1)
    dfs(s-num[depth], num, tgt, depth+1)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;일주일간 플젝 하느라 떨어진 감을 찾기 위해 다시 쉬운것부터 풀어보는 중이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;DFS로 풀었고, 재귀함수를 이용했다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622203456469&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from collections import deque

def solution(numbers, target):
    answer = 0
    q = deque([(0, 0)])
    while q:
        sum, i = q.popleft()
        if i == len(numbers):
            if sum == target:
                answer += 1
        else:
            number = numbers[i]
            q.append((sum + number, i + 1))
            q.append((sum - number, i + 1))

    return answer&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이렇게 BFS로도 해결할 수 있다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Algorithm | SQL/Programmers</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/52</guid>
      <comments>https://0x15.tistory.com/52#entry52comment</comments>
      <pubDate>Fri, 28 May 2021 21:04:39 +0900</pubDate>
    </item>
    <item>
      <title>2021 LG CNS 7월 입사 코딩테스트 후기</title>
      <link>https://0x15.tistory.com/51</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt; 문항수 : 4문항&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt; 제한시간 : 3시간 30분&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt; 난이도 : ⭐⭐&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr style=&quot;box-sizing: content-box; height: 20px; border: none; font-size: 0px; line-height: 0; margin: 20px auto; background: url('https://t1.daumcdn.net/keditor/dist/0.4.0/image/divider-line.svg') 0px -140px / 200px 200px #ffffff; cursor: pointer !important; color: #555555; font-family: 'Malgun Gothic', '맑은 고딕', 굴림, gulim, 돋움, dotum, 'Microsoft NeoGothic', 'Droid sans', sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.5px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[1번]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;&quot;&gt;단순 계산 문제. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;&quot;&gt;3분만에 풀었는데, 혹시 실수했을까봐 여러번 보았다.&lt;/span&gt;&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[2번]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;정렬, 구현 문제.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2~30분 걸렸음.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;딕셔너리와 set을 활용하여 시간복잡도 개선하였다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[3번]&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;조합, 부분집합 문제&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2~30분 걸렸음.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;파이썬 set, combinations 로 간결하게 해결하였다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[4번]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;유니온파인드 or BFS 문제&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;가장 고난이도 문제&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1시간 넘게 걸렸음.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;주어진 데이터 길이가 10억이여서 O(n) 이하로 풀어내야 했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그래서 딕셔너리를 사용한 BFS로 풀었다.&lt;/span&gt;&lt;/p&gt;
&lt;hr style=&quot;box-sizing: content-box; height: 20px; border: none; font-size: 0px; line-height: 0; margin: 20px auto; background: url('https://t1.daumcdn.net/keditor/dist/0.4.0/image/divider-line.svg') 0px -140px / 200px 200px #ffffff; cursor: pointer !important; color: #555555; font-family: 'Malgun Gothic', '맑은 고딕', 굴림, gulim, 돋움, dotum, 'Microsoft NeoGothic', 'Droid sans', sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.5px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt; 시험결과: 4솔 / 합격 (예상 커트라인 4솔)&amp;nbsp;&lt;/b&gt;&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt; 총평&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;전반적으로 쉬운 난이도의 코딩테스트였다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;하지만 시간복잡도를 고려하지 못하면 히든 테케에서 많이 틀릴 수 있는 시험이었다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;b&gt;프로그래머스 고득점 Kit와 2~3 레벨 문제들을 많이 푼 것이 도움되었다.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;b&gt;그리고 파이썬 딕셔너리, set을 많이 연습했는데 도움이 된 것 같다.&lt;/b&gt;&lt;/span&gt;&lt;/span&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;</description>
      <category> /코딩테스트 후기</category>
      <category>LGCNS</category>
      <category>LGCNS코딩테스트</category>
      <category>LGCNS코테</category>
      <category>코딩테스트후기</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/51</guid>
      <comments>https://0x15.tistory.com/51#entry51comment</comments>
      <pubDate>Thu, 27 May 2021 18:40:37 +0900</pubDate>
    </item>
    <item>
      <title>2021 LG CNS 7월 입사 코딩테스트 합격</title>
      <link>https://0x15.tistory.com/50</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;886&quot; data-origin-height=&quot;456&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vrquK/btq5SQSSjgf/yg1KAJvvWXIJ7x7xku1b6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vrquK/btq5SQSSjgf/yg1KAJvvWXIJ7x7xku1b6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vrquK/btq5SQSSjgf/yg1KAJvvWXIJ7x7xku1b6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvrquK%2Fbtq5SQSSjgf%2Fyg1KAJvvWXIJ7x7xku1b6k%2Fimg.png&quot; data-origin-width=&quot;886&quot; data-origin-height=&quot;456&quot; data-ke-mobilestyle=&quot;widthOrigin&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;코테 4문제를 모두 풀어서 붙을것 같다는 확신은 어느정도 있었는데,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실제로 합격통보를 받으니까 기분이 좋았다.. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;면접준비 잘해서 최합까지 가보자 &lt;/span&gt;&lt;/p&gt;</description>
      <category> /취준</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/50</guid>
      <comments>https://0x15.tistory.com/50#entry50comment</comments>
      <pubDate>Thu, 27 May 2021 18:22:08 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers | Level 3] 섬 연결하기 (Python)</title>
      <link>https://0x15.tistory.com/47</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1621528301257&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def find(x):
    global parent
    if parent[x] != x:
        parent[x] = find(parent[x])
    return parent[x]


def union(a, b):
    global parent
    x = find(a)
    y = find(b)
    if x &amp;lt; y:
        parent[y] = x
    else:
        parent[x] = y


parent = []


def solution(n, costs):
    global parent
    parent = [0] * n
    for i in range(n):
        parent[i] = i

    t = sorted(costs, key=lambda x: x[-1])
    result = 0
    for i in t:
        if find(i[0]) != find(i[1]):
            union(i[0], i[1])
            result += i[2]

    return result&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;크루스칼 알고리즘을 이용하여 MST를 찾는 방식으로 해결하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;union find와 세트이므로 기본 구조는 술술 나오도록 암기하자! 그래야 실전에서 빠르게 풀 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;크루스칼의 핵심 : 간선 비용 오름차순으로 정렬한 뒤 사이클이 생기지 않도록 반복해서 union&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;</description>
      <category>Algorithm | SQL/Programmers</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/47</guid>
      <comments>https://0x15.tistory.com/47#entry47comment</comments>
      <pubDate>Fri, 21 May 2021 01:34:30 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers | Level 3] 정수 삼각형 (Python)</title>
      <link>https://0x15.tistory.com/46</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43105&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/43105&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1621421929017&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 정수 삼각형&quot; data-og-description=&quot;[[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43105&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43105&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/txD3a/hyKgPFV2Tp/9H9QAbHdUUQKRrK04g7wv0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/cuG3tD/hyKgAaYcAb/zPhxXVTNGZpUN3R4RWYXS1/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/Mytxi/hyKgKYWgtm/VxpNbKxPJgz3KFVuLcxgek/img.png?width=368&amp;amp;height=300&amp;amp;face=0_0_368_300&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43105&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43105&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/txD3a/hyKgPFV2Tp/9H9QAbHdUUQKRrK04g7wv0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/cuG3tD/hyKgAaYcAb/zPhxXVTNGZpUN3R4RWYXS1/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/Mytxi/hyKgKYWgtm/VxpNbKxPJgz3KFVuLcxgek/img.png?width=368&amp;amp;height=300&amp;amp;face=0_0_368_300');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 정수 삼각형&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1621421918512&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(triangle):
    n = len(triangle[-1])
    d = [[0] * i for i in range(1, n + 1)]

    d[0][0] = triangle[0][0]

    for i in range(1, n):
        d[i][0] = d[i - 1][0] + triangle[i][0]
        d[i][-1] = d[i - 1][-1] + triangle[i][-1]

    for i in range(2, n):
        for j in range(1, i):
            d[i][j] = max(d[i - 1][j], d[i - 1][j - 1]) + triangle[i][j]

    return max(d[n - 1])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;DP를 이용하여 풀었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;주어진 삼각형과 같은 모양의 이차원 배열을 선언하고,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위에서 부터 탐색하면서 그 위치에서 거쳐온 숫자의 최댓값을 저장한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;부분문제가 다음 부분문제에 이용되고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;bottom up 방식으로 해결하였다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Algorithm | SQL/Programmers</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/46</guid>
      <comments>https://0x15.tistory.com/46#entry46comment</comments>
      <pubDate>Wed, 19 May 2021 20:00:40 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers | Level 3] 이중우선순위큐 (Python)</title>
      <link>https://0x15.tistory.com/45</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42628&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/42628&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1621418778839&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 이중우선순위큐&quot; data-og-description=&quot;&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/42628&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/42628&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Tpr1J/hyKgGhWvOM/v5sHXUD2lH8vEsLKDhiTC1/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/7wEO0/hyKgGPKa5i/yUlko2KNb2u0XLKqKMvlrk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42628&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/42628&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Tpr1J/hyKgGhWvOM/v5sHXUD2lH8vEsLKDhiTC1/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/7wEO0/hyKgGPKa5i/yUlko2KNb2u0XLKqKMvlrk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 이중우선순위큐&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1621418774466&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import heapq

def solution(operations):
    max_heap = []
    min_heap = []
    
    for i in operations:
        a, b = i.split(&quot; &quot;)
        b = int(b)
        if a == 'I':
            heapq.heappush(max_heap, -b)
            heapq.heappush(min_heap, b)
        if a == 'D' and b == 1:
            if not max_heap or not min_heap:
                continue
            min_heap.remove(-heapq.heappop(max_heap))
        elif a == 'D' and b == -1:
            if not max_heap or not min_heap:
                continue
            max_heap.remove(-heapq.heappop(min_heap))
    
    return [0, 0] if not max_heap else [-max_heap[0], min_heap[0]]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;최대힙과 최소힙을 이용하여 풀었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;파이썬의 heapq는 default가 최소힙이기 때문에,최대힙을 구현하기 위해서 push와 pop을 할 때 - 부호를 붙여주는 방식으로 해결할 수 있다.heapq에 익숙해지는 것도 필요할 것 같다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Algorithm | SQL/Programmers</category>
      <category>Python</category>
      <category>이중우선순위큐</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/45</guid>
      <comments>https://0x15.tistory.com/45#entry45comment</comments>
      <pubDate>Wed, 19 May 2021 19:08:25 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers | Level 3] 등굣길 (Python)</title>
      <link>https://0x15.tistory.com/44</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42898&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/42898&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1621405162076&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 등굣길&quot; data-og-description=&quot;계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m =&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/42898&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/42898&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/CnbSO/hyKgNnxqM2/60f99rRFbQFU2KBPJ9Mzpk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/vE1Ri/hyKgGaQ1GY/qMRn8WkvfMTDulc6ORBkjk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/diaMwC/hyKgO03NwU/hEKXy7MNvEqOPANRZAmyl1/img.png?width=532&amp;amp;height=402&amp;amp;face=0_0_532_402&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42898&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/42898&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/CnbSO/hyKgNnxqM2/60f99rRFbQFU2KBPJ9Mzpk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/vE1Ri/hyKgGaQ1GY/qMRn8WkvfMTDulc6ORBkjk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/diaMwC/hyKgO03NwU/hEKXy7MNvEqOPANRZAmyl1/img.png?width=532&amp;amp;height=402&amp;amp;face=0_0_532_402');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 등굣길&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m =&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1621405163972&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(m, n, puddles):
    graph =[[0] * m for _ in range(n)]
    d = [[0] * m for _ in range(n)]
    
    for i in puddles:
        graph[i[1]-1][i[0]-1] = 1
        
    for i in range(1, m):
        if graph[0][i] == 1:
            break
        d[0][i] = 1
        
    for i in range(1, n):
        if graph[i][0] == 1:
            break
        d[i][0] = 1
    
    for i in range(1, n):
        for j in range(1, m):
            if graph[i][j] == 0:
                d[i][j] = (d[i-1][j] + d[i][j-1]) % 1000000007
                
    return d[n-1][m-1]&lt;/code&gt;&lt;/pre&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;전형적인 DP 문제.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;bottom-up 방식으로 점화식을 이용하여 해결하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;오른쪽과 아래로만 갈 수 있으므로,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;오른쪽, 아래로 가면서 DP 테이블을 채운다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위쪽과 왼쪽의 경우의 수를 합해주면 현재 칸의 경우의 수가 나온다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Algorithm | SQL/Programmers</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/44</guid>
      <comments>https://0x15.tistory.com/44#entry44comment</comments>
      <pubDate>Wed, 19 May 2021 15:20:54 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers | Level 3] 입국심사 (Python)</title>
      <link>https://0x15.tistory.com/43</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43238&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/43238&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1621403704078&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 입국심사&quot; data-og-description=&quot;n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 &quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43238&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43238&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cwO1yS/hyKgD6hGEa/zeLzouVbyVcfp6krm2q4a0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/wQQ7X/hyKgDd6j7T/MXhBFkh9aFf9HtL9peL1Pk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43238&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43238&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cwO1yS/hyKgD6hGEa/zeLzouVbyVcfp6krm2q4a0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/wQQ7X/hyKgDd6j7T/MXhBFkh9aFf9HtL9peL1Pk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 입국심사&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1621403719099&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(n, times):
    start = 1
    end = max(times) * n

    while start &amp;lt;= end:
        mid = (start + end) // 2
        people = 0

        for t in times:
            people += mid // t

        if people &amp;gt;= n:
            answer = mid
            end = mid - 1
        else:
            start = mid + 1

    return answer&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;탐색 범위가 10억이라서 완전 탐색으로는 풀 수 없다는 것을 알아차려야 한다.&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이분탐색으로 풀이하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이분탐색에서 중요한 것은 탐색을 할 대상을 정하는 것과 시작점, 끝점을 정하는 것이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이 문제에서는 모든 사람이 심사를 받는데 걸리는 시간을 대상으로 정하였고,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; 시작점을 최소 시간 1, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;끝점을 심사가 가장 오래 걸리는 심사관에게 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;모든 사람이 심사를 받았을 경우의 끝나는 시간(max(times) * n)으로 하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;반복문을 사용한 이분탐색을 하였고 while문에 start &amp;lt;= end 조건을 넣었다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;&quot;&gt;mid를 계산하여 이 시간동안 심사를 받을 수 있는 사람의 수 people을 계산한다.&lt;/span&gt;&lt;span style=&quot;&quot;&gt;n보다 크거나 같을 경우 끝점을 end - 1로 조정한다.&lt;/span&gt;&lt;span style=&quot;&quot;&gt;n보다 작을 경우 시작점을 end + 1로 조정한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;&quot;&gt;최종적으로 반복문이 끝나면 이분탐색으로 최적화된 값이 나오게 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/43</guid>
      <comments>https://0x15.tistory.com/43#entry43comment</comments>
      <pubDate>Wed, 19 May 2021 14:59:45 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers | Level 3] 단어 변환 (Python)</title>
      <link>https://0x15.tistory.com/42</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43163&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/43163&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1621403567307&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 단어 변환&quot; data-og-description=&quot;두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43163&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43163&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bIL02m/hyKgMPFqVi/TrSGJaN7lFjjc271rW2JFK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/O7UaT/hyKgQds6xE/r3kK3yZHHUlGHQ6ivKzV5K/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43163&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43163&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bIL02m/hyKgMPFqVi/TrSGJaN7lFjjc271rW2JFK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/O7UaT/hyKgQds6xE/r3kK3yZHHUlGHQ6ivKzV5K/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 단어 변환&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1621403553879&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from collections import deque


def check(a, b):
    cnt = 0
    for i, j in zip(a, b):
        if i != j:
            cnt += 1
    if cnt == 1:
        return True


def solution(begin, target, words):
    if target not in words:
        return 0

    visited = [False] * len(words)
    q = deque()

    for i in words:
        if check(begin, i):
            q.append((i, 1))
            visited[words.index(i)] = True
            while q:
                word, cnt = q.popleft()
                if word == target:
                    ans = cnt
                for j in words:
                    if check(word, j) and not visited[words.index(j)]:
                        q.append((j, cnt + 1))
                        visited[words.index(j)] = True

    return ans&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;BFS를 이용하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;check 함수를 만들어서 알파벳이 하나만 다를 때 True를 리턴하도록 하였고,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;check가 True일때만 탐색을 진행하여 cnt 값을 늘려주었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;계속 탐색하면서 target과 같아질 때의 cnt 값을 ans에 저장하고 탐색이 모두 끝나면 리턴해주었다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Algorithm | SQL/Programmers</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/42</guid>
      <comments>https://0x15.tistory.com/42#entry42comment</comments>
      <pubDate>Wed, 19 May 2021 14:54:32 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers | Level 3] 네트워크 (Python)</title>
      <link>https://0x15.tistory.com/41</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43162&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/43162&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1621399873148&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 네트워크&quot; data-og-description=&quot;네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43162&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43162&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/uIimD/hyKgCGdV1F/s8CbHQlbaSrxsKTZA7AzLk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bEGoru/hyKgClUzes/pk98AZJBNQR7fVf30YKx1k/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/lQh2K/hyKgPS66Zk/HapKM1kosAOuqIvfqDnz61/img.png?width=714&amp;amp;height=622&amp;amp;face=0_0_714_622&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43162&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43162&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/uIimD/hyKgCGdV1F/s8CbHQlbaSrxsKTZA7AzLk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bEGoru/hyKgClUzes/pk98AZJBNQR7fVf30YKx1k/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/lQh2K/hyKgPS66Zk/HapKM1kosAOuqIvfqDnz61/img.png?width=714&amp;amp;height=622&amp;amp;face=0_0_714_622');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 네트워크&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1621399862478&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from collections import deque

def solution(n, computers):
    visited = [False] * n
    q = deque()
    cnt = 0
    for i in range(n):
        if not visited[i]:
            q.append(i)
            visited[i] = True
            cnt += 1
            while q:
                v = q.popleft()
                for i in range(n):
                    if not visited[i] and computers[v][i] == 1:
                        q.append(i)
                        visited[i] = True
    return cnt&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;BFS를 이용하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;컴퓨터의 번호를 0~n-1까지 돌면서 방문한적 없는 컴퓨터에 대해서 cnt값을 늘려주었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;각각에 대해서 연결된 컴퓨터를 bfs하였고, 방문처리를 해서 다음번 탐색때 cnt값이 늘어나지 않도록 했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이렇게 해서 같은 네트워크 상의 컴퓨터들은 한번씩만 카운트하게 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm | SQL/Programmers</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/41</guid>
      <comments>https://0x15.tistory.com/41#entry41comment</comments>
      <pubDate>Wed, 19 May 2021 13:53:11 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 이진 탐색 (Binary Search)</title>
      <link>https://0x15.tistory.com/40</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이진 탐색은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;정렬된 데이터에서 원하는 데이터를 빠르게 찾을 수 있다는 장점이 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 특징이 있다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이진 탐색은 위치를 나타내는 변수 3개를 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;i&gt;&lt;b&gt;시작점, 끝점, 중간점&lt;/b&gt;&lt;/i&gt;이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는게 이진 탐색이다.&lt;/b&gt;&lt;/span&gt;&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;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;한번 확인할 때마다 원소의 개수가 절반씩 줄어든다는 점에서 시간 복잡도가 O(logN)이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;탐색 범위가 2,000만을 넘어가면 이진 탐색으로 접근하는 것을 고려해보면 좋다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;구현하는 방법에는 두가지가 있다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;1. 재귀 함수로 구현&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1621260376559&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 이진 탐색 소스코드 구현 (재귀 함수)
def binary_search(array, target, start, end):
    if start &amp;gt; end:
        return None
    mid = (start + end) // 2
    # 찾은 경우 중간점 인덱스 반환
    if array[mid] == target:
        return mid
    # 중간점의 값보다 찾고자 하는 값이 작은 경우 왼쪽 확인
    elif array[mid] &amp;gt; target:
        return binary_search(array, target, start, mid - 1)
    # 중간점의 값보다 찾고자 하는 값이 큰 경우 오른쪽 확인
    else:
        return binary_search(array, target, mid + 1, end)

# n(원소의 개수)과 target(찾고자 하는 값)을 입력 받기
n, target = list(map(int, input().split()))
# 전체 원소 입력 받기
array = list(map(int, input().split()))

# 이진 탐색 수행 결과 출력
result = binary_search(array, target, 0, n - 1)
if result == None:
    print(&quot;원소가 존재하지 않습니다.&quot;)
else:
    print(result + 1)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;2. 반복문으로 구현&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1621260395515&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 이진 탐색 소스코드 구현 (반복문)
def binary_search(start, end):
    while start &amp;lt;= end:
        mid = (start + end) // 2
        # 찾은 경우 중간점 인덱스 반환
        if array[mid] == target:
            return mid
        # 중간점의 값보다 찾고자 하는 값이 작은 경우 왼쪽 확인
        elif array[mid] &amp;gt; target:
            end = mid - 1
        # 중간점의 값보다 찾고자 하는 값이 큰 경우 오른쪽 확인
        else:
            start = mid + 1
    return None

# n(원소의 개수)과 target(찾고자 하는 값)을 입력 받기
n, target = list(map(int, input().split()))
# 전체 원소 입력 받기
array = list(map(int, input().split()))

# 이진 탐색 수행 결과 출력
result = binary_search(0, n - 1)
if result == None:
    print(&quot;원소가 존재하지 않습니다.&quot;)
else:
    print(result + 1)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;bisect 라이브러리 사용법&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;파이썬에서는 이진 탐색을 쉽게 구현할 수 있도록 bisect 라이브러리를 제공한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;'정렬된 배열'에서 특정한 원소를 찾아야 할 때 매우 효과적으로 사용된다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;bisect_left()와 bisect_right() 메소드가 가장 중요하게 사용되며, O(logN)에 동작한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- bisect_left() : 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메소드&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- bisect_right() : 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 오른쪽 인덱스를 찾는 메소드&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1621261958116&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from bisect import bisect_left, bisect_right

a = [1, 2, 4, 4, 4, 4, 8]
x = 4

print(bisect_left(a, x)) # 2
print(bisect_right(a, x)) # 6
print(bisect_right(a, x) - bisect_left(a, x)) # 4&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이를 이용해서 값이 특정 범위에 속하는 원소의 개수를 구하는데 응용할 수 있다. (right - left 이용)&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR'; color: #0593d3;&quot;&gt;&lt;b&gt;본 게시글은 나동빈 저자의 &quot;이것이 코딩테스트다 with 파이썬&quot; 책 내용을 정리한 것입니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Algorithm | SQL/개념</category>
      <category>binary search</category>
      <category>이진탐색</category>
      <category>파이썬</category>
      <author>파카산</author>
      <guid isPermaLink="true">https://0x15.tistory.com/40</guid>
      <comments>https://0x15.tistory.com/40#entry40comment</comments>
      <pubDate>Mon, 17 May 2021 23:34:24 +0900</pubDate>
    </item>
  </channel>
</rss>