{
    "componentChunkName": "component---src-templates-blog-template-js",
    "path": "/boj-17144/",
    "result": {"data":{"cur":{"id":"fc068d57-c070-546f-97bb-9cb11d5ad3f2","html":"<h2 id=\"문제\" style=\"position:relative;\"><a href=\"#%EB%AC%B8%EC%A0%9C\" aria-label=\"문제 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>문제</h2>\n<p><a href=\"https://www.acmicpc.net/problem/17144\">https://www.acmicpc.net/problem/17144</a></p>\n<p>미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사과는 뛰어난 코딩 실력을 이용해 각 칸 (r, c)에 있는 미세먼지의 양을 실시간으로 모니터링하는 시스템을 개발했다. (r, c)는 r행 c열을 의미한다.<br>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 34.44444444444444%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAi0lEQVQoz52RSQrFMAxDe/8rtgfIKvM8ucjQ8gv9i8YgFELyLOONXmrOyd57p1ortdYePsZ4vPut7Q0G4VPOmWKMrBACu3OO7z8Dkc4YQ9ZahuAMl1IyeCnhcewkhCDv/S2tNY+9lPBKhnEBQzoASynfgVgAQBgZEEgptQ68loJkgKaUuAESo9k/4Akf0yc9ehD1cQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"17144-map.png\"\n        title=\"17144-map.png\"\n        src=\"/static/61b538c6e61dc44607f1b1b84f751efe/37523/17144-map.png\"\n        srcset=\"/static/61b538c6e61dc44607f1b1b84f751efe/e9ff0/17144-map.png 180w,\n/static/61b538c6e61dc44607f1b1b84f751efe/f21e7/17144-map.png 360w,\n/static/61b538c6e61dc44607f1b1b84f751efe/37523/17144-map.png 720w,\n/static/61b538c6e61dc44607f1b1b84f751efe/302a4/17144-map.png 1080w,\n/static/61b538c6e61dc44607f1b1b84f751efe/07a9c/17144-map.png 1440w,\n/static/61b538c6e61dc44607f1b1b84f751efe/7ca1f/17144-map.png 1890w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span><br>\n공기청정기는 항상 1번 열에 설치되어 있고, 크기는 두 행을 차지한다. 공기청정기가 설치되어 있지 않은 칸에는 미세먼지가 있고, (r, c)에 있는 미세먼지의 양은 Ar,c이다.</p>\n<p>1초 동안 아래 적힌 일이 순서대로 일어난다.</p>\n<ol>\n<li>미세먼지가 확산된다. 확산은 미세먼지가 있는 모든 칸에서 동시에 일어난다.\n<ul>\n<li>(r, c)에 있는 미세먼지는 인접한 네 방향으로 확산된다.</li>\n<li>인접한 방향에 공기청정기가 있거나, 칸이 없으면 그 방향으로는 확산이 일어나지 않는다.</li>\n<li>확산되는 양은 Ar,c/5이고 소수점은 버린다.</li>\n<li>(r, c)에 남은 미세먼지의 양은 Ar,c - (Ar,c/5)×(확산된 방향의 개수) 이다.</li>\n</ul>\n</li>\n<li>공기청정기가 작동한다.\n<ul>\n<li>공기청정기에서는 바람이 나온다.</li>\n<li>위쪽 공기청정기의 바람은 반시계방향으로 순환하고, 아래쪽 공기청정기의 바람은 시계방향으로 순환한다.</li>\n<li>바람이 불면 미세먼지가 바람의 방향대로 모두 한 칸씩 이동한다.</li>\n<li>공기청정기에서 부는 바람은 미세먼지가 없는 바람이고, 공기청정기로 들어간 미세먼지는 모두 정화된다.</li>\n</ul>\n</li>\n</ol>\n<p>다음은 확산의 예시이다.<br>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 50.55555555555556%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA4ElEQVQoz52R2wqEMAxE/f+PE3zwscjK6greWm29oJhlApVa1MUthFaTnsykATlr27Z9R8zzTMMw0DRNNI4jGWN4t3k37ArIW24SlwEUQlAYhtxAKXVaewq0Beu6Mqzve+q6jrTWDMYZgdyyLAc3t0AUAwI1Ukq2CttN0/A/5KD2J9C3AQguJ0lCURSxyrZtn1u2Xa1NKKuqarf8+FFsAayWZckqMQaAMQK/8aVCv6iua4bkeU5xHDMclv8GFsWHrQKUpi/KsjdJqQ7A2xm6RXgQqIFFzM0Yzd9QjdleKfwCX/wQgUzjZ2QAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"17144-spread.png\"\n        title=\"17144-spread.png\"\n        src=\"/static/1e652d1f4211764fac49cf708c4e6a5b/37523/17144-spread.png\"\n        srcset=\"/static/1e652d1f4211764fac49cf708c4e6a5b/e9ff0/17144-spread.png 180w,\n/static/1e652d1f4211764fac49cf708c4e6a5b/f21e7/17144-spread.png 360w,\n/static/1e652d1f4211764fac49cf708c4e6a5b/37523/17144-spread.png 720w,\n/static/1e652d1f4211764fac49cf708c4e6a5b/302a4/17144-spread.png 1080w,\n/static/1e652d1f4211764fac49cf708c4e6a5b/07a9c/17144-spread.png 1440w,\n/static/1e652d1f4211764fac49cf708c4e6a5b/b6e50/17144-spread.png 1862w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span><br>\n공기청정기의 바람은 다음과 같은 방향으로 순환한다.<br>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 33.888888888888886%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAp0lEQVQoz52R2wrDIBBE8///57u5EDXxkosvKsmU3WIpKZSmC8OwsIxn3QaXOs+T/TgOlFKQc2ZPKbGT6kz192quYVXbtkFrjWmaMM8zuzGG9VcgBVjrsO87Yoz8wLquHEj0twKp2lZCCIFhGND3Pbqug5QS4zh+zP5EGIJHCOFFSE6URH6LsB7EWgvnHK9Z112WBUqp+yuTiOr5jxbeew6n41D/7SgPU1Ajs8fvOykAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"17144-wind.png\"\n        title=\"17144-wind.png\"\n        src=\"/static/82f295949187422fdaff42048d08a8f1/37523/17144-wind.png\"\n        srcset=\"/static/82f295949187422fdaff42048d08a8f1/e9ff0/17144-wind.png 180w,\n/static/82f295949187422fdaff42048d08a8f1/f21e7/17144-wind.png 360w,\n/static/82f295949187422fdaff42048d08a8f1/37523/17144-wind.png 720w,\n/static/82f295949187422fdaff42048d08a8f1/302a4/17144-wind.png 1080w,\n/static/82f295949187422fdaff42048d08a8f1/07a9c/17144-wind.png 1440w,\n/static/82f295949187422fdaff42048d08a8f1/da952/17144-wind.png 1872w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span><br>\n방의 정보가 주어졌을 때, T초가 지난 후 구사과의 방에 남아있는 미세먼지의 양을 구해보자.</p>\n<hr>\n<h2 id=\"입력\" style=\"position:relative;\"><a href=\"#%EC%9E%85%EB%A0%A5\" aria-label=\"입력 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>입력</h2>\n<p>첫째 줄에 R, C, T (6 ≤ R, C ≤ 50, 1 ≤ T ≤ 1,000) 가 주어진다.</p>\n<p>둘째 줄부터 R개의 줄에 Ar,c (-1 ≤ Ar,c ≤ 1,000)가 주어진다. 공기청정기가 설치된 곳은 Ar,c가 -1이고, 나머지 값은 미세먼지의 양이다. -1은 2번 위아래로 붙어져 있고, 가장 윗 행, 아랫 행과 두 칸이상 떨어져 있다.</p>\n<hr>\n<h2 id=\"출력\" style=\"position:relative;\"><a href=\"#%EC%B6%9C%EB%A0%A5\" aria-label=\"출력 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>출력</h2>\n<p>첫째 줄에 T초가 지난 후 구사과 방에 남아있는 미세먼지의 양을 출력한다.</p>\n<hr>\n<p><strong>예제 입력 1</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token number\">7</span> <span class=\"token number\">8</span> <span class=\"token number\">1</span>\n<span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">9</span>\n<span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">3</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">8</span>\n<span class=\"token operator\">-</span><span class=\"token number\">1</span> <span class=\"token number\">0</span> <span class=\"token number\">5</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">22</span> <span class=\"token number\">0</span>\n<span class=\"token operator\">-</span><span class=\"token number\">1</span> <span class=\"token number\">8</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span>\n<span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">10</span> <span class=\"token number\">43</span> <span class=\"token number\">0</span>\n<span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">5</span> <span class=\"token number\">0</span> <span class=\"token number\">15</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span>\n<span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">40</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">20</span> <span class=\"token number\">0</span></code></pre></div>\n<p><strong>예제 출력 1</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token number\">188</span></code></pre></div>\n<p><strong>힌트</strong>\n미세먼지의 확산이 일어나면 다음과 같은 상태가 된다.<br>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 33.888888888888886%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAkElEQVQoz53R2QrDIBAF0Pz/JzaP6YsLblERtykzMKUJpWAFuSB6vOIGtzHnfGet9TJba5Sfe+5j+4aNMaCUAud5QowRQgg0vfdgrSV4GWQopUSJOKNLIG96Hgfs+4Mg5xxdoJQitPe+3jDnRBC3w6dKKanhMogHcs4EGmNAa00phKC1vxryp2AjRPjpmL/AF9yqJecq5UPtAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"17144-ex1.png\"\n        title=\"17144-ex1.png\"\n        src=\"/static/ba4ff54460a254a3680c0119e7b5b97f/37523/17144-ex1.png\"\n        srcset=\"/static/ba4ff54460a254a3680c0119e7b5b97f/e9ff0/17144-ex1.png 180w,\n/static/ba4ff54460a254a3680c0119e7b5b97f/f21e7/17144-ex1.png 360w,\n/static/ba4ff54460a254a3680c0119e7b5b97f/37523/17144-ex1.png 720w,\n/static/ba4ff54460a254a3680c0119e7b5b97f/302a4/17144-ex1.png 1080w,\n/static/ba4ff54460a254a3680c0119e7b5b97f/07a9c/17144-ex1.png 1440w,\n/static/ba4ff54460a254a3680c0119e7b5b97f/3126c/17144-ex1.png 1876w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span><br>\n공기청정기가 작동한 이후 상태는 아래와 같다.<br>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 33.888888888888886%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAkUlEQVQoz5WQ2woDIQxE9/+/UrpPIt5dEW8pE3BpCws1MEweksMkB/3UnJN9jEG11i+11tjXzPLPOp5gpRSKMd7y3pMxhpxzDN4GppQYBIdCCLeQ8m/gGjrPFwkhGKC1ZuhKuQVE9d7pui4GQIBaa0kpxf32yVjIOTME6ZAKLqXkH24nxA8XEICVFD2S44In4BvAMyW9LfpVaAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"17144-ex2.png\"\n        title=\"17144-ex2.png\"\n        src=\"/static/d2d57deee72906d11a1bcb468c39e563/37523/17144-ex2.png\"\n        srcset=\"/static/d2d57deee72906d11a1bcb468c39e563/e9ff0/17144-ex2.png 180w,\n/static/d2d57deee72906d11a1bcb468c39e563/f21e7/17144-ex2.png 360w,\n/static/d2d57deee72906d11a1bcb468c39e563/37523/17144-ex2.png 720w,\n/static/d2d57deee72906d11a1bcb468c39e563/302a4/17144-ex2.png 1080w,\n/static/d2d57deee72906d11a1bcb468c39e563/07a9c/17144-ex2.png 1440w,\n/static/d2d57deee72906d11a1bcb468c39e563/3707e/17144-ex2.png 1878w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n<hr>\n<h2 id=\"-algorithm\" style=\"position:relative;\"><a href=\"#-algorithm\" aria-label=\" algorithm permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🔍 Algorithm</h2>\n<p><strong>시뮬레이션</strong></p>\n<h2 id=\"-logic\" style=\"position:relative;\"><a href=\"#-logic\" aria-label=\" logic permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>💻 Logic</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">spread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token comment\"># A 리스트 deepcopy</span>\n    A_copy <span class=\"token operator\">=</span> copy<span class=\"token punctuation\">.</span>deepcopy<span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>R<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>C<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> A_copy<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">></span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span>\n                value <span class=\"token operator\">=</span> A_copy<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">//</span> <span class=\"token number\">5</span>\n                <span class=\"token comment\"># 상하좌우 계산</span>\n                <span class=\"token keyword\">for</span> k <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n                    next_x <span class=\"token operator\">=</span> j <span class=\"token operator\">+</span> dx<span class=\"token punctuation\">[</span>k<span class=\"token punctuation\">]</span>\n                    next_y <span class=\"token operator\">=</span> i <span class=\"token operator\">+</span> dy<span class=\"token punctuation\">[</span>k<span class=\"token punctuation\">]</span>\n                    <span class=\"token comment\"># boundary 체크 후, 확산</span>\n                    <span class=\"token keyword\">if</span> <span class=\"token number\">0</span> <span class=\"token operator\">&lt;=</span> next_x <span class=\"token operator\">&lt;</span> C <span class=\"token keyword\">and</span> <span class=\"token number\">0</span> <span class=\"token operator\">&lt;=</span> next_y <span class=\"token operator\">&lt;</span> R<span class=\"token punctuation\">:</span>\n                        <span class=\"token keyword\">if</span> A<span class=\"token punctuation\">[</span>next_y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>next_x<span class=\"token punctuation\">]</span> <span class=\"token operator\">!=</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n                            A<span class=\"token punctuation\">[</span>next_y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>next_x<span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> value\n                            A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">-=</span> value</code></pre></div>\n<ul>\n<li>미세먼지 확산시키는 함수\n<ul>\n<li><strong>A 리스트 deepcopy</strong><br>\n반복문을 도는 중에 확산시키기 전의 상태를 사용해야 하기 때문에<br>\n기존 리스트 <code class=\"language-text\">A</code>를 <strong>deepcopy</strong> 해서 저장한 후 사용</li>\n<li><strong>상하좌우 계산</strong><br>\n미세먼지가 있으면 확산시킬 <code class=\"language-text\">value</code> 계산한 후, 상하좌우 계산</li>\n<li><strong>boundary 체크 후, 확산</strong><br>\n<strong>boundary</strong> 안에 위치하는지 확인하고 다음 값이 <strong>-1</strong>이 아니면 <code class=\"language-text\">value</code>를 더해서 확산</li>\n</ul>\n</li>\n</ul>\n<hr>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">wind</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> d<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token comment\"># x, y : 공기청정기 위치 , d : 1이면 위로 확산, -1이면 아래로 확산</span>\n    temp <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\n    A<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n    <span class=\"token comment\"># 공기청정기 위치한 행 확산</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>x<span class=\"token operator\">+</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> C<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n    <span class=\"token comment\"># 마지막 열 확산</span>\n    <span class=\"token keyword\">if</span> d <span class=\"token operator\">==</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>y<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>C<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>C<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n    <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>y<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> R<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>C<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>C<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n    <span class=\"token comment\"># 맨 위 or 맨 아래 행 확산</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>C<span class=\"token operator\">-</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> x<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> \n        <span class=\"token keyword\">if</span> d <span class=\"token operator\">==</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n        <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>R<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>R<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n    <span class=\"token comment\"># 첫번째 열 확산</span>\n    <span class=\"token keyword\">if</span> d <span class=\"token operator\">==</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n    <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>R<span class=\"token operator\">-</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp</code></pre></div>\n<ul>\n<li>공기청정기 작동 함수\n<ul>\n<li><strong>x, y, d 를 인자로 받음</strong><br>\n<code class=\"language-text\">x, y</code> : 공기청정기 위치 , <code class=\"language-text\">d</code> : <strong>1</strong>이면 위로 확산, <strong>-1</strong>이면 아래로 확산</li>\n<li><strong>각 행과 열에 맞춰 한칸씩 이동하는 코드 작성</strong><br>\n<strong>마지막 열</strong>과 <strong>첫번째 열</strong>은 <code class=\"language-text\">d</code>에 따라 방향이 다름</li>\n</ul>\n</li>\n</ul>\n<hr>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">calculate</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    count <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>R<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>C<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">></span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span>\n                count <span class=\"token operator\">+=</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span>\n    <span class=\"token keyword\">return</span> count</code></pre></div>\n<ul>\n<li>남아있는 미세먼지 양 계산하는 함수</li>\n</ul>\n<hr>\n<h2 id=\"-code\" style=\"position:relative;\"><a href=\"#-code\" aria-label=\" code permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🧩 Code</h2>\n<details><summary>전체 코드 확인</summary>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> sys<span class=\"token punctuation\">,</span> copy\n<span class=\"token keyword\">from</span> collections <span class=\"token keyword\">import</span> deque\nR<span class=\"token punctuation\">,</span> C<span class=\"token punctuation\">,</span> T <span class=\"token operator\">=</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">int</span><span class=\"token punctuation\">,</span> sys<span class=\"token punctuation\">.</span>stdin<span class=\"token punctuation\">.</span>readline<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\nA <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span>\npurifier <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span>\ndx <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">]</span>\ndy <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\n<span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>R<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    temp <span class=\"token operator\">=</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">map</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">int</span><span class=\"token punctuation\">,</span> sys<span class=\"token punctuation\">.</span>stdin<span class=\"token punctuation\">.</span>readline<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>C<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">if</span> temp<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n            purifier<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>j<span class=\"token punctuation\">,</span> i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n    A<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">spread</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token comment\"># A 리스트 deepcopy</span>\n    A_copy <span class=\"token operator\">=</span> copy<span class=\"token punctuation\">.</span>deepcopy<span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>R<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>C<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> A_copy<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">></span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span>\n                value <span class=\"token operator\">=</span> A_copy<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">//</span> <span class=\"token number\">5</span>\n                <span class=\"token comment\"># 상하좌우 계산</span>\n                <span class=\"token keyword\">for</span> k <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n                    next_x <span class=\"token operator\">=</span> j <span class=\"token operator\">+</span> dx<span class=\"token punctuation\">[</span>k<span class=\"token punctuation\">]</span>\n                    next_y <span class=\"token operator\">=</span> i <span class=\"token operator\">+</span> dy<span class=\"token punctuation\">[</span>k<span class=\"token punctuation\">]</span>\n                    <span class=\"token comment\"># boundary 체크 후, 확산</span>\n                    <span class=\"token keyword\">if</span> <span class=\"token number\">0</span> <span class=\"token operator\">&lt;=</span> next_x <span class=\"token operator\">&lt;</span> C <span class=\"token keyword\">and</span> <span class=\"token number\">0</span> <span class=\"token operator\">&lt;=</span> next_y <span class=\"token operator\">&lt;</span> R<span class=\"token punctuation\">:</span>\n                        <span class=\"token keyword\">if</span> A<span class=\"token punctuation\">[</span>next_y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>next_x<span class=\"token punctuation\">]</span> <span class=\"token operator\">!=</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n                            A<span class=\"token punctuation\">[</span>next_y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>next_x<span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> value\n                            A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">-=</span> value\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">wind</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> d<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token comment\"># x, y : 공기청정기 위치 , d : 1이면 위로 확산, -1이면 아래로 확산</span>\n    temp <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\n    A<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n    <span class=\"token comment\"># 공기청정기 위치한 행 확산</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>x<span class=\"token operator\">+</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> C<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n    <span class=\"token comment\"># 마지막 열 확산</span>\n    <span class=\"token keyword\">if</span> d <span class=\"token operator\">==</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>y<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>C<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>C<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n    <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>y<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> R<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>C<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>C<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n    <span class=\"token comment\"># 맨 위 or 맨 아래 행 확산</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>C<span class=\"token operator\">-</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> x<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> \n        <span class=\"token keyword\">if</span> d <span class=\"token operator\">==</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n        <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>R<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>R<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n    <span class=\"token comment\"># 첫번째 열 확산</span>\n    <span class=\"token keyword\">if</span> d <span class=\"token operator\">==</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n    <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>R<span class=\"token operator\">-</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> temp<span class=\"token punctuation\">,</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> temp\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">calculate</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    count <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>R<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>C<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">></span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span>\n                count <span class=\"token operator\">+=</span> A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span>\n    <span class=\"token keyword\">return</span> count\n\n<span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>T<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    spread<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    wind<span class=\"token punctuation\">(</span>purifier<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> purifier<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span>\n    wind<span class=\"token punctuation\">(</span>purifier<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> purifier<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>calculate<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></code></pre></div>\n</details>\n<h2 id=\"-review\" style=\"position:relative;\"><a href=\"#-review\" aria-label=\" review permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>📝 Review</h2>\n<p>전형적인 시뮬레이션 문제</p>\n<p>공기청정기 작동시키고 바람에 따라 한칸씩 이동하는 방법을 어떻게 효율적이게 할까 고민하다가<br>\n일단 그냥 편한대로 풀었다..  더 효율적인 방법이 있는지 찾아봐야 할 듯</p>\n<div class=\"table-of-contents\">\n<ul>\n<li><a href=\"#%EB%AC%B8%EC%A0%9C\">문제</a></li>\n<li><a href=\"#%EC%9E%85%EB%A0%A5\">입력</a></li>\n<li><a href=\"#%EC%B6%9C%EB%A0%A5\">출력</a></li>\n<li><a href=\"#-algorithm\">🔍 Algorithm</a></li>\n<li><a href=\"#-logic\">💻 Logic</a></li>\n<li><a href=\"#-code\">🧩 Code</a></li>\n<li><a href=\"#-review\">📝 Review</a></li>\n</ul>\n</div>","excerpt":"문제 https://www.acmicpc.net/problem/17144 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사과는 뛰어난 코딩 실력을 이용해 각 칸 (r, c)에 있는 미세먼지의 양을 실시간으로 모니터링하는 시스템을 개발했다. (r, c)는 r행 c열을 의미한다.  공기청정기는 항상 1번 열에 설치되어 있고, 크기는 두 행을 차지한다. 공기청정기가 설치되어 있지 않은 칸에는 미세먼지가 있고, (r, c)에 있는 미세먼지의 양은 Ar,c이다. 1초 동안 아래 적힌 일이 순서대로 일어난다. 미세먼지가 확산된다. 확산은 미세먼지가 있는 모든 칸에서 동시에 일어난다. (r, c)에 있는 미세먼지는 인접한 네 방향으로 확산된다. 인접한 방향에 공기청정기가 있거나, 칸이 없으면 그 방향으로는 확산이 일어나지 않는다. 확산되는 양은 Ar,c/5이…","frontmatter":{"date":"January 08, 2022","title":"[BOJ] 17144번: 미세먼지 안녕! (Python)","categories":"Algorithm","author":"JFe","emoji":"💻"},"fields":{"slug":"/boj-17144/"}},"next":{"id":"96224eed-f35f-5455-b3de-5f01dc5b9b56","html":"<h2 id=\"문제\" style=\"position:relative;\"><a href=\"#%EB%AC%B8%EC%A0%9C\" aria-label=\"문제 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>문제</h2>\n<p><a href=\"https://www.acmicpc.net/problem/15685\">https://www.acmicpc.net/problem/15685</a></p>\n<p>드래곤 커브는 다음과 같은 세 가지 속성으로 이루어져 있으며, 이차원 좌표 평면 위에서 정의된다. 좌표 평면의 x축은 → 방향, y축은 ↓ 방향이다.</p>\n<ol>\n<li>시작 점</li>\n<li>시작 방향</li>\n<li>세대</li>\n</ol>\n<p>0세대 드래곤 커브는 아래 그림과 같은 길이가 1인 선분이다. 아래 그림은 (0, 0)에서 시작하고, 시작 방향은 오른쪽인 0세대 드래곤 커브이다.<br>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 6.666666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAABCAYAAADeko4lAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAIUlEQVQI12P4jwP8+/cPTP/4+fP/t+/fofQPuBxMHh0AAI1AT1EM1fmQAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"15685-0g.png\"\n        title=\"15685-0g.png\"\n        src=\"/static/85dc5b8e20750ddf81cde8c44351b486/37523/15685-0g.png\"\n        srcset=\"/static/85dc5b8e20750ddf81cde8c44351b486/e9ff0/15685-0g.png 180w,\n/static/85dc5b8e20750ddf81cde8c44351b486/f21e7/15685-0g.png 360w,\n/static/85dc5b8e20750ddf81cde8c44351b486/37523/15685-0g.png 720w,\n/static/85dc5b8e20750ddf81cde8c44351b486/302a4/15685-0g.png 1080w,\n/static/85dc5b8e20750ddf81cde8c44351b486/7bf07/15685-0g.png 1128w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span><br>\n1세대 드래곤 커브는 0세대 드래곤 커브를 끝 점을 기준으로 시계 방향으로 90도 회전시킨 다음 0세대 드래곤 커브의 끝 점에 붙인 것이다. 끝 점이란 시작 점에서 선분을 타고 이동했을 때, 가장 먼 거리에 있는 점을 의미한다.<br>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 17.22222222222222%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAARklEQVQI132OWwrAMAgEc//7+kTdUJq0EDD7IeIygwNNas2qd3N3qNnfr/uZAfTKB9qgiCAzr7KrcEOqBmYGESEivq77cAI66u5gJIo/3QAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"15685-1g.png\"\n        title=\"15685-1g.png\"\n        src=\"/static/b8c109e18f33c15d02dad596e0420854/37523/15685-1g.png\"\n        srcset=\"/static/b8c109e18f33c15d02dad596e0420854/e9ff0/15685-1g.png 180w,\n/static/b8c109e18f33c15d02dad596e0420854/f21e7/15685-1g.png 360w,\n/static/b8c109e18f33c15d02dad596e0420854/37523/15685-1g.png 720w,\n/static/b8c109e18f33c15d02dad596e0420854/302a4/15685-1g.png 1080w,\n/static/b8c109e18f33c15d02dad596e0420854/ae953/15685-1g.png 1132w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span><br>\n2세대 드래곤 커브도 1세대를 만든 방법을 이용해서 만들 수 있다. (파란색 선분은 새로 추가된 선분을 나타낸다)<br>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 27.22222222222222%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAVUlEQVQY06WPgQqAMAhE/f+PjTFJ2S40JiyK1oI6kEMO3yH5QGYW08RavZR6yWaip6AfJsGxA9srlGaw5gtrQBOLA/gP7K6q318+g1aRgOXMt6IRcAc8do0Z+C69pQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"15685-2g.png\"\n        title=\"15685-2g.png\"\n        src=\"/static/ebab3afe09dd91ff0c547a0324bb09a0/37523/15685-2g.png\"\n        srcset=\"/static/ebab3afe09dd91ff0c547a0324bb09a0/e9ff0/15685-2g.png 180w,\n/static/ebab3afe09dd91ff0c547a0324bb09a0/f21e7/15685-2g.png 360w,\n/static/ebab3afe09dd91ff0c547a0324bb09a0/37523/15685-2g.png 720w,\n/static/ebab3afe09dd91ff0c547a0324bb09a0/302a4/15685-2g.png 1080w,\n/static/ebab3afe09dd91ff0c547a0324bb09a0/f32b7/15685-2g.png 1136w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span><br>\n3세대 드래곤 커브도 2세대 드래곤 커브를 이용해 만들 수 있다. 아래 그림은 3세대 드래곤 커브이다.<br>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 27.22222222222222%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAe0lEQVQY042OSwrEMAxDe/+zdhho4trxTyWZdpMhUG8kY/mhDdNk5lDzAInCzLEXwcGGo9K498hPc37HtgJ6JGpzRCaKODICLPKXew3szT5F8CVF4d7UUGoFC0NVl9AlMCIREWPv+nh3h9xNXwHn4OPVDOfJqESQ1pbAC0ByjC2ZY6RWAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"15685-3g.png\"\n        title=\"15685-3g.png\"\n        src=\"/static/a79d35d56207a52c6d7461a68a85bc69/37523/15685-3g.png\"\n        srcset=\"/static/a79d35d56207a52c6d7461a68a85bc69/e9ff0/15685-3g.png 180w,\n/static/a79d35d56207a52c6d7461a68a85bc69/f21e7/15685-3g.png 360w,\n/static/a79d35d56207a52c6d7461a68a85bc69/37523/15685-3g.png 720w,\n/static/a79d35d56207a52c6d7461a68a85bc69/302a4/15685-3g.png 1080w,\n/static/a79d35d56207a52c6d7461a68a85bc69/33c9c/15685-3g.png 1133w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span><br>\n즉, K(K > 1)세대 드래곤 커브는 K-1세대 드래곤 커브를 끝 점을 기준으로 90도 시계 방향 회전 시킨 다음, 그것을 끝 점에 붙인 것이다.</p>\n<p>크기가 100×100인 격자 위에 드래곤 커브가 N개 있다. 이때, 크기가 1×1인 정사각형의 네 꼭짓점이 모두 드래곤 커브의 일부인 정사각형의 개수를 구하는 프로그램을 작성하시오. 격자의 좌표는 (x, y)로 나타내며, 0 ≤ x ≤ 100, 0 ≤ y ≤ 100만 유효한 좌표이다.</p>\n<hr>\n<h2 id=\"입력\" style=\"position:relative;\"><a href=\"#%EC%9E%85%EB%A0%A5\" aria-label=\"입력 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>입력</h2>\n<p>첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커브의 시작 점, d는 시작 방향, g는 세대이다. (0 ≤ x, y ≤ 100, 0 ≤ d ≤ 3, 0 ≤ g ≤ 10)</p>\n<p>입력으로 주어지는 드래곤 커브는 격자 밖으로 벗어나지 않는다. 드래곤 커브는 서로 겹칠 수 있다.</p>\n<p>방향은 0, 1, 2, 3 중 하나이고, 다음을 의미한다.</p>\n<ul>\n<li>0: x좌표가 증가하는 방향 (→)</li>\n<li>1: y좌표가 감소하는 방향 (↑)</li>\n<li>2: x좌표가 감소하는 방향 (←)</li>\n<li>3: y좌표가 증가하는 방향 (↓)</li>\n</ul>\n<hr>\n<h2 id=\"출력\" style=\"position:relative;\"><a href=\"#%EC%B6%9C%EB%A0%A5\" aria-label=\"출력 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>출력</h2>\n<p>첫째 줄에 크기가 1×1인 정사각형의 네 꼭짓점이 모두 드래곤 커브의 일부인 것의 개수를 출력한다.</p>\n<hr>\n<p><strong>예제 입력 1</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token number\">3</span>\n<span class=\"token number\">3</span> <span class=\"token number\">3</span> <span class=\"token number\">0</span> <span class=\"token number\">1</span>\n<span class=\"token number\">4</span> <span class=\"token number\">2</span> <span class=\"token number\">1</span> <span class=\"token number\">3</span>\n<span class=\"token number\">4</span> <span class=\"token number\">2</span> <span class=\"token number\">2</span> <span class=\"token number\">1</span></code></pre></div>\n<p><strong>예제 출력 1</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token number\">4</span></code></pre></div>\n<p><strong>예제 입력 2</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token number\">4</span>\n<span class=\"token number\">3</span> <span class=\"token number\">3</span> <span class=\"token number\">0</span> <span class=\"token number\">1</span>\n<span class=\"token number\">4</span> <span class=\"token number\">2</span> <span class=\"token number\">1</span> <span class=\"token number\">3</span>\n<span class=\"token number\">4</span> <span class=\"token number\">2</span> <span class=\"token number\">2</span> <span class=\"token number\">1</span>\n<span class=\"token number\">2</span> <span class=\"token number\">7</span> <span class=\"token number\">3</span> <span class=\"token number\">4</span></code></pre></div>\n<p><strong>예제 출력 2</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token number\">11</span></code></pre></div>\n<p><strong>예제 입력 3</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token number\">10</span>\n<span class=\"token number\">5</span> <span class=\"token number\">5</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span>\n<span class=\"token number\">5</span> <span class=\"token number\">6</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span>\n<span class=\"token number\">5</span> <span class=\"token number\">7</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span>\n<span class=\"token number\">5</span> <span class=\"token number\">8</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span>\n<span class=\"token number\">5</span> <span class=\"token number\">9</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span>\n<span class=\"token number\">6</span> <span class=\"token number\">5</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span>\n<span class=\"token number\">6</span> <span class=\"token number\">6</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span>\n<span class=\"token number\">6</span> <span class=\"token number\">7</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span>\n<span class=\"token number\">6</span> <span class=\"token number\">8</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span>\n<span class=\"token number\">6</span> <span class=\"token number\">9</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span></code></pre></div>\n<p><strong>예제 출력 3</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token number\">8</span></code></pre></div>\n<p><strong>예제 입력 4</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token number\">4</span>\n<span class=\"token number\">50</span> <span class=\"token number\">50</span> <span class=\"token number\">0</span> <span class=\"token number\">10</span>\n<span class=\"token number\">50</span> <span class=\"token number\">50</span> <span class=\"token number\">1</span> <span class=\"token number\">10</span>\n<span class=\"token number\">50</span> <span class=\"token number\">50</span> <span class=\"token number\">2</span> <span class=\"token number\">10</span>\n<span class=\"token number\">50</span> <span class=\"token number\">50</span> <span class=\"token number\">3</span> <span class=\"token number\">10</span></code></pre></div>\n<p><strong>예제 출력 4</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token number\">1992</span></code></pre></div>\n<p><strong>힌트</strong>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 63.888888888888886%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABV0lEQVQ4y41Ti27DMAjM///nNqlr4zzsGAzOTbDYSteHFglhk+N0YBhqrdj3Hc3/nvfTuT6NvbIB2PHuMwLVipwJxAVE7Jbd6Igzti17fDDwlnMHNvCWyUEi4r6U0o0Lu7W7YfjwQ9oymPkhwT0zRNQVGFhV3F9owcgRKur3ZqqKwRT1gChmTvjmFUUL9ACZWscUwZUWfM4r8jRBVB4JrQfFyQQzR3zEBUuYUZg6yDCWHEPGmCJu8xV1jRB9otD7I+UgTPhaRyAEqJXfFFovVUCJMYWI621FWvi5wl7O0djAK6TWDj6XrAfpfEmg7R+EZlXU1Z5BZ4xWwRYJccr9kd4Sth969Mf8+eHSQljHDZRfKLTBbQP8arDXmH6TVJATg6mg1vsHsTFzwvPKWcBmr93bmpUiXbERWXLOuVdyrmZoO2jJRIQwBd/bvzvayO1zXAh3+9/+/wASE/1uNOh9TwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"15685-hint.png\"\n        title=\"15685-hint.png\"\n        src=\"/static/536f16d364486749ea3d167fd8afebdd/37523/15685-hint.png\"\n        srcset=\"/static/536f16d364486749ea3d167fd8afebdd/e9ff0/15685-hint.png 180w,\n/static/536f16d364486749ea3d167fd8afebdd/f21e7/15685-hint.png 360w,\n/static/536f16d364486749ea3d167fd8afebdd/37523/15685-hint.png 720w,\n/static/536f16d364486749ea3d167fd8afebdd/96e92/15685-hint.png 779w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n<hr>\n<h2 id=\"-algorithm\" style=\"position:relative;\"><a href=\"#-algorithm\" aria-label=\" algorithm permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🔍 Algorithm</h2>\n<p><strong>시뮬레이션</strong></p>\n<h2 id=\"-logic\" style=\"position:relative;\"><a href=\"#-logic\" aria-label=\" logic permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>💻 Logic</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">draw_curve</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> d<span class=\"token punctuation\">,</span> g<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token comment\"># 0세대 드래곤 커브 그리기</span>\n    dir_list <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>d<span class=\"token punctuation\">]</span>\n    <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span>\n    next_x <span class=\"token operator\">=</span> x <span class=\"token operator\">+</span> dx<span class=\"token punctuation\">[</span>d<span class=\"token punctuation\">]</span>\n    next_y <span class=\"token operator\">=</span> y <span class=\"token operator\">+</span> dy<span class=\"token punctuation\">[</span>d<span class=\"token punctuation\">]</span>\n    <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>next_y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>next_x<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span>\n    cur <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">(</span>next_x<span class=\"token punctuation\">,</span> next_y<span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n\n    <span class=\"token comment\"># g세대 드래곤 커브 그리기</span>\n    <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>g<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token comment\"># 이전 세대 선분 방향 리스트 복사</span>\n        temp <span class=\"token operator\">=</span> dir_list<span class=\"token punctuation\">.</span>copy<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>dir_list<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            x<span class=\"token punctuation\">,</span> y <span class=\"token operator\">=</span> cur<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n            d <span class=\"token operator\">=</span> dir_list<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n            <span class=\"token comment\"># 방향 90도 회전 후 다음 위치 계산</span>\n            <span class=\"token keyword\">if</span> d <span class=\"token operator\">==</span> <span class=\"token number\">3</span><span class=\"token punctuation\">:</span> next_d <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n            <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span> next_d <span class=\"token operator\">=</span> d <span class=\"token operator\">+</span> <span class=\"token number\">1</span>\n            next_x <span class=\"token operator\">=</span> x <span class=\"token operator\">+</span> dx<span class=\"token punctuation\">[</span>next_d<span class=\"token punctuation\">]</span>\n            next_y <span class=\"token operator\">=</span> y <span class=\"token operator\">+</span> dy<span class=\"token punctuation\">[</span>next_d<span class=\"token punctuation\">]</span>\n            temp<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>next_d<span class=\"token punctuation\">)</span>\n            <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>next_y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>next_x<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span>\n            cur<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>next_x<span class=\"token punctuation\">,</span> next_y<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n        <span class=\"token comment\"># 현재 세대 선분 방향 리스트 저장</span>\n        dir_list <span class=\"token operator\">=</span> temp<span class=\"token punctuation\">.</span>copy<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></code></pre></div>\n<ul>\n<li>주어진 정보에 맞게 드래곤 커브 그리는 함수\n<ul>\n<li><strong>0세대 드래곤 커브 그리기</strong><br>\n시작 위치 <code class=\"language-text\">x, y</code>에 해당하는 <code class=\"language-text\">map</code> 값을 <strong>1</strong>로 변경<br>\n시작 방향 <code class=\"language-text\">d</code>에 맞게 다음 위치에 해당하는 <code class=\"language-text\">map</code> 값도 <strong>1</strong>로 바꿔주고, <code class=\"language-text\">cur</code> 리스트에 <strong>append</strong></li>\n<li><strong>g세대 드래곤 커브 그리기</strong><br>\n주어진 세대 <code class=\"language-text\">g</code>에 맞게 반복문 진행</li>\n<li><strong>이전 세대 선분 방향 리스트 복사</strong><br>\n이전 세대 선분 방향 리스트인 <code class=\"language-text\">dir_list</code>를 <code class=\"language-text\">temp</code> 리스트에 <strong>copy</strong> 한 다음,<br>\n<code class=\"language-text\">dir_list</code>의 값을 <strong>pop</strong> 하면서 <code class=\"language-text\">dir_list</code>에 있던 만큼 반복문 진행</li>\n<li><strong>방향 90도 회전 후 다음 위치 계산</strong><br>\n<code class=\"language-text\">dir_list</code>에서 <strong>pop</strong>한 값 <code class=\"language-text\">d</code>를 <strong>90도 회전</strong>하기 위해 <strong>+1</strong> 해주고 (<code class=\"language-text\">d==3</code>이면 <strong>0</strong>으로), <code class=\"language-text\">next_d</code>는 <code class=\"language-text\">temp</code>에 <strong>append</strong><br>\n다음 위치 계산하고 해당하는 <code class=\"language-text\">map</code> 값을 <strong>1</strong>로 바꾼 다음, <code class=\"language-text\">cur</code>에 <strong>append</strong></li>\n<li><strong>현재 세대 선분 방향 리스트 저장</strong><br>\n<code class=\"language-text\">temp</code>에 저장된 현재 세대 선분 방향 리스트를 다시 <code class=\"language-text\">dir_list</code>에 <strong>copy</strong>하고 반복문 진행</li>\n</ul>\n</li>\n</ul>\n<hr>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token comment\"># 주어진 정보에 맞게 드래곤 커브 그리기</span>\n<span class=\"token keyword\">for</span> x<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> d<span class=\"token punctuation\">,</span> g <span class=\"token keyword\">in</span> curve_info<span class=\"token punctuation\">:</span>\n    draw_curve<span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> d<span class=\"token punctuation\">,</span> g<span class=\"token punctuation\">)</span>\n\n<span class=\"token comment\"># 네 꼭짓점이 모두 드래곤 커브의 일부인 정사각형 개수 구한 후, 출력</span>\ncount <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n<span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">100</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">100</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">1</span> <span class=\"token keyword\">and</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">1</span> <span class=\"token keyword\">and</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>i<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">1</span> <span class=\"token keyword\">and</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>i<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n                count <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>count<span class=\"token punctuation\">)</span></code></pre></div>\n<ul>\n<li><strong>주어진 정보에 맞게 드래곤 커브 그리기</strong><br>\n<code class=\"language-text\">curve_info</code>에 입력된 정보 <code class=\"language-text\">x, y, d, g</code> 를 이용해서 <code class=\"language-text\">draw_curve</code> 함수 실행</li>\n<li><strong>네 꼭짓점이 모두 드래곤 커브의 일부인 정사각형 개수 구한 후, 출력</strong><br>\n100x100 격자를 이중 for문을 통해 네 꼭짓점이 모두 <code class=\"language-text\">map</code> 값이 <strong>1</strong>이면 <code class=\"language-text\">count</code>를 해주고<br>\n<code class=\"language-text\">count</code> 값 출력</li>\n</ul>\n<hr>\n<h2 id=\"-code\" style=\"position:relative;\"><a href=\"#-code\" aria-label=\" code permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🧩 Code</h2>\n<details><summary>전체 코드 확인</summary>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> sys\nN <span class=\"token operator\">=</span> <span class=\"token builtin\">int</span><span class=\"token punctuation\">(</span>sys<span class=\"token punctuation\">.</span>stdin<span class=\"token punctuation\">.</span>readline<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\ncurve_info <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">[</span><span class=\"token builtin\">int</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> x <span class=\"token keyword\">in</span> sys<span class=\"token punctuation\">.</span>stdin<span class=\"token punctuation\">.</span>readline<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span> <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>N<span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n<span class=\"token builtin\">map</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span> <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">101</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span> <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">101</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\ndx <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">]</span>\ndy <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">draw_curve</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> d<span class=\"token punctuation\">,</span> g<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token comment\"># 0세대 드래곤 커브 그리기</span>\n    dir_list <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>d<span class=\"token punctuation\">]</span>\n    <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span>\n    next_x <span class=\"token operator\">=</span> x <span class=\"token operator\">+</span> dx<span class=\"token punctuation\">[</span>d<span class=\"token punctuation\">]</span>\n    next_y <span class=\"token operator\">=</span> y <span class=\"token operator\">+</span> dy<span class=\"token punctuation\">[</span>d<span class=\"token punctuation\">]</span>\n    <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>next_y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>next_x<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span>\n    cur <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">(</span>next_x<span class=\"token punctuation\">,</span> next_y<span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n\n    <span class=\"token comment\"># g세대 드래곤 커브 그리기</span>\n    <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>g<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token comment\"># 이전 세대 선분 방향 리스트 복사</span>\n        temp <span class=\"token operator\">=</span> dir_list<span class=\"token punctuation\">.</span>copy<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>dir_list<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            x<span class=\"token punctuation\">,</span> y <span class=\"token operator\">=</span> cur<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n            d <span class=\"token operator\">=</span> dir_list<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n            <span class=\"token comment\"># 방향 90도 회전 후 다음 위치 계산</span>\n            <span class=\"token keyword\">if</span> d <span class=\"token operator\">==</span> <span class=\"token number\">3</span><span class=\"token punctuation\">:</span> next_d <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n            <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span> next_d <span class=\"token operator\">=</span> d <span class=\"token operator\">+</span> <span class=\"token number\">1</span>\n            next_x <span class=\"token operator\">=</span> x <span class=\"token operator\">+</span> dx<span class=\"token punctuation\">[</span>next_d<span class=\"token punctuation\">]</span>\n            next_y <span class=\"token operator\">=</span> y <span class=\"token operator\">+</span> dy<span class=\"token punctuation\">[</span>next_d<span class=\"token punctuation\">]</span>\n            temp<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>next_d<span class=\"token punctuation\">)</span>\n            <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>next_y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>next_x<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span>\n            cur<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>next_x<span class=\"token punctuation\">,</span> next_y<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n        <span class=\"token comment\"># 현재 세대 선분 방향 리스트 저장</span>\n        dir_list <span class=\"token operator\">=</span> temp<span class=\"token punctuation\">.</span>copy<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token comment\"># 주어진 정보에 맞게 드래곤 커브 그리기</span>\n<span class=\"token keyword\">for</span> x<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> d<span class=\"token punctuation\">,</span> g <span class=\"token keyword\">in</span> curve_info<span class=\"token punctuation\">:</span>\n    draw_curve<span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">,</span> d<span class=\"token punctuation\">,</span> g<span class=\"token punctuation\">)</span>\n\n<span class=\"token comment\"># 네 꼭짓점이 모두 드래곤 커브의 일부인 정사각형 개수 구한 후, 출력</span>\ncount <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n<span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">100</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">100</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">1</span> <span class=\"token keyword\">and</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">1</span> <span class=\"token keyword\">and</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>i<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">1</span> <span class=\"token keyword\">and</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">[</span>i<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n                count <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>count<span class=\"token punctuation\">)</span></code></pre></div>\n</details>\n<h2 id=\"-review\" style=\"position:relative;\"><a href=\"#-review\" aria-label=\" review permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>📝 Review</h2>\n<p>주어진 방향이 규칙이 있을 것이라고 생각했고, 생각대로 주어진 방향을 이용하니 쉽게 90도 회전할 수 있었다.<br>\n드래곤 커브를 그리는 과정도, 검사하는 과정도 쉬웠지만<br>\n검사하는 과정에서 index를 하나씩 더 많게 계산해서 런타임 에러가 떴었다,,<br>\n시뮬레이션은 주어진 문제대로만 풀면 되니까 문제를 더 열심히 다시 읽자..!</p>\n<div class=\"table-of-contents\">\n<ul>\n<li><a href=\"#%EB%AC%B8%EC%A0%9C\">문제</a></li>\n<li><a href=\"#%EC%9E%85%EB%A0%A5\">입력</a></li>\n<li><a href=\"#%EC%B6%9C%EB%A0%A5\">출력</a></li>\n<li><a href=\"#-algorithm\">🔍 Algorithm</a></li>\n<li><a href=\"#-logic\">💻 Logic</a></li>\n<li><a href=\"#-code\">🧩 Code</a></li>\n<li><a href=\"#-review\">📝 Review</a></li>\n</ul>\n</div>","frontmatter":{"date":"January 03, 2022","title":"[BOJ] 15685번: 드래곤 커브 (Python)","categories":"Algorithm","author":"JFe","emoji":"💻"},"fields":{"slug":"/boj-15685/"}},"prev":{"id":"f27c10f9-9a67-52f8-92c1-70f4e53f4511","html":"<h2 id=\"문제\" style=\"position:relative;\"><a href=\"#%EB%AC%B8%EC%A0%9C\" aria-label=\"문제 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>문제</h2>\n<p><a href=\"https://www.acmicpc.net/problem/17140\">https://www.acmicpc.net/problem/17140</a></p>\n<p>크기가 3×3인 배열 A가 있다. 배열의 인덱스는 1부터 시작한다. 1초가 지날때마다 배열에 연산이 적용된다.</p>\n<ul>\n<li>R 연산: 배열 A의 모든 행에 대해서 정렬을 수행한다. 행의 개수 ≥ 열의 개수인 경우에 적용된다.</li>\n<li>C 연산: 배열 A의 모든 열에 대해서 정렬을 수행한다. 행의 개수 &#x3C; 열의 개수인 경우에 적용된다.</li>\n</ul>\n<p>한 행 또는 열에 있는 수를 정렬하려면, 각각의 수가 몇 번 나왔는지 알아야 한다. 그 다음, 수의 등장 횟수가 커지는 순으로, 그러한 것이 여러가지면 수가 커지는 순으로 정렬한다. 그 다음에는 배열 A에 정렬된 결과를 다시 넣어야 한다. 정렬된 결과를 배열에 넣을 때는, 수와 등장 횟수를 모두 넣으며, 순서는 수가 먼저이다.</p>\n<p>예를 들어, [3, 1, 1]에는 3이 1번, 1가 2번 등장한다. 따라서, 정렬된 결과는 [3, 1, 1, 2]가 된다. 다시 이 배열에는 3이 1번, 1이 2번, 2가 1번 등장한다. 다시 정렬하면 [2, 1, 3, 1, 1, 2]가 된다.</p>\n<p>정렬된 결과를 배열에 다시 넣으면 행 또는 열의 크기가 달라질 수 있다. R 연산이 적용된 경우에는 가장 큰 행을 기준으로 모든 행의 크기가 변하고, C 연산이 적용된 경우에는 가장 큰 열을 기준으로 모든 열의 크기가 변한다. 행 또는 열의 크기가 커진 곳에는 0이 채워진다. 수를 정렬할 때 0은 무시해야 한다. 예를 들어, [3, 2, 0, 0]을 정렬한 결과는 [3, 2]를 정렬한 결과와 같다.</p>\n<p>행 또는 열의 크기가 100을 넘어가는 경우에는 처음 100개를 제외한 나머지는 버린다.</p>\n<p>배열 A에 들어있는 수와 r, c, k가 주어졌을 때, A[r][c]에 들어있는 값이 k가 되기 위한 최소 시간을 구해보자.</p>\n<hr>\n<h2 id=\"입력\" style=\"position:relative;\"><a href=\"#%EC%9E%85%EB%A0%A5\" aria-label=\"입력 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>입력</h2>\n<p>첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100)</p>\n<p>둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다.</p>\n<hr>\n<h2 id=\"출력\" style=\"position:relative;\"><a href=\"#%EC%B6%9C%EB%A0%A5\" aria-label=\"출력 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>출력</h2>\n<p>A[r][c]에 들어있는 값이 k가 되기 위한 연산의 최소 시간을 출력한다. 100초가 지나도 A[r][c] = k가 되지 않으면 -1을 출력한다.</p>\n<hr>\n<h2 id=\"-algorithm\" style=\"position:relative;\"><a href=\"#-algorithm\" aria-label=\" algorithm permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🔍 Algorithm</h2>\n<p><strong>시뮬레이션, 정렬</strong></p>\n<h2 id=\"-logic\" style=\"position:relative;\"><a href=\"#-logic\" aria-label=\" logic permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>💻 Logic</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">sort</span><span class=\"token punctuation\">(</span>arr<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    d <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n    rt <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> arr<span class=\"token punctuation\">:</span>\n        <span class=\"token comment\"># 0은 무시</span>\n        <span class=\"token keyword\">if</span> i <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span> <span class=\"token keyword\">continue</span>\n        <span class=\"token comment\"># 값이 key에 있으면 ++</span>\n        <span class=\"token keyword\">if</span> i <span class=\"token keyword\">in</span> d<span class=\"token punctuation\">.</span>keys<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> d<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n        <span class=\"token comment\"># 없으면 key-value 추가</span>\n        <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span> d<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span>\n    <span class=\"token comment\"># key 기준 sort</span>\n    d <span class=\"token operator\">=</span> <span class=\"token builtin\">dict</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">sorted</span><span class=\"token punctuation\">(</span>d<span class=\"token punctuation\">.</span>items<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># value 기준 sort</span>\n    temp <span class=\"token operator\">=</span> <span class=\"token builtin\">sorted</span><span class=\"token punctuation\">(</span>d<span class=\"token punctuation\">.</span>items<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> key<span class=\"token operator\">=</span><span class=\"token keyword\">lambda</span> x<span class=\"token punctuation\">:</span>x<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token comment\"># 100개 지나면 버림</span>\n        <span class=\"token keyword\">if</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">100</span><span class=\"token punctuation\">:</span> <span class=\"token keyword\">break</span>\n        <span class=\"token comment\"># key, value 순으로 append</span>\n        rt<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n        rt<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">return</span> rt</code></pre></div>\n<ul>\n<li>주어진 조건에 맞게 한 배열을 정렬하는 함수\n<ul>\n<li><strong>수와 그 수의 등장 횟수를 key-value 형태로 dictionary에 저장</strong><br>\n값이 <strong>key에 있으면</strong> 해당 key의 <strong>value</strong>를 <strong>+1</strong><br>\n<strong>key에 없는 값이면</strong> 해당 key를 <strong>value</strong> <strong>1</strong>로 매칭해서 저장</li>\n<li><strong>Sort 과정</strong><br>\n등장 횟수가 같으면 수가 커지는 순으로 정렬해야 하기 때문에 먼저, <strong>key 기준으로 sort</strong><br>\n등장 횟수가 커지는 순으로 정렬해야 하기 때문에 <strong>value 기준으로 sort</strong></li>\n<li><strong>리스트에 저장 후 return</strong><br>\n결과가 튜플 형태로 리스트에 저장되어 있기 때문에 <code class=\"language-text\">rt</code> 리스트에 key, value 순으로 <strong>append</strong><br>\n크기가 <strong>100</strong>을 넘어가면 처음 100개를 제외하고 버려야해서 <strong>break</strong></li>\n</ul>\n</li>\n</ul>\n<hr>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">cal_R</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">global</span> row_size\n    <span class=\"token comment\"># 행마다 정렬하고 최대 길이 계산</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> sort<span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n        row_size <span class=\"token operator\">=</span> <span class=\"token builtin\">max</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> row_size<span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># 최대 길이보다 작으면 그만큼 0 추가</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">if</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&lt;</span> row_size<span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>row_size<span class=\"token operator\">-</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n                A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span></code></pre></div>\n<ul>\n<li>R 연산 함수\n<ul>\n<li><strong>행마다 정렬하고 최대 길이 계산</strong><br>\n반복문 돌면서 각 행마다 <code class=\"language-text\">sort</code> 함수 실행하고, <code class=\"language-text\">row_size</code> <strong>최대 길이</strong> 저장</li>\n<li><strong>최대 길이보다 작으면 그만큼 0 추가</strong></li>\n</ul>\n</li>\n</ul>\n<hr>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">cal_C</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">global</span> row_size<span class=\"token punctuation\">,</span> col_size\n    <span class=\"token comment\"># 열마다 정렬하고 최대 길이 계산</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>row_size<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        temp <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span>\n        <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>col_size<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            temp<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n            A<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n        temp <span class=\"token operator\">=</span> sort<span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">)</span>\n        <span class=\"token comment\"># 최대 길이보다 작으면 그만큼 0 추가</span>\n        <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> j <span class=\"token operator\">>=</span> col_size<span class=\"token punctuation\">:</span>\n                A<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span> <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>row_size<span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n            A<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> temp<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span>\n        col_size <span class=\"token operator\">=</span> <span class=\"token builtin\">max</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> col_size<span class=\"token punctuation\">)</span></code></pre></div>\n<ul>\n<li>C 연산 함수\n<ul>\n<li><strong>열마다 정렬하고 최대 길이 계산</strong><br>\n반복문 돌면서 각 열마다 값들을 새로운 <code class=\"language-text\">temp</code> 리스트에 저장한 후,<br>\n그 <code class=\"language-text\">temp</code> 리스트로 <code class=\"language-text\">sort</code> 함수 실행하고, <code class=\"language-text\">col_size</code> <strong>최대 길이</strong> 저장</li>\n<li><strong>최대 길이보다 작으면 그만큼 0 추가</strong></li>\n</ul>\n</li>\n</ul>\n<hr>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">count <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n<span class=\"token keyword\">while</span> <span class=\"token boolean\">True</span><span class=\"token punctuation\">:</span>\n    <span class=\"token comment\"># boundary 안에서 종료조건 확인</span>\n    <span class=\"token keyword\">if</span> <span class=\"token number\">0</span> <span class=\"token operator\">&lt;</span> r <span class=\"token operator\">&lt;=</span> col_size <span class=\"token keyword\">and</span> <span class=\"token number\">0</span> <span class=\"token operator\">&lt;</span> c <span class=\"token operator\">&lt;=</span> row_size<span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">if</span> A<span class=\"token punctuation\">[</span>r<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>c<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> k<span class=\"token punctuation\">:</span> \n            <span class=\"token keyword\">break</span>\n    <span class=\"token comment\"># 100초 지나면 종료하고 -1 출력</span>\n    <span class=\"token keyword\">if</span> count <span class=\"token operator\">>=</span> <span class=\"token number\">100</span><span class=\"token punctuation\">:</span>\n        count <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span>\n        <span class=\"token keyword\">break</span>\n    <span class=\"token comment\"># 행의 개수 >= 열의 개수면 R 연산</span>\n    <span class=\"token keyword\">if</span> row_size <span class=\"token operator\">&lt;=</span> col_size<span class=\"token punctuation\">:</span> cal_R<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># 행의 개수 &lt; 열의 개수면 C 연산</span>\n    <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span> cal_C<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    count <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>count<span class=\"token punctuation\">)</span></code></pre></div>\n<ul>\n<li>조건에 맞게 함수 실행하고, 종료 조건이 맞으면 걸린 시간 <code class=\"language-text\">count</code> 출력</li>\n</ul>\n<hr>\n<h2 id=\"-code\" style=\"position:relative;\"><a href=\"#-code\" aria-label=\" code permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🧩 Code</h2>\n<details><summary>전체 코드 확인</summary>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> sys\nr<span class=\"token punctuation\">,</span> c<span class=\"token punctuation\">,</span> k <span class=\"token operator\">=</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">int</span><span class=\"token punctuation\">,</span> sys<span class=\"token punctuation\">.</span>stdin<span class=\"token punctuation\">.</span>readline<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\nA <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">[</span><span class=\"token builtin\">int</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> x <span class=\"token keyword\">in</span> sys<span class=\"token punctuation\">.</span>stdin<span class=\"token punctuation\">.</span>readline<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span> <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\nrow_size<span class=\"token punctuation\">,</span> col_size <span class=\"token operator\">=</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span>\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">sort</span><span class=\"token punctuation\">(</span>arr<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    d <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n    rt <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> arr<span class=\"token punctuation\">:</span>\n        <span class=\"token comment\"># 0은 무시</span>\n        <span class=\"token keyword\">if</span> i <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span> <span class=\"token keyword\">continue</span>\n        <span class=\"token comment\"># 값이 key에 있으면 ++</span>\n        <span class=\"token keyword\">if</span> i <span class=\"token keyword\">in</span> d<span class=\"token punctuation\">.</span>keys<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> d<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n        <span class=\"token comment\"># 없으면 key-value 추가</span>\n        <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span> d<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span>\n    <span class=\"token comment\"># key 기준 sort</span>\n    d <span class=\"token operator\">=</span> <span class=\"token builtin\">dict</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">sorted</span><span class=\"token punctuation\">(</span>d<span class=\"token punctuation\">.</span>items<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># value 기준 sort</span>\n    temp <span class=\"token operator\">=</span> <span class=\"token builtin\">sorted</span><span class=\"token punctuation\">(</span>d<span class=\"token punctuation\">.</span>items<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> key<span class=\"token operator\">=</span><span class=\"token keyword\">lambda</span> x<span class=\"token punctuation\">:</span>x<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token comment\"># 100개 지나면 버림</span>\n        <span class=\"token keyword\">if</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">100</span><span class=\"token punctuation\">:</span> <span class=\"token keyword\">break</span>\n        <span class=\"token comment\"># key, value 순으로 append</span>\n        rt<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n        rt<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">return</span> rt\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">cal_R</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">global</span> row_size\n    <span class=\"token comment\"># 행마다 정렬하고 최대 길이 계산</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> sort<span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n        row_size <span class=\"token operator\">=</span> <span class=\"token builtin\">max</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> row_size<span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># 최대 길이보다 작으면 그만큼 0 추가</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">if</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&lt;</span> row_size<span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>row_size<span class=\"token operator\">-</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n                A<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">cal_C</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">global</span> row_size<span class=\"token punctuation\">,</span> col_size\n    <span class=\"token comment\"># 열마다 정렬하고 최대 길이 계산</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>row_size<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        temp <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span>\n        <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>col_size<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            temp<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>A<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n            A<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n        temp <span class=\"token operator\">=</span> sort<span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">)</span>\n        <span class=\"token comment\"># 최대 길이보다 작으면 그만큼 0 추가</span>\n        <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> j <span class=\"token operator\">>=</span> col_size<span class=\"token punctuation\">:</span>\n                A<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span> <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>row_size<span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n            A<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> temp<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span>\n        col_size <span class=\"token operator\">=</span> <span class=\"token builtin\">max</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>temp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> col_size<span class=\"token punctuation\">)</span>\n\ncount <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n<span class=\"token keyword\">while</span> <span class=\"token boolean\">True</span><span class=\"token punctuation\">:</span>\n    <span class=\"token comment\"># boundary 안에서 종료조건 확인</span>\n    <span class=\"token keyword\">if</span> <span class=\"token number\">0</span> <span class=\"token operator\">&lt;</span> r <span class=\"token operator\">&lt;=</span> col_size <span class=\"token keyword\">and</span> <span class=\"token number\">0</span> <span class=\"token operator\">&lt;</span> c <span class=\"token operator\">&lt;=</span> row_size<span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">if</span> A<span class=\"token punctuation\">[</span>r<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>c<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> k<span class=\"token punctuation\">:</span> \n            <span class=\"token keyword\">break</span>\n    <span class=\"token comment\"># 100초 지나면 종료하고 -1 출력</span>\n    <span class=\"token keyword\">if</span> count <span class=\"token operator\">>=</span> <span class=\"token number\">100</span><span class=\"token punctuation\">:</span>\n        count <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span>\n        <span class=\"token keyword\">break</span>\n    <span class=\"token comment\"># 행의 개수 >= 열의 개수면 R 연산</span>\n    <span class=\"token keyword\">if</span> row_size <span class=\"token operator\">&lt;=</span> col_size<span class=\"token punctuation\">:</span> cal_R<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># 행의 개수 &lt; 열의 개수면 C 연산</span>\n    <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span> cal_C<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    count <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>count<span class=\"token punctuation\">)</span></code></pre></div>\n</details>\n<h2 id=\"-review\" style=\"position:relative;\"><a href=\"#-review\" aria-label=\" review permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>📝 Review</h2>\n<p>정렬하는 방법은 바로 딕셔너리가 생각나서 딕셔너리를 사용해서 빠르게 해결했다.<br>\n행 기준으로 정렬하는 것까지는 빠르게 할 수 있었는데 열 기준으로 정렬하는 과정에서 어떻게 효율적으로 할지 고민을 조오금 했다.<br>\n전치행렬로 바꿔서 하면 되겠다고 생각했는데 numpy는 사용 못한다고 해서 그냥 반복문으로 품,,</p>\n<p>r, c, k 입력에서 r, c 값이 3보다 큰 값이 들어올 수도 있다는 것을 생각 못해서 런타임에러 났었음,,</p>\n<div class=\"table-of-contents\">\n<ul>\n<li><a href=\"#%EB%AC%B8%EC%A0%9C\">문제</a></li>\n<li><a href=\"#%EC%9E%85%EB%A0%A5\">입력</a></li>\n<li><a href=\"#%EC%B6%9C%EB%A0%A5\">출력</a></li>\n<li><a href=\"#-algorithm\">🔍 Algorithm</a></li>\n<li><a href=\"#-logic\">💻 Logic</a></li>\n<li><a href=\"#-code\">🧩 Code</a></li>\n<li><a href=\"#-review\">📝 Review</a></li>\n</ul>\n</div>","frontmatter":{"date":"January 08, 2022","title":"[BOJ] 17140번: 이차원 배열과 연산 (Python)","categories":"Algorithm","author":"JFe","emoji":"💻"},"fields":{"slug":"/boj-17140/"}},"site":{"siteMetadata":{"siteUrl":"https://jfelog.netlify.app","comments":{"utterances":{"repo":"Go-Jaecheol/Jfe_Blog"}}}}},"pageContext":{"slug":"/boj-17144/","nextSlug":"/boj-15685/","prevSlug":"/boj-17140/"}},
    "staticQueryHashes": ["1073350324","1956554647","2938748437"]}