<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>IT Crowd</title>
    <link>https://itcrowd2016.tistory.com/</link>
    <description>웹 프로그래밍, 빅데이터, 알고리즘 강의를 하는 사람입니다.
도움이 되기를 바라며 포스팅합니다.</description>
    <language>ko</language>
    <pubDate>Mon, 10 Aug 2026 12:18:15 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>코딩딩</managingEditor>
    <item>
      <title>Error : unknown command cask</title>
      <link>https://itcrowd2016.tistory.com/89</link>
      <description>&lt;p&gt;MAC에서 openJDK를 설치하기 위해 brew cast install java 명령을 내렸을때 cask를 찾을 수 없는 명령이라고 나올때&lt;/p&gt;
&lt;pre id=&quot;code_1617266286052&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;amp; brew cask install java
Error: Unknown command: cask&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;아래와 같은 명령을 입력한다&lt;/p&gt;
&lt;pre id=&quot;code_1617274832769&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew install --cask adoptopenjdk8&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;혹시, 아래의 예시처럼 여러 openjdk가 있다는 메시지가 나오면&lt;/p&gt;
&lt;pre id=&quot;code_1617274819457&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Error: Cask adoptopenjdk8 exists in multiple taps:
  homebrew/cask-versions/adoptopenjdk8
  adoptopenjdk/openjdk/adoptopenjdk8&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;설치하고자 하는 버전을 명시해서 설치한다&lt;/p&gt;
&lt;pre id=&quot;code_1617274936537&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew&amp;nbsp;install&amp;nbsp;--cask&amp;nbsp;adoptopenjdk/openjdk/adoptopenjdk8&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LY5xJ/btq1C0SRLsT/9VxqD8tkb2B8978TZ0tHUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LY5xJ/btq1C0SRLsT/9VxqD8tkb2B8978TZ0tHUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LY5xJ/btq1C0SRLsT/9VxqD8tkb2B8978TZ0tHUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLY5xJ%2Fbtq1C0SRLsT%2F9VxqD8tkb2B8978TZ0tHUk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;</description>
      <category>프로그래밍/JAVA</category>
      <category>BREW</category>
      <category>Cask</category>
      <category>error</category>
      <category>java</category>
      <category>MAC</category>
      <category>OpenJDK</category>
      <category>unknown command cask</category>
      <category>맥</category>
      <author>코딩딩</author>
      <guid isPermaLink="true">https://itcrowd2016.tistory.com/89</guid>
      <comments>https://itcrowd2016.tistory.com/89#entry89comment</comments>
      <pubDate>Thu, 1 Apr 2021 20:04:50 +0900</pubDate>
    </item>
    <item>
      <title>맥에서 이클립스 자동완성키(Contents Assist) 설정하기</title>
      <link>https://itcrowd2016.tistory.com/88</link>
      <description>&lt;p&gt;맥(Mac)에서 이클립스(Eclipse) 의 자동완성으로 쓰는 Control + Space 단축키는 맥의 Spotlisht 단축키로 이미 설정되어 있다.&lt;/p&gt;
&lt;p&gt;따라서 자동완성 단축키인 Control + Space를 사용할 수가 없다.&lt;/p&gt;
&lt;p&gt;이때 Spotlight 단축키를 변경하거나 Eclipse의 자동 완성 단축키를 변경하면 된다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. Spotlight 단축키 변경&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;System Preferences 를 실행하면 아래와 같은 창이 뜸&lt;/li&gt;
&lt;li&gt;Spotlight를 선택함&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;572&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLnrWq/btq1Epkfw0C/7TeUFtwqKtj8qxT7voQvFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLnrWq/btq1Epkfw0C/7TeUFtwqKtj8qxT7voQvFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLnrWq/btq1Epkfw0C/7TeUFtwqKtj8qxT7voQvFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLnrWq%2Fbtq1Epkfw0C%2F7TeUFtwqKtj8qxT7voQvFK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;572&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Keyboard Shortcuts 선택&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;663&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qc6Vk/btq1C1D8Gck/oM3K0r1AOtI9SDQrkAmXxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qc6Vk/btq1C1D8Gck/oM3K0r1AOtI9SDQrkAmXxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qc6Vk/btq1C1D8Gck/oM3K0r1AOtI9SDQrkAmXxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQc6Vk%2Fbtq1C1D8Gck%2FoM3K0r1AOtI9SDQrkAmXxk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;663&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Show Spotlight search를 선택해서 단축키를 변경함
&lt;ul&gt;
&lt;li&gt;나의 경우 option + space로 변경함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;610&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfAIKV/btq1E8CyO4E/ZLmpj4UDDeP8ZOCNB4Lcz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfAIKV/btq1E8CyO4E/ZLmpj4UDDeP8ZOCNB4Lcz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfAIKV/btq1E8CyO4E/ZLmpj4UDDeP8ZOCNB4Lcz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfAIKV%2Fbtq1E8CyO4E%2FZLmpj4UDDeP8ZOCNB4Lcz1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;610&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;size18&quot;&gt;&lt;b&gt;2. Eclipse 단축키 변경&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Preferences를 선택함&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;221&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEORar/btq1E8o3EYz/LkMVd37Rcgm6CHxVVJ6OKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEORar/btq1E8o3EYz/LkMVd37Rcgm6CHxVVJ6OKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEORar/btq1E8o3EYz/LkMVd37Rcgm6CHxVVJ6OKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEORar%2Fbtq1E8o3EYz%2FLkMVd37Rcgm6CHxVVJ6OKK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;221&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;General &amp;gt; Keys &amp;gt; Content Assist 선택하고 아래쪽에 Binding에 원하는 단축키를 입력함
&lt;ul&gt;
&lt;li&gt;내 경우에는 shift + space로 설정함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;622&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s6qE5/btq1FBLeue3/dNVUG4Kfm8YRotWSLKdfnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s6qE5/btq1FBLeue3/dNVUG4Kfm8YRotWSLKdfnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s6qE5/btq1FBLeue3/dNVUG4Kfm8YRotWSLKdfnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs6qE5%2Fbtq1FBLeue3%2FdNVUG4Kfm8YRotWSLKdfnk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;622&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/JAVA</category>
      <category>contens Assist</category>
      <category>Eclipse</category>
      <category>MAC</category>
      <category>Spotlight</category>
      <category>맥</category>
      <category>이클립스</category>
      <category>자동완성</category>
      <author>코딩딩</author>
      <guid isPermaLink="true">https://itcrowd2016.tistory.com/88</guid>
      <comments>https://itcrowd2016.tistory.com/88#entry88comment</comments>
      <pubDate>Thu, 1 Apr 2021 19:08:39 +0900</pubDate>
    </item>
    <item>
      <title>[SWEA] 1859.백만장자 프로젝트 - python</title>
      <link>https://itcrowd2016.tistory.com/87</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mnOdC/btqYoZRjvxg/pdgzKXGrZQpZTgR3XpmLr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mnOdC/btqYoZRjvxg/pdgzKXGrZQpZTgR3XpmLr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mnOdC/btqYoZRjvxg/pdgzKXGrZQpZTgR3XpmLr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmnOdC%2FbtqYoZRjvxg%2FpdgzKXGrZQpZTgR3XpmLr0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nceSD/btqYurlENcN/yYvei6zKF8Ucxz0O7cN8xk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nceSD/btqYurlENcN/yYvei6zKF8Ucxz0O7cN8xk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nceSD/btqYurlENcN/yYvei6zKF8Ucxz0O7cN8xk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnceSD%2FbtqYurlENcN%2FyYvei6zKF8Ucxz0O7cN8xk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qYNKM/btqYoYSiO8e/OCQlWwB6X2T3XNfB6WqPY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qYNKM/btqYoYSiO8e/OCQlWwB6X2T3XNfB6WqPY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qYNKM/btqYoYSiO8e/OCQlWwB6X2T3XNfB6WqPY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqYNKM%2FbtqYoYSiO8e%2FOCQlWwB6X2T3XNfB6WqPY0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이 문제는 &lt;span&gt;N(2 &amp;le; N &amp;le; 1,000,000)이라는 것을 생각하고 풀어야 하는 문제이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;문제를 해결하려고 가장 첫번째로 생각나는 방법은 아마도 현시점에서 매수를 하고 현재 시점에서 부터 끝까지 탐색해서 그중 최고값을 찾아 이익을 얻는 것일 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;하지만 이방법으로 문제를 풀려고 한다면, 2중 for문이 필요하고 N^2의 시간복잡도를 가지게 된다. 주어진 테스트 케이스를 해결하더라도 N이 커질 경우 시간초과가 발생할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이때, 뒤에서 부터 순회하는 방법을 사용하면 위의 문제를 해결할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;뒤에서 부터 순회를 하면서 현시점 (현위치)에서 부터 끝까지 중 최고치를 알아낼 수 있고, 현시점의 매매가 보다 최고 값이 높으면 매수하고 최고치에 팔면 이득을 얻어 낼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;설명한 내용을 간단히 정리하면 이렇다&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size18&quot;&gt;최고가 &amp;lt;- 마지막날 값&lt;/li&gt;
&lt;li data-ke-size=&quot;size18&quot;&gt;현재 값이 최고가 보다 낮으면
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li data-ke-size=&quot;size18&quot;&gt;팔아서 이득(최고가 - 현재가)을 남김&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-ke-size=&quot;size18&quot;&gt;아니면 ( 현재값이 최고가 보다 크거나 같으면)
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li data-ke-size=&quot;size18&quot;&gt;최고가 &amp;lt;- 현재가&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;아래 그림은&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;1 1 3 1 2 인 경우에 대한 그림이다. 마지막 매수일 부터 매매가와 최고가의 차이를 적었고, 이를 총합 하면 총 이득을 구할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vMC2E/btqYvd1GNuw/KxRO0OvffrUixJ90Yo9w20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vMC2E/btqYvd1GNuw/KxRO0OvffrUixJ90Yo9w20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vMC2E/btqYvd1GNuw/KxRO0OvffrUixJ90Yo9w20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvMC2E%2FbtqYvd1GNuw%2FKxRO0OvffrUixJ90Yo9w20%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알고리즘/SWEA</category>
      <category>iM</category>
      <category>Python</category>
      <category>SWEA</category>
      <category>백만장자</category>
      <category>시간초과</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>파이썬</category>
      <author>코딩딩</author>
      <guid isPermaLink="true">https://itcrowd2016.tistory.com/87</guid>
      <comments>https://itcrowd2016.tistory.com/87#entry87comment</comments>
      <pubDate>Thu, 25 Feb 2021 13:34:08 +0900</pubDate>
    </item>
    <item>
      <title>[SWEA] 5250. [파이썬 S/W 문제해결 구현] 7일차 - 최소 비용</title>
      <link>https://itcrowd2016.tistory.com/86</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/12ihl/btqNaEKIoVx/MbB27npiGfTwjRze9Zg3S0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/12ihl/btqNaEKIoVx/MbB27npiGfTwjRze9Zg3S0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/12ihl/btqNaEKIoVx/MbB27npiGfTwjRze9Zg3S0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F12ihl%2FbtqNaEKIoVx%2FMbB27npiGfTwjRze9Zg3S0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gdq50/btqNbv04bUA/h5FS7hGsiId6ozzp49nrB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gdq50/btqNbv04bUA/h5FS7hGsiId6ozzp49nrB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gdq50/btqNbv04bUA/h5FS7hGsiId6ozzp49nrB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGdq50%2FbtqNbv04bUA%2Fh5FS7hGsiId6ozzp49nrB1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xgqkg/btqNg99R4IE/Pm2wlb2KzWlKirp7TkreS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xgqkg/btqNg99R4IE/Pm2wlb2KzWlKirp7TkreS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xgqkg/btqNg99R4IE/Pm2wlb2KzWlKirp7TkreS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxgqkg%2FbtqNg99R4IE%2FPm2wlb2KzWlKirp7TkreS1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제풀이&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2차원 배열의 특정 위치에서 부터 인접 좌표들로 이동을 하면서 최소비용을 구하는 문제&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;가중치가 없다면 단순 bfs로 해결할 수 있음.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제에서는 현재좌표의 높이와 새로운 좌표의 높이 차이가 있다면 ( 새로운 좌표가 높다면) 그 높이 만큼을 가중치로 계산함&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;시작점 (0,0)에서 BFS 탐색을 하면서 각 인접 좌표 (상하좌우)에 대해 간선완화를 진행&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;한 좌표의 상하좌우에 있는 새로운 좌표 계산&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;각 좌표가 범위내인지 확인&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;새로운 좌표의 높이가 현재의 높이보다 높다면 그 차이를 가중치로 계산&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;높이 차이가 없거나 새좌표가 더 낮으면 가중치는 1 (기본 비용)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;새로운 좌표의 현재까지의 최소비용(시작점에서 부터의 최소비용)가 현 좌표를 찍고 가는 것 보다 높으면 새로운 비용으로 갱신&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;새좌표의 최소비용 &amp;gt; 현좌표 최소비용 + (현-새 높이차) 면 갱신&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;새 좌표를 큐에 넣기 : 그 좌표 부터 새 좌표를 찾기 위해서&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;반복이 끝나고 N-1,N-1에 있는 비용이 최소비용&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LeA6R/btqNhb0UGzU/sK7KiIouQ352kqKrFNudmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LeA6R/btqNhb0UGzU/sK7KiIouQ352kqKrFNudmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LeA6R/btqNhb0UGzU/sK7KiIouQ352kqKrFNudmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLeA6R%2FbtqNhb0UGzU%2FsK7KiIouQ352kqKrFNudmk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스코드(python)&lt;/p&gt;
&lt;pre id=&quot;code_1605142155328&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def find():
    dr = [-1,0,1,0]
    dc = [0,1,0,-1]
    INF = 100000000 #큰값
    dist = [[INF]*N for i in range(N)]    #최단거리 배열 (2차원)
    dist[0][0] = 0  #시작 값을 0으로
    #시작점에서 상하좌우로 탐색 -&amp;gt; 또 거기서 상하좌우 탐색 : bfs 탐색
    q = []  #큐 준비
    q.append((0,0)) #시작점 큐에 넣기
    while q:
        t = q.pop(0)
        for k in range(4):  #사방탐색
            nr = t[0] + dr[k]
            nc = t[1] + dc[k]
            if nr&amp;gt;=0 and nr &amp;lt; N and nc &amp;gt;= 0  and nc &amp;lt; N:
                diff = 0    #높이차이
                if Map[nr][nc] &amp;gt; Map[t[0]][t[1]]:   #높이 차이가 나면
                    diff = Map[nr][nc] - Map[t[0]][t[1]]    #그 높이 차이가 가중치
                #새롭게 갈 좌표의 최단거리가 현위치의 최단거리 + 현위치-새위치 가중치 + 1(기본적인 비용)
                if dist[nr][nc] &amp;gt; dist[t[0]][t[1]] + diff +1:
                    dist[nr][nc] = dist[t[0]][t[1]] + diff + 1
                    q.append((nr,nc))
    return dist[N-1][N-1]   #도착점의 값 리턴

T = int(input())
for tc in range(1,T+1):
    N = int(input())
    Map = [list(map(int,input().split())) for _ in range(N)]
    print(&quot;#{} {}&quot;.format(tc, find()))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알고리즘/SWEA</category>
      <category>BFS</category>
      <category>Python</category>
      <category>SWEA</category>
      <category>기출</category>
      <category>다익스트라</category>
      <category>삼성코테</category>
      <category>알고리즘</category>
      <category>코딩</category>
      <author>코딩딩</author>
      <guid isPermaLink="true">https://itcrowd2016.tistory.com/86</guid>
      <comments>https://itcrowd2016.tistory.com/86#entry86comment</comments>
      <pubDate>Thu, 12 Nov 2020 09:51:08 +0900</pubDate>
    </item>
    <item>
      <title>[백준/정올] 2527. 직사각형 / 2568. 직사각형</title>
      <link>https://itcrowd2016.tistory.com/85</link>
      <description>&lt;p&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2527&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.acmicpc.net/problem/2527&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1605053333779&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;2527번: 직사각형&quot; data-og-description=&quot;4개의 줄로 이루어져 있다. 각 줄에는 &amp;nbsp;8개의 정수가 하나의 공백을 두고 나타나는데, 첫 4개의 정수는 첫 번째 직사각형을, 나머지 4개의 정수는 두 번째 직사각형을 각각 나타낸다. 단 입력 직&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2527&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2527&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dbeOQ0/hyIdj2hrdF/dcuTbXkzzfus6JHLg8KuTk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2527&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2527&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dbeOQ0/hyIdj2hrdF/dcuTbXkzzfus6JHLg8KuTk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;2527번: 직사각형&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;4개의 줄로 이루어져 있다. 각 줄에는 &amp;nbsp;8개의 정수가 하나의 공백을 두고 나타나는데, 첫 4개의 정수는 첫 번째 직사각형을, 나머지 4개의 정수는 두 번째 직사각형을 각각 나타낸다. 단 입력 직&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&amp;amp;wr_id=1829&amp;amp;sca=9010&amp;amp;stx=%EC%A7%81%EC%82%AC%EA%B0%81%ED%98%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.jungol.co.kr/bbs/board.php?bo_table=pbank&amp;amp;wr_id=1829&amp;amp;sca=9010&amp;amp;stx=%EC%A7%81%EC%82%AC%EA%B0%81%ED%98%95&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1605055755508&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;JUNGOL&quot; data-og-description=&quot; &quot; data-og-host=&quot;www.jungol.co.kr&quot; data-og-source-url=&quot;http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&amp;amp;wr_id=1829&amp;amp;sca=9010&amp;amp;stx=%EC%A7%81%EC%82%AC%EA%B0%81%ED%98%95&quot; data-og-url=&quot;http://www.jungol.co.kr/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&amp;amp;wr_id=1829&amp;amp;sca=9010&amp;amp;stx=%EC%A7%81%EC%82%AC%EA%B0%81%ED%98%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&amp;amp;wr_id=1829&amp;amp;sca=9010&amp;amp;stx=%EC%A7%81%EC%82%AC%EA%B0%81%ED%98%95&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;&gt;JUNGOL&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.jungol.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bufGA6/btqM5VrWJww/EpghJEmeEVFzhDHCgJK3pK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bufGA6/btqM5VrWJww/EpghJEmeEVFzhDHCgJK3pK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bufGA6/btqM5VrWJww/EpghJEmeEVFzhDHCgJK3pK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbufGA6%2FbtqM5VrWJww%2FEpghJEmeEVFzhDHCgJK3pK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5R8EZ/btqNcGzN3PU/qd0FCF9UyXOkCwrVbwGhl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5R8EZ/btqNcGzN3PU/qd0FCF9UyXOkCwrVbwGhl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5R8EZ/btqNcGzN3PU/qd0FCF9UyXOkCwrVbwGhl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5R8EZ%2FbtqNcGzN3PU%2Fqd0FCF9UyXOkCwrVbwGhl0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvXf0o/btqM4yYfSCw/5qBlzd4chryvcCsX2KnCwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvXf0o/btqM4yYfSCw/5qBlzd4chryvcCsX2KnCwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvXf0o/btqM4yYfSCw/5qBlzd4chryvcCsX2KnCwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvXf0o%2FbtqM4yYfSCw%2F5qBlzd4chryvcCsX2KnCwk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 풀이&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;줄여나가면서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;원하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;답을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;찾아나가는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법으로&lt;/span&gt;&lt;span&gt; 보다 쉽게 &lt;/span&gt;&lt;span&gt;해결할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있음&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;입력에서 사각형1(x1,y1,p1,q1)을 기준으로 하고 &lt;span style=&quot;color: #333333;&quot;&gt;사각형2(x2,y2,p2,q2)와 비교해서 찾아나감.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;코드 문자의 순서대로 보다는 역순으로 나아가며 체크함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공통부분이 없는 경우 : d&lt;/li&gt;
&lt;li&gt;선으로 겹치는 경우 : b&lt;/li&gt;
&lt;li&gt;점으로 겹치는 경우 : c&lt;/li&gt;
&lt;li&gt;나머지 경우 ( 직사각형으로 겹침) : a&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;순으로 찾아 나감&lt;/p&gt;
&lt;p&gt;나의 경우 아래 그림처럼 그림을 그려놓고 코드를 작성했다. (그냥하면..헷갈려용..ㅠㅠ)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;407&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ueDna/btqM5fYx7iI/JQaEFfvls7jLHJDYA21yB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ueDna/btqM5fYx7iI/JQaEFfvls7jLHJDYA21yB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ueDna/btqM5fYx7iI/JQaEFfvls7jLHJDYA21yB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FueDna%2FbtqM5fYx7iI%2FJQaEFfvls7jLHJDYA21yB0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;407&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공통부분이 없는경우
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;사각형1이 위치한 가로 또는 세로에 사각형2가 위치하고 있지 않다면 이 둘은 공통부분이 없다. 아래 그림을 보면 더 이해가 쉽다.&lt;/li&gt;
&lt;li&gt;x2&amp;gt; p1 또는 x1 &amp;gt; p2 또는 q1 &amp;lt; y2 또는 q2 &amp;lt; y1 인 경우 공통부분 없음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;652&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yc5zh/btqM64WuguH/wvivFo3tzo6dNbo7xL7PQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yc5zh/btqM64WuguH/wvivFo3tzo6dNbo7xL7PQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yc5zh/btqM64WuguH/wvivFo3tzo6dNbo7xL7PQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyc5zh%2FbtqM64WuguH%2FwvivFo3tzo6dNbo7xL7PQ1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;652&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;선으로 겹치는 경우와 점으로 겹치는 경우
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;아래 그림처럼 선으로 겹치는 경우
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;① 사각형 1의 왼쪽 세로변과 사각형2의 오른쪽 세로변이 같은 선상에 있을 때이다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;또, ② 사각형1의 아래쪽 가로변과 사각형2의 위쪽 가로변이 같은 선상에 있어도 선으로 겹친다. (이 논리를 적용하여 선으로 겹치는 경우를 찾는다)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;이때, 선으로 겹치면서 다른 쪽 선도 겹치면 &amp;rarr; 점
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;① 번의 경우 사각형 1의 위쪽 가로변과 사각형 2의 아래쪽 가로변이 겹치거나 사각형 1의 아래쪽 가로변과 사각형2의 위쪽 가로변이 겹치가나 하면 두 사각형은 점으로 겹친다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;그게 아니라면 &amp;rarr; 선&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0YoRx/btqM9pTkap3/zdxEpcHEGiNxBBnaKqRrX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0YoRx/btqM9pTkap3/zdxEpcHEGiNxBBnaKqRrX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0YoRx/btqM9pTkap3/zdxEpcHEGiNxBBnaKqRrX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0YoRx%2FbtqM9pTkap3%2FzdxEpcHEGiNxBBnaKqRrX1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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&gt;마지막으로 이 모든 경우에 해당되지 않는다면 두 사각형은 사각형으로 겹친다.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style=&quot;font-family: GungSeo, serif;&quot;&gt;ps. 문제를 풀다보면..오히려 IM수준의 시험이 더 어려울때가 있다는 생각도 든다..ㅠㅠ (아이디어를 생각해 내는 것이 쉽지 않다.)&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;소스코드 (python)&lt;/h3&gt;
&lt;pre id=&quot;code_1605055480187&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in range(4):
    x1,y1,p1,q1,x2,y2,p2,q2 = map(int,input().split())
    # print(x1,y1,p1,q1,x2,y2,p2,q2)
    result = &quot;a&quot;    #초기 설정을 a로 두고 밑에서 조건에 해당안하면 그대로 a
    if q1 &amp;lt; y2 or q2 &amp;lt; y1 or x1 &amp;gt; p2 or p1 &amp;lt;x2: #겹치지 않으면 : d
        result = &quot;d&quot;
    #각 면에 대해서 검사해서 점인지 선인지 확인
    if p1 == x2:    #일단 한면이 겹치는지 확인
        result = &quot;c&quot; if (q1 == y2 or y1 == q2) else &quot;b&quot;     # 꼭지점이면 점, 아니면 선
    if x1 == p2:
        result = &quot;c&quot; if (y1 == q2 or q1== y2) else &quot;b&quot;
    if q1 == y2:
        result = &quot;c&quot; if (p1 == x2 or p2== x1) else &quot;b&quot;
    if q2 == y1:
        result = &quot;c&quot; if (p1 == x2 or p2== x1) else &quot;b&quot;
    #여기 까지 왔는데..if 안걸렸으면 a
    print(result)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알고리즘/백준</category>
      <category>If</category>
      <category>iM</category>
      <category>KOI</category>
      <category>Python</category>
      <category>백준</category>
      <category>비교문</category>
      <category>삼성코테</category>
      <category>정올</category>
      <category>코딩테스트</category>
      <category>한국정보올림피아드</category>
      <author>코딩딩</author>
      <guid isPermaLink="true">https://itcrowd2016.tistory.com/85</guid>
      <comments>https://itcrowd2016.tistory.com/85#entry85comment</comments>
      <pubDate>Wed, 11 Nov 2020 09:50:39 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2477. 참외밭 - python</title>
      <link>https://itcrowd2016.tistory.com/84</link>
      <description>&lt;p&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2477&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.acmicpc.net/problem/2477&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1600824656711&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;2477번: 참외밭&quot; data-og-description=&quot;첫 번째 줄에 1m^2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1&amp;le;K&amp;le;20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지나�&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2477&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2477&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Ud5LW/hyHAGk7Cu6/J1bMhMIGoEnaamXuKiJEF1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2477&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2477&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Ud5LW/hyHAGk7Cu6/J1bMhMIGoEnaamXuKiJEF1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;2477번: 참외밭&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;첫 번째 줄에 1m^2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1&amp;le;K&amp;le;20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지나�&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pvpgY/btqJls7dXiq/uf2ik21uGOA2OeXfRyDbR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pvpgY/btqJls7dXiq/uf2ik21uGOA2OeXfRyDbR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pvpgY/btqJls7dXiq/uf2ik21uGOA2OeXfRyDbR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpvpgY%2FbtqJls7dXiq%2Fuf2ik21uGOA2OeXfRyDbR0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;h4 data-ke-size=&quot;size20&quot;&gt;입력&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변의 방향이 동,서(1,2)일 경우 가로변, 변의 방향이 남,북(3,4)일 경우 세로변임을 알 수 있음.&lt;/li&gt;
&lt;li&gt;6각형이고 입력이 순서대로 들어오므로 변의 방향과 길이를 저장하기 위한 2차원 배열을 생성하여 저장함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXKvTo/btqJbzmgHRc/UOIEPy98NJqmk5NlYczYPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXKvTo/btqJbzmgHRc/UOIEPy98NJqmk5NlYczYPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXKvTo/btqJbzmgHRc/UOIEPy98NJqmk5NlYczYPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXKvTo%2FbtqJbzmgHRc%2FUOIEPy98NJqmk5NlYczYPk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 풀이&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ㄱ자 모양이라는 것에서 아이디어를 얻음&lt;/li&gt;
&lt;li&gt;그림과 같이 큰 사각형에서 작은 사각형을 빼면 ㄱ자 도형의 면적을 구할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciM5jE/btqJjwhMX4x/f2jkgbhTjV2jU0qaZEiA8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciM5jE/btqJjwhMX4x/f2jkgbhTjV2jU0qaZEiA8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciM5jE/btqJjwhMX4x/f2jkgbhTjV2jU0qaZEiA8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciM5jE%2FbtqJjwhMX4x%2Ff2jkgbhTjV2jU0qaZEiA8k%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;큰 사각형의 면적
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;주어진 변의 길이중 가장 긴 가로 변, 세로변의 길이를 구해서 곱하면 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;작은 사각형&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;주어진 정보를 이용해서 가장 긴 가로변을 구할 수 있음. (위에 큰 사각형의 면적을 구하기 위해서도 필요)&lt;/li&gt;
&lt;li&gt;최장 가로변 양옆에는 두 개의 세로변이 위치함. 이 때 두 변의 차이를 구하면 우리가 구하고자하는 작은 사각형의 세로변이 됨.&lt;/li&gt;
&lt;li&gt;인접한 변의 길이는 배열에 담아 놨으므로 최장 가로변 인덱스 -1, +1을 이용해서 찾아줄 수 있고, 최장 가로변이 어디에 위치하고 있을 지 알 수 없으므로 나머지 연산을 이용해서 인접한 변을 찾을 수 있도록 설정함&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZhBkK/btqJeudZncm/8EBL7i6wMudE7HHkgvs5Fk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZhBkK/btqJeudZncm/8EBL7i6wMudE7HHkgvs5Fk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZhBkK/btqJeudZncm/8EBL7i6wMudE7HHkgvs5Fk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZhBkK%2FbtqJeudZncm%2F8EBL7i6wMudE7HHkgvs5Fk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;소스코드 - python&lt;/h3&gt;
&lt;pre id=&quot;code_1600827189878&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	melon = int(input())&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#참외수
	arr = [list(map(int,input().split())) for _ in range(6)]
	# print(arr)
	w = 0; w_idx = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#가장 긴 가로변 길이, 인덱스 초기화
	h = 0; h_idx = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#가장 긴 세로변 길이, 인덱스 초기화
	for i in range(len(arr)):
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if arr[i][0] == 1 or arr[i][0] == 2:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#방향이 동,서면 가로
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if w &amp;lt; arr[i][1]:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #가장 큰값,인덱스 찾기
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;w = arr[i][1]
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;w_idx = i
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elif arr[i][0] == 3 or arr[i][0] == 4:&amp;nbsp;&amp;nbsp;#남,북이면 세로
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if h &amp;lt; arr[i][1]:
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h = arr[i][1]
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h_idx = i
	# print(w,h)
	#가장 긴 가로변 양옆에 붙어있는 변(세로변)들의 차이 : 뺄 사각형의 세로
	#가장 긴 세로변 양옆에 붙어있는 변(가로변)들의 차이 : 뺄 사각형의 가로
	subW = abs(arr[(w_idx - 1) % 6][1] - arr[(w_idx + 1) % 6][1])
	subH = abs(arr[(h_idx - 1) % 6][1] - arr[(h_idx + 1) % 6][1])
	# print(subW,subH)
	ans = ((w*h) - (subW*subH)) * melon
	print(ans)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알고리즘/백준</category>
      <category>2차원배열</category>
      <category>algorithm</category>
      <category>iM</category>
      <category>SWEA</category>
      <category>백준</category>
      <category>삼성</category>
      <category>알고리즘</category>
      <category>인덱스</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <author>코딩딩</author>
      <guid isPermaLink="true">https://itcrowd2016.tistory.com/84</guid>
      <comments>https://itcrowd2016.tistory.com/84#entry84comment</comments>
      <pubDate>Wed, 23 Sep 2020 11:15:46 +0900</pubDate>
    </item>
    <item>
      <title>난  ENFP</title>
      <link>https://itcrowd2016.tistory.com/83</link>
      <description>&lt;p&gt;지금 이걸 쓰고 있는 것도 ENFP스럽지만 난 ENFPㅋㅋ&lt;/p&gt;
&lt;p&gt;인터넷에서 본 글 중에 공감되는거 모아 놓을려구 ㅎㅎ&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;나는 아니라고 부정하지만 주변에 인싸라는 말 많이 듣고, 가끔은 술자리에서 내가 첨에 분위기 다 주도해서 속으로 &amp;lsquo;아 내가 살짝 인싸가 맞긴 맞나봐..&amp;rsquo; 생각이 듬 &lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;(어느 순간부터 기 다 빨려서 가만히 있음. 그럼 애들이 취했냐고 물어봐줌) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;오히려 활발한 사람이랑 안친할 때가 많음... 활발하긴 한데 나랑 진짜 안맞고 안맞는 옷 입은 것처럼 불편한 사람이 있음. 주변 친구들은 오히려 조용조용하면서 나랑 공감대 쿵짝 잘맞는 친구들 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;난 내가 엔프피인게 좋아ㅠㅠㅜㅠㅠㅠㅠ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;ENFP와 INFP의 차이점&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ENFP는 자신만의 궁전에 모두를 초대해서 즐겁게 놀지만 정말 친한 사람, 소중한 사람만 궁전 안에 있는 자신의 방으로 데리고 간다.&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;INFP는 자신만의 궁전에 정말 친한 사람, 소중한 사람만 데리고 간다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>잡다한것</category>
      <category>ENFP</category>
      <category>infp</category>
      <category>MBTI</category>
      <category>관종</category>
      <category>내향</category>
      <category>성격</category>
      <category>엔프피</category>
      <category>외향</category>
      <author>코딩딩</author>
      <guid isPermaLink="true">https://itcrowd2016.tistory.com/83</guid>
      <comments>https://itcrowd2016.tistory.com/83#entry83comment</comments>
      <pubDate>Thu, 17 Sep 2020 02:30:43 +0900</pubDate>
    </item>
    <item>
      <title>[python] 재귀(recursion)에 대해서 알아봅시다.</title>
      <link>https://itcrowd2016.tistory.com/82</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;재귀 함수&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;자기 자신을 호출하는 함수&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 방식으로 주어진 문제를 푸는 방법&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;python에서의 기본 재귀 구조는 아래와 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;347&quot; data-origin-height=&quot;179&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eoU4mT/btqIP0jSwS9/hspyokOTcknjXjORhHKvi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eoU4mT/btqIP0jSwS9/hspyokOTcknjXjORhHKvi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eoU4mT/btqIP0jSwS9/hspyokOTcknjXjORhHKvi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeoU4mT%2FbtqIP0jSwS9%2FhspyokOTcknjXjORhHKvi0%2Fimg.png&quot; data-origin-width=&quot;347&quot; data-origin-height=&quot;179&quot; data-ke-mobilestyle=&quot;widthContent&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;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;202&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cusiyS/btqIOaz535s/K84mENIu47mGe1viiKvUU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cusiyS/btqIOaz535s/K84mENIu47mGe1viiKvUU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cusiyS/btqIOaz535s/K84mENIu47mGe1viiKvUU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcusiyS%2FbtqIOaz535s%2FK84mENIu47mGe1viiKvUU1%2Fimg.png&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;202&quot; data-ke-mobilestyle=&quot;widthContent&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇다면, 무한 루프에 빠지지 않게 하려면 어떻게 해야하는가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당연하지만 그냥 나 자신을 계속 호출한다면 무한반복이 일어날 것이다. 이 무한한 반복을 우리가 원하는 만큼만 반복하고 중단시키는 것이 우리의 목표다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리가 기본적으로 아는 반복문에서와 마찬가지로 반복을 중단시킬 무언가가 필요하다. 즉, 반복을 중단시킬 조건과 그 조건을 체크하기 위한 값을 저장할 변수.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과정을 정리하면 아래와 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;매개변수를 하나 받음&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;재귀 호출이 일어날때마다 매개 변수의 값이 변하도록 설정해야 한다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;재귀 함수에서 매개변수의 값을 이용해 조건을 설정하고 일정조건을 만족하면 리턴하도록 설정&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &lt;span style=&quot;color: #009a87;&quot;&gt;&amp;nbsp;※ 매개변수 :&amp;nbsp; 함수에 투입되는 변수&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매개변수를 받고, 재귀 호출이 일어날 때마다 매개 변수의 값이 변하도록 설정해보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;245&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qrmYS/btqITu5p9ns/NHl1nVZAb10xsWZsHIK3TK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qrmYS/btqITu5p9ns/NHl1nVZAb10xsWZsHIK3TK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qrmYS/btqITu5p9ns/NHl1nVZAb10xsWZsHIK3TK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqrmYS%2FbtqITu5p9ns%2FNHl1nVZAb10xsWZsHIK3TK%2Fimg.png&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;245&quot; data-ke-mobilestyle=&quot;widthContent&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;u&gt;매개변수 k를 설정&lt;/u&gt;함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수를 호출할 때 5라는 인자를 주면 func(k)가 호출될 때 매개변수 k에 5라는 값이 담기게 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수안이 실행되며 다음 문장 func(k-1)이 실행되고, 재귀 호출이 일어남. 이때 &lt;u&gt;다음 호출시 불릴 함수에 전달할 값을 k-1와 같이 변화&lt;/u&gt;시켜 준다. 그러면 다음 호출되는 함수 func의 매개변수 k에는 4 (5-1)이 담기게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 다시 한 번 실행해보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;619&quot; data-origin-height=&quot;213&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QHlIL/btqISvi8yOn/o7OWmfjmjzHvAUbRCXHF6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QHlIL/btqISvi8yOn/o7OWmfjmjzHvAUbRCXHF6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QHlIL/btqISvi8yOn/o7OWmfjmjzHvAUbRCXHF6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQHlIL%2FbtqISvi8yOn%2Fo7OWmfjmjzHvAUbRCXHF6K%2Fimg.png&quot; data-origin-width=&quot;619&quot; data-origin-height=&quot;213&quot; data-ke-mobilestyle=&quot;widthContent&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;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;340&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UuTCQ/btqIWReV1Fe/ArKM0KF0ycrI6xzoQbN5Lk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UuTCQ/btqIWReV1Fe/ArKM0KF0ycrI6xzoQbN5Lk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UuTCQ/btqIWReV1Fe/ArKM0KF0ycrI6xzoQbN5Lk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUuTCQ%2FbtqIWReV1Fe%2FArKM0KF0ycrI6xzoQbN5Lk%2Fimg.png&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;340&quot; data-ke-mobilestyle=&quot;widthContent&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;우리가 원하는대로 매개변수의 값은 점점 작아지면서 호출되지만, 여전히 호출은&amp;nbsp; 멈추지 않고 계속 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이쯤하면 눈치를 차렸겠지만, 이쯤 하고 그만 호출해 라는 조건이 없기 때문에 열심히 계속 호출한다. 즉, &lt;u&gt;우리는 재귀 호출을 그만할 조건을 설정&lt;/u&gt;해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 본 것처럼 k는 점점 줄어들 것이다. 5에서 시작해서 매 호출이 일어날때마다 1씩 줄어든다. 그러다가 &lt;u&gt;k가 0이되면 호출을 그만하고 이번 함수를 호출한 함수로 되돌아 가&lt;/u&gt;라고 설정해보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;521&quot; data-origin-height=&quot;229&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/befFkK/btqITuK6lBk/m8KuBUpd9k89pMrvZdwfBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/befFkK/btqITuK6lBk/m8KuBUpd9k89pMrvZdwfBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/befFkK/btqITuK6lBk/m8KuBUpd9k89pMrvZdwfBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbefFkK%2FbtqITuK6lBk%2Fm8KuBUpd9k89pMrvZdwfBK%2Fimg.png&quot; data-origin-width=&quot;521&quot; data-origin-height=&quot;229&quot; data-ke-mobilestyle=&quot;widthContent&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무한 반복을 하지 않고, 적당한 횟수만을 반복하고 정상종료하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;76&quot; data-origin-height=&quot;126&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nMs5d/btqIP0EkMfP/xDzdDXr6bFwb033qliDQoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nMs5d/btqIP0EkMfP/xDzdDXr6bFwb033qliDQoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nMs5d/btqIP0EkMfP/xDzdDXr6bFwb033qliDQoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnMs5d%2FbtqIP0EkMfP%2FxDzdDXr6bFwb033qliDQoK%2Fimg.png&quot; data-origin-width=&quot;76&quot; data-origin-height=&quot;126&quot; data-ke-mobilestyle=&quot;widthContent&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;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;494&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buZpEn/btqIOoSUcAR/LHlP3q7uLSspVjhIJRxRhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buZpEn/btqIOoSUcAR/LHlP3q7uLSspVjhIJRxRhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buZpEn/btqIOoSUcAR/LHlP3q7uLSspVjhIJRxRhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuZpEn%2FbtqIOoSUcAR%2FLHlP3q7uLSspVjhIJRxRhk%2Fimg.png&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;494&quot; data-ke-mobilestyle=&quot;widthContent&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;위에서 살펴본 것과 같이 func(5)에서 시작하며 k가 하나씩 줄며 계속 함수를 호출한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 매개변수 k의 값을 살펴보며 그 값이 0인지 아닌지를 판단한다. 0이 아니라면 if 문 내부는 무시되고 아래 문장이 실행된다. func(5)~func(1)까지 k가 0 이 아니므로 계속 호출을 진행하고 func(0)이 호출되면, if문을 만족하므로 if문 내부가 실행된다. return은 나를 호출한 곳으로 돌아가라 라는 의미이다. 그림에서 본 것과 같이 func(0)을 호출한 곳은 func(1)이다. 함수가 호출된 문장으로 돌아가고 다시 다음 문장을 실행하려고 하지만 함수의 마지막이므로 함수가 종료되고 함수 func(1)를 호출한 함수(func(2))로 돌아간다. 계속 리턴되다가, 처음 함수를 호출한 func(5) 문장까지 돌아가 main함수가 종료되며 프로그램이 정상종료하게 된다.&lt;/p&gt;
&lt;hr 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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 재귀가 어려운 이유는 프로그램의 기본적 이론이 약하기 때문이라고 생각한다. 재귀를 이해하기 위해서는 &lt;u&gt;&lt;b&gt;함수, 매개변수, 호출, 조건문, 결과값 리턴&lt;/b&gt;&lt;/u&gt; 등등의 정확한 이해가 필요하다. 본인이 재귀가 어렵다면 방금 언급한 것들을 다시 공부해보는 것을 추천한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알고리즘</category>
      <category>algorithm</category>
      <category>Python</category>
      <category>recurive</category>
      <category>recusion</category>
      <category>알고리즘</category>
      <category>재귀</category>
      <category>재귀호출</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>함수</category>
      <author>코딩딩</author>
      <guid isPermaLink="true">https://itcrowd2016.tistory.com/82</guid>
      <comments>https://itcrowd2016.tistory.com/82#entry82comment</comments>
      <pubDate>Wed, 16 Sep 2020 19:49:58 +0900</pubDate>
    </item>
    <item>
      <title>[python] 코딩테스트 문제에서 입력처리 정리</title>
      <link>https://itcrowd2016.tistory.com/81</link>
      <description>&lt;p&gt;알고리즘 강의를 하다보면 생각보다 많은 학생들이 입력에서 막혀서 시간을 허비하는 것을 봤다.&lt;/p&gt;
&lt;p&gt;이번 기회에 정리해 놓으면 한 분이라도 도움이 될것 같아서 정리해보도록 하겠다!! ^-^&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;코딩테스트에서는 대게 input파일이 주어진다.&lt;/p&gt;
&lt;p&gt;문제를 풀때 입력을 줘야하는데 가장 간단한 방법은 input 텍스트를 복사해서 프로그램을 실행하고 콘솔창에 붙여넣기 해주는 것이다.&lt;/p&gt;
&lt;p&gt;하지만 이 방법은 디버깅시에 귀찮기도 하고, 가끔 발생하는 pycharm 콘솔창 오류를 만나면 난감하다.&lt;/p&gt;
&lt;p&gt;이 때, &lt;u&gt;&lt;b&gt;input 파일을 텍스트 파일로 저장하고 바로 읽어서 실행&lt;/b&gt;&lt;/u&gt;할 수 있도록 설정하면 편하다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;파일로 입력받기&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;sys 모듈 임포트&lt;/li&gt;
&lt;li&gt;표준 입력을 파일/읽기로 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1596201238069&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys

#표준입력을 파일로 설정
sys.stdin = open(&quot;input.txt&quot;,&quot;r&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;한줄을 읽어서 정수로 변환&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;input()&amp;nbsp; : 한줄을 읽어옴&lt;/li&gt;
&lt;li&gt;int() : 정수로 변환&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1596201365343&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;N = int(input())
print(N)
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;한줄을 읽고 공백으로 구분된 문자를 입력받기&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;input().split(구분문자) : 한줄을 읽고 구분문자로 나눠서 문자로 이뤄진 리스트로 입력받음&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1596201689610&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(input().split())
# a b c  # 콘솔창에 입력하면
['a', 'b', 'c']	#문자로 입력됨&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;한줄을 읽고 공백으로 구분된 문자를 정수로 변환&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;map(형식,리스트) : 리스트에 있는 데이터를 형식에 맞춰 변환함&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1596201879103&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;N,M = map(int,input().split())
# 1 2	#입력
print(N,M)
# 1 2	#출력&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span&gt;이 경우 위와 같이 리스트에 있는 요소의 갯수에 맞춰서 변수의 개수(N,M 두개면 입력도 2개)를 해줘야 함.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;u&gt;변수는 2개를 설정하고 입력을 3개를 주면 아래와 같은 오류&lt;/u&gt;가 뜸.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그래서 이 명령은 &lt;u&gt;내가 입력받을 데이터의 갯수를 명확히 알때 사용&lt;/u&gt;해야한다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1596202003920&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;N,M = map(int,input().split())
1 2 3	#입력
Traceback (most recent call last):
  File &quot;&amp;lt;input&amp;gt;&quot;, line 1, in &amp;lt;module&amp;gt;
ValueError: too many values to unpack (expected 2)&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1차원 배열(리스트) 입력받기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;그러면 입력데이터가 여러개이거나 몇개인지 미리 알수 없는경우에는 어떻게 할까?&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;map(int,input().split()) : 한줄 입력받아 공백으로 나눈 문자열 리스트를 int형으로 변환&lt;/li&gt;
&lt;li&gt;list() : 괄호안의 데이터를 리스트로 묶음&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1596202354109&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;arr = list(map(int,input().split()))
&amp;gt;&amp;gt;&amp;gt; 1 2 3 4 5	#입력
print(arr)
[1, 2, 3, 4, 5] #숫자형 리스트로 입력을 받아 arr변수에 저장됨
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;이어진 숫자를 한자리씩 나눠서 리스트에 저장 : &lt;u&gt;문자열 리스트&lt;/u&gt;로 저장&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;input() : 한줄을 읽어옴 (구분문자가 없다/ 문자열로 읽어옴)&lt;/p&gt;
&lt;pre id=&quot;code_1596203321068&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(input())		#한줄을 입력받아 그대로 출력
&amp;gt;&amp;gt;&amp;gt; 12345			#입력
12345				#하나의 문자열로 출력됨

arr = list(input())	#한줄을 입력받아서 list함수로 감싸면?
&amp;gt;&amp;gt;&amp;gt; 12345			#입력
print(arr)
['1', '2', '3', '4', '5']	#문자 하나씩을 리스트로 변환함&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;이어진 숫자를 한자리씩 나눠서 리스트에 저장 : &lt;u&gt;숫자형 리스트&lt;/u&gt;로 저장&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;map() 함수를 이용해서 문자열을 숫자로 변환한 후 list() 함수를 이용해서 리스트로 변환해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1596203488140&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;arr = list(map(int,input()))	#map을 이용해서 문자열을 -&amp;gt; 숫자로
&amp;gt;&amp;gt;&amp;gt; 12345	#입력
print(arr)
[1, 2, 3, 4, 5]		#숫자형리스트로 입력됨&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;N행으로 이뤄진 2차원 배열 입력받기&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리스트 내포 : 리스트를 생성할때 반복문을 사용할 수 있도록 해줌&lt;/li&gt;
&lt;li&gt;lst = [ &lt;span style=&quot;color: #006dd7;&quot;&gt;반복내용&lt;/span&gt; &lt;span style=&quot;color: #ee2323;&quot;&gt;for _ in range(반복횟수)&lt;/span&gt;]&lt;/li&gt;
&lt;li&gt;이렇게 쓰면 반복횟수만큼 반복할 내용을 수행한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1596203856573&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;N = int(input())	#행 정보 입력받기
&amp;gt;&amp;gt;&amp;gt; 3				#입력

#리스트 내포를 이용하여 N번 반복하며 한줄읽고 공백문자로 나눠서 숫자형으로 변환하고
#리스트(1차원배열)로 만들어 2차원 배열로 완성
arr = [list(map(int,input().split())) for _ in range(N)]	
&amp;gt;&amp;gt;&amp;gt; 1 2 3		#공백으로 구분되어서 총 3행이 입력됨
&amp;gt;&amp;gt;&amp;gt; 4 5 6
&amp;gt;&amp;gt;&amp;gt; 7 8 9
print(arr)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]	#출력하면 2차원리스트로 입력된 것 확인됨&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;입력을 받는 명령어를 처음보면 여러 명령들이 겹쳐있기 때문에 한번에 이해하기도 기억하기도 쉽지 않다. 위에서 정리한 대로 학습한다면 달달 외우지 않고 이해해서 사용할 수 있을 것이다!!&lt;/p&gt;
&lt;p&gt;도움이 되었다면 공감/댓글은 사랑입니다 ^0^&lt;/p&gt;</description>
      <category>알고리즘/TIP - python</category>
      <category>input</category>
      <category>stuin</category>
      <category>SWEA</category>
      <category>배열</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>입력</category>
      <category>코딩테스트</category>
      <category>파이썬</category>
      <category>표준입력</category>
      <author>코딩딩</author>
      <guid isPermaLink="true">https://itcrowd2016.tistory.com/81</guid>
      <comments>https://itcrowd2016.tistory.com/81#entry81comment</comments>
      <pubDate>Fri, 31 Jul 2020 23:03:39 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2638. 치즈 - python</title>
      <link>https://itcrowd2016.tistory.com/80</link>
      <description>&lt;p&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2638&quot;&gt;https://www.acmicpc.net/problem/2638&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1595925395072&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;2638번: 치즈&quot; data-og-description=&quot;첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5&amp;le;N, M&amp;le;100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 표&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2638&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2638&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b4U4Ij/hyGUHFCZk7/hF4tc044U8jc0LwqmyBwn0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/UE47r/hyGWnZPXXj/j6G7ykLVtd70eEzN144eck/img.jpg?width=246&amp;amp;height=239&amp;amp;face=0_0_246_239,https://scrap.kakaocdn.net/dn/h4RU0/hyGUMfRYr2/jgSibcSgnJKw0Rwc7dxLbK/img.jpg?width=246&amp;amp;height=234&amp;amp;face=0_0_246_234&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2638&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2638&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b4U4Ij/hyGUHFCZk7/hF4tc044U8jc0LwqmyBwn0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/UE47r/hyGWnZPXXj/j6G7ykLVtd70eEzN144eck/img.jpg?width=246&amp;amp;height=239&amp;amp;face=0_0_246_239,https://scrap.kakaocdn.net/dn/h4RU0/hyGUMfRYr2/jgSibcSgnJKw0Rwc7dxLbK/img.jpg?width=246&amp;amp;height=234&amp;amp;face=0_0_246_234');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;2638번: 치즈&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5&amp;le;N, M&amp;le;100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 표&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6GUe1/btqF63oGwwd/GU2bX4iBezL6LeSrtzEzwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6GUe1/btqF63oGwwd/GU2bX4iBezL6LeSrtzEzwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6GUe1/btqF63oGwwd/GU2bX4iBezL6LeSrtzEzwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6GUe1%2FbtqF63oGwwd%2FGU2bX4iBezL6LeSrtzEzwK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;h3 data-ke-size=&quot;size23&quot;&gt;문제풀이&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공기와 2변 이상 접촉한 치즈가 사라지는데 치즈가 모두 녹는데 걸리는 시간 구하는 문제
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;탐색 (bfs) 문제&lt;/li&gt;
&lt;li&gt;공기 접촉면이 2인 구역을 찾아야함 : find 함수로 구현&lt;/li&gt;
&lt;li&gt;찾은 치즈를 녹이고 녹인 치즈 갯수 알아냄 : melt 함수로 구현&lt;/li&gt;
&lt;li&gt;find함수와 melt 함수를 반복해서 실행하고 녹인 치즈가 0개이면 종료하고 그 때 시간을 알아냄&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;find 함수
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;0,0 좌표에서 부터 bfs 탐색을 수행함.&lt;/li&gt;
&lt;li&gt;현 좌표에서 상하좌우에 인접한 좌표를 탐색해 나감.
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;모눈종이를 벗어나면 탐색 중지&lt;/li&gt;
&lt;li&gt;치즈를 발견하면 (1이라면) 2로 표시해서 한번 발견됨을 표시&lt;/li&gt;
&lt;li&gt;치즈를 발견하는데 이미 한번 발견되었던(즉, 1변을 찾은/ 2라고 표시된) 치즈라면 3으로 표시해서 녹일 치즈임을 나타냄&lt;/li&gt;
&lt;li&gt;모눈종이라면 (0이라면) 방문표시 하고(나는 5로 표시) 다른 치즈를 탐색하기 위해서 큐에 좌표 담음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;melt 함수
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;맵을 순회하면서 3으로 표시된 갯수세기&lt;/li&gt;
&lt;li&gt;다음 find함수 실행을 위해서 상태 변경해주기
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;5 ( 방문한 모눈종이) -&amp;gt; 0&lt;/li&gt;
&lt;li&gt;2 (한변만 공기접촉한 치즈) -&amp;gt; 1&lt;/li&gt;
&lt;li&gt;3 (2변이상 공기접촉한 치즈) -&amp;gt; 0 (녹아 없어지므로)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;소스코드 - python&lt;/h3&gt;
&lt;pre id=&quot;code_1595926642394&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dr = [-1,0,1,0]
dc = [0,1,0,-1]
def find(r,c):
    q = []
    q.append([r,c])
    m[r][c] = 5
    while q:
        cur = q.pop(0)
        for k in range(4):
            nr = cur[0] + dr[k]
            nc = cur[1] + dc[k]
            if nr &amp;lt; 0 or nr &amp;gt;= N or nc &amp;lt; 0 or nc &amp;gt;=M : continue
            if m[nr][nc] == 5 : continue
            elif m[nr][nc] == 1 : m[nr][nc] = 2
            elif m[nr][nc] == 2 : m[nr][nc] = 3
            elif m[nr][nc] == 0 :
                m[nr][nc] = 5
                q.append([nr,nc])

def melt():
    cnt = 0
    for i in range(N):
        for j in range(M):
            if m[i][j] == 5 : m[i][j] = 0
            if m[i][j] == 2 : m[i][j] = 1
            if m[i][j] == 3 :
                cnt += 1
                m[i][j] = 0
    return cnt

N,M = map(int,input().split())
m = [ list(map(int,input().split())) for _ in range(N)]
time = 0
m_cnt = 0
while True:
    find(0,0)
    m_cnt = melt()
    if m_cnt == 0 : break
    time += 1
print(time)
&lt;/code&gt;&lt;/pre&gt;</description>
      <category>알고리즘/백준</category>
      <category>BFS</category>
      <category>boj</category>
      <category>Python</category>
      <category>너비우선탐색</category>
      <category>백준</category>
      <category>치즈</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>탐색</category>
      <category>파이썬</category>
      <author>코딩딩</author>
      <guid isPermaLink="true">https://itcrowd2016.tistory.com/80</guid>
      <comments>https://itcrowd2016.tistory.com/80#entry80comment</comments>
      <pubDate>Tue, 28 Jul 2020 17:59:39 +0900</pubDate>
    </item>
  </channel>
</rss>