{
    "componentChunkName": "component---src-templates-blog-template-js",
    "path": "/boj-14499/",
    "result": {"data":{"cur":{"id":"2f1c1534-26a4-5754-8f0e-84f31a2512ca","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/14499\">https://www.acmicpc.net/problem/14499</a></p>\n<p>크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 이 지도의 위에 주사위가 하나 놓여져 있으며, 주사위의 전개도는 아래와 같다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">  <span class=\"token number\">2</span>\n<span class=\"token number\">4</span> <span class=\"token number\">1</span> <span class=\"token number\">3</span>\n  <span class=\"token number\">5</span>\n  <span class=\"token number\">6</span></code></pre></div>\n<p>주사위는 지도 위에 윗 면이 1이고, 동쪽을 바라보는 방향이 3인 상태로 놓여져 있으며, 놓여져 있는 곳의 좌표는 (x, y) 이다. 가장 처음에 주사위에는 모든 면에 0이 적혀져 있다.</p>\n<p>지도의 각 칸에는 정수가 하나씩 쓰여져 있다. 주사위를 굴렸을 때, 이동한 칸에 쓰여 있는 수가 0이면, 주사위의 바닥면에 쓰여 있는 수가 칸에 복사된다. 0이 아닌 경우에는 칸에 쓰여 있는 수가 주사위의 바닥면으로 복사되며, 칸에 쓰여 있는 수는 0이 된다.</p>\n<p>주사위를 놓은 곳의 좌표와 이동시키는 명령이 주어졌을 때, 주사위가 이동했을 때 마다 상단에 쓰여 있는 값을 구하는 프로그램을 작성하시오.</p>\n<p>주사위는 지도의 바깥으로 이동시킬 수 없다. 만약 바깥으로 이동시키려고 하는 경우에는 해당 명령을 무시해야 하며, 출력도 하면 안 된다.</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, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다.</p>\n<p>둘째 줄부터 N개의 줄에 지도에 쓰여 있는 수가 북쪽부터 남쪽으로, 각 줄은 서쪽부터 동쪽 순서대로 주어진다. 주사위를 놓은 칸에 쓰여 있는 수는 항상 0이다. 지도의 각 칸에 쓰여 있는 수는 10 미만의 자연수 또는 0이다.</p>\n<p>마지막 줄에는 이동하는 명령이 순서대로 주어진다. 동쪽은 1, 서쪽은 2, 북쪽은 3, 남쪽은 4로 주어진다.</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>이동할 때마다 주사위의 윗 면에 쓰여 있는 수를 출력한다. 만약 바깥으로 이동시키려고 하는 경우에는 해당 명령을 무시해야 하며, 출력도 하면 안 된다.</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\">4</span> <span class=\"token number\">2</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">8</span>\n<span class=\"token number\">0</span> <span class=\"token number\">2</span>\n<span class=\"token number\">3</span> <span class=\"token number\">4</span>\n<span class=\"token number\">5</span> <span class=\"token number\">6</span>\n<span class=\"token number\">7</span> <span class=\"token number\">8</span>\n<span class=\"token number\">4</span> <span class=\"token number\">4</span> <span class=\"token number\">4</span> <span class=\"token number\">1</span> <span class=\"token number\">3</span> <span class=\"token number\">3</span> <span class=\"token number\">3</span> <span class=\"token number\">2</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\">0</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\">3</span> <span class=\"token number\">3</span> <span class=\"token number\">1</span> <span class=\"token number\">1</span> <span class=\"token number\">9</span>\n<span class=\"token number\">1</span> <span class=\"token number\">2</span> <span class=\"token number\">3</span>\n<span class=\"token number\">4</span> <span class=\"token number\">0</span> <span class=\"token number\">5</span>\n<span class=\"token number\">6</span> <span class=\"token number\">7</span> <span class=\"token number\">8</span>\n<span class=\"token number\">1</span> <span class=\"token number\">3</span> <span class=\"token number\">2</span> <span class=\"token number\">2</span> <span class=\"token number\">4</span> <span class=\"token number\">4</span> <span class=\"token number\">1</span> <span class=\"token number\">1</span> <span class=\"token number\">3</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\">0</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">3</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">1</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">6</span>\n<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\">2</span> <span class=\"token number\">2</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">16</span>\n<span class=\"token number\">0</span> <span class=\"token number\">2</span>\n<span class=\"token number\">3</span> <span class=\"token number\">4</span>\n<span class=\"token number\">4</span> <span class=\"token number\">4</span> <span class=\"token number\">4</span> <span class=\"token number\">4</span> <span class=\"token number\">1</span> <span class=\"token number\">1</span> <span class=\"token number\">1</span> <span class=\"token number\">1</span> <span class=\"token number\">3</span> <span class=\"token number\">3</span> <span class=\"token number\">3</span> <span class=\"token number\">3</span> <span class=\"token number\">2</span> <span class=\"token number\">2</span> <span class=\"token number\">2</span> <span class=\"token number\">2</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\">0</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">0</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\">3</span> <span class=\"token number\">3</span> <span class=\"token number\">0</span> <span class=\"token number\">0</span> <span class=\"token number\">16</span>\n<span class=\"token number\">0</span> <span class=\"token number\">1</span> <span class=\"token number\">2</span>\n<span class=\"token number\">3</span> <span class=\"token number\">4</span> <span class=\"token number\">5</span>\n<span class=\"token number\">6</span> <span class=\"token number\">7</span> <span class=\"token number\">8</span>\n<span class=\"token number\">4</span> <span class=\"token number\">4</span> <span class=\"token number\">1</span> <span class=\"token number\">1</span> <span class=\"token number\">3</span> <span class=\"token number\">3</span> <span class=\"token number\">2</span> <span class=\"token number\">2</span> <span class=\"token number\">4</span> <span class=\"token number\">4</span> <span class=\"token number\">1</span> <span class=\"token number\">1</span> <span class=\"token number\">3</span> <span class=\"token number\">3</span> <span class=\"token number\">2</span> <span class=\"token number\">2</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\">0</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">6</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">8</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">2</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">8</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">2</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">8</span>\n<span class=\"token number\">0</span>\n<span class=\"token number\">2</span></code></pre></div>\n<hr>\n<h1 id=\"14499-주사위-굴리기---python\" style=\"position:relative;\"><a href=\"#14499-%EC%A3%BC%EC%82%AC%EC%9C%84-%EA%B5%B4%EB%A6%AC%EA%B8%B0---python\" aria-label=\"14499 주사위 굴리기   python 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>[14499] 주사위 굴리기 - Python</h1>\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\">class</span> <span class=\"token class-name\">Dice</span><span class=\"token punctuation\">:</span>\n    top<span class=\"token punctuation\">,</span> front<span class=\"token punctuation\">,</span> right<span class=\"token punctuation\">,</span> left<span class=\"token punctuation\">,</span> back<span class=\"token punctuation\">,</span> bottom <span class=\"token operator\">=</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\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span>\n    value <span class=\"token operator\">=</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\">6</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n    <span class=\"token keyword\">def</span> <span class=\"token function\">move_dice</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">,</span> d<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>\n            temp <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>top\n            self<span class=\"token punctuation\">.</span>top <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>left\n            self<span class=\"token punctuation\">.</span>left <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>bottom\n            self<span class=\"token punctuation\">.</span>bottom <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>right\n            self<span class=\"token punctuation\">.</span>right <span class=\"token operator\">=</span> temp\n        <span class=\"token keyword\">elif</span> d <span class=\"token operator\">==</span> <span class=\"token number\">2</span><span class=\"token punctuation\">:</span>\n            temp <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>top\n            self<span class=\"token punctuation\">.</span>top <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>right\n            self<span class=\"token punctuation\">.</span>right <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>bottom\n            self<span class=\"token punctuation\">.</span>bottom <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>left\n            self<span class=\"token punctuation\">.</span>left <span class=\"token operator\">=</span> temp\n        <span class=\"token keyword\">elif</span> d <span class=\"token operator\">==</span> <span class=\"token number\">3</span><span class=\"token punctuation\">:</span>\n            temp <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>top\n            self<span class=\"token punctuation\">.</span>top <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>back\n            self<span class=\"token punctuation\">.</span>back <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>bottom\n            self<span class=\"token punctuation\">.</span>bottom <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>front\n            self<span class=\"token punctuation\">.</span>front <span class=\"token operator\">=</span> temp\n        <span class=\"token keyword\">elif</span> d <span class=\"token operator\">==</span> <span class=\"token number\">4</span><span class=\"token punctuation\">:</span>\n            temp <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>top\n            self<span class=\"token punctuation\">.</span>top <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>front\n            self<span class=\"token punctuation\">.</span>front <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>bottom\n            self<span class=\"token punctuation\">.</span>bottom <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>back\n            self<span class=\"token punctuation\">.</span>back <span class=\"token operator\">=</span> temp</code></pre></div>\n<ul>\n<li><strong>Dice 클래스</strong>\n<ul>\n<li><strong>주사위 상태 저장</strong><br>\n전개도에 맞게 <code class=\"language-text\">top, front, right, left, back, bottom</code> 에 초기 값 저장</li>\n<li><strong>주사위에 쓰여지는 수 저장</strong><br>\n주사위의 각 면에 쓰여지는 수를 저장하기 위해 <code class=\"language-text\">value</code> 리스트 생성</li>\n<li><strong>주사위 이동시키는 메소드</strong><br>\n명령 <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\">dice <span class=\"token operator\">=</span> Dice<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\ncur <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">(</span>y<span class=\"token punctuation\">,</span> x<span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n<span class=\"token keyword\">while</span> order<span class=\"token punctuation\">:</span>\n    d <span class=\"token operator\">=</span> order<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span>\n    <span class=\"token keyword\">del</span> order<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span>\n    cur_x<span class=\"token punctuation\">,</span> cur_y <span class=\"token operator\">=</span> cur<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># 다음 좌표 계산</span>\n    next_x <span class=\"token operator\">=</span> cur_x <span class=\"token operator\">+</span> dx<span class=\"token punctuation\">[</span>d<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\n    next_y <span class=\"token operator\">=</span> cur_y <span class=\"token operator\">+</span> dy<span class=\"token punctuation\">[</span>d<span class=\"token operator\">-</span><span class=\"token number\">1</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> next_x <span class=\"token operator\">&lt;</span> M <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> N<span class=\"token punctuation\">:</span>\n        dice<span class=\"token punctuation\">.</span>move_dice<span class=\"token punctuation\">(</span>d<span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>dice<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">[</span>dice<span class=\"token punctuation\">.</span>top<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n        <span class=\"token comment\"># 주사위 바닥면의 수를 복사할지, 칸에 쓰여 있는 수를 복사할지</span>\n        <span class=\"token keyword\">if</span> <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\">0</span><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> dice<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">[</span>dice<span class=\"token punctuation\">.</span>bottom<span class=\"token punctuation\">]</span>\n        <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n            dice<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">[</span>dice<span class=\"token punctuation\">.</span>bottom<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <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>\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\">0</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 keyword\">else</span><span class=\"token punctuation\">:</span>\n        cur<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>cur_x<span class=\"token punctuation\">,</span> cur_y<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></code></pre></div>\n<ul>\n<li>입력된 명령에 맞게 주사위 이동시키며 주사위 윗 면에 적힌 수 출력\n<ul>\n<li><strong>다음 좌표 계산</strong><br>\n<code class=\"language-text\">order</code>에서 받은 명령 <code class=\"language-text\">d</code>와 현재 위치 <code class=\"language-text\">cur</code>에서 <strong>pop</strong>한 값으로<br>\n다음 위치인 <code class=\"language-text\">next_x</code> , <code class=\"language-text\">next_y</code> 계산</li>\n<li><strong>boundary 체크</strong><br>\n<strong>boundary 안에 속할 때</strong>만 주사위를 이동하고 <code class=\"language-text\">dice.value[dice.top]</code> 값을 출력함<br>\n<strong>아닐 때</strong>는 현재 <code class=\"language-text\">cur_x</code> , <code class=\"language-text\">cur_y</code> 를 다시 <code class=\"language-text\">cur</code>에 <strong>append</strong></li>\n<li><strong>주사위 바닥면의 수를 복사할지, 칸에 쓰여 있는 수를 복사할지</strong><br>\n다음 위치 칸의 값이 <strong>0이면</strong> <code class=\"language-text\">dice.value[dice.bottom]</code> 값을 복사<br>\n<strong>0이 아니면</strong> <code class=\"language-text\">dice.value[dice.bottom]</code>에 다음 위치 칸의 값을 복사하고 <code class=\"language-text\">map[next_y][next_x] = 0</code></li>\n</ul>\n</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 punctuation\">,</span> M<span class=\"token punctuation\">,</span> x<span class=\"token punctuation\">,</span> y<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>\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 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>\norder <span class=\"token operator\">=</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>\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 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\">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\">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\">1</span><span class=\"token punctuation\">]</span>\n\n<span class=\"token keyword\">class</span> <span class=\"token class-name\">Dice</span><span class=\"token punctuation\">:</span>\n    <span class=\"token comment\"># 주사위 상태</span>\n    top<span class=\"token punctuation\">,</span> front<span class=\"token punctuation\">,</span> right<span class=\"token punctuation\">,</span> left<span class=\"token punctuation\">,</span> back<span class=\"token punctuation\">,</span> bottom <span class=\"token operator\">=</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\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span>\n    <span class=\"token comment\"># 주사위에 쓰여지는 수</span>\n    value <span class=\"token operator\">=</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\">6</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n    <span class=\"token comment\"># 주사위 이동시키는 메소드</span>\n    <span class=\"token keyword\">def</span> <span class=\"token function\">move_dice</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">,</span> d<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>\n            temp <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>top\n            self<span class=\"token punctuation\">.</span>top <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>left\n            self<span class=\"token punctuation\">.</span>left <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>bottom\n            self<span class=\"token punctuation\">.</span>bottom <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>right\n            self<span class=\"token punctuation\">.</span>right <span class=\"token operator\">=</span> temp\n        <span class=\"token keyword\">elif</span> d <span class=\"token operator\">==</span> <span class=\"token number\">2</span><span class=\"token punctuation\">:</span>\n            temp <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>top\n            self<span class=\"token punctuation\">.</span>top <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>right\n            self<span class=\"token punctuation\">.</span>right <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>bottom\n            self<span class=\"token punctuation\">.</span>bottom <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>left\n            self<span class=\"token punctuation\">.</span>left <span class=\"token operator\">=</span> temp\n        <span class=\"token keyword\">elif</span> d <span class=\"token operator\">==</span> <span class=\"token number\">3</span><span class=\"token punctuation\">:</span>\n            temp <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>top\n            self<span class=\"token punctuation\">.</span>top <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>back\n            self<span class=\"token punctuation\">.</span>back <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>bottom\n            self<span class=\"token punctuation\">.</span>bottom <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>front\n            self<span class=\"token punctuation\">.</span>front <span class=\"token operator\">=</span> temp\n        <span class=\"token keyword\">elif</span> d <span class=\"token operator\">==</span> <span class=\"token number\">4</span><span class=\"token punctuation\">:</span>\n            temp <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>top\n            self<span class=\"token punctuation\">.</span>top <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>front\n            self<span class=\"token punctuation\">.</span>front <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>bottom\n            self<span class=\"token punctuation\">.</span>bottom <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>back\n            self<span class=\"token punctuation\">.</span>back <span class=\"token operator\">=</span> temp\n\ndice <span class=\"token operator\">=</span> Dice<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\ncur <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">(</span>y<span class=\"token punctuation\">,</span> x<span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n<span class=\"token keyword\">while</span> order<span class=\"token punctuation\">:</span>\n    d <span class=\"token operator\">=</span> order<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span>\n    <span class=\"token keyword\">del</span> order<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span>\n    cur_x<span class=\"token punctuation\">,</span> cur_y <span class=\"token operator\">=</span> cur<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># 다음 좌표 계산</span>\n    next_x <span class=\"token operator\">=</span> cur_x <span class=\"token operator\">+</span> dx<span class=\"token punctuation\">[</span>d<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\n    next_y <span class=\"token operator\">=</span> cur_y <span class=\"token operator\">+</span> dy<span class=\"token punctuation\">[</span>d<span class=\"token operator\">-</span><span class=\"token number\">1</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> next_x <span class=\"token operator\">&lt;</span> M <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> N<span class=\"token punctuation\">:</span>\n        dice<span class=\"token punctuation\">.</span>move_dice<span class=\"token punctuation\">(</span>d<span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>dice<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">[</span>dice<span class=\"token punctuation\">.</span>top<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n        <span class=\"token comment\"># 주사위 바닥면의 수를 복사할지, 칸에 쓰여 있는 수를 복사할지</span>\n        <span class=\"token keyword\">if</span> <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\">0</span><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> dice<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">[</span>dice<span class=\"token punctuation\">.</span>bottom<span class=\"token punctuation\">]</span>\n        <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n            dice<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">[</span>dice<span class=\"token punctuation\">.</span>bottom<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <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>\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\">0</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 keyword\">else</span><span class=\"token punctuation\">:</span>\n        cur<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>cur_x<span class=\"token punctuation\">,</span> cur_y<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>주사위를 이동시키고 출력하는 방법은 전체적으로 어렵지 않았다.<br>\n현재 주사위 상태와 각 면에 적히는 수와 명령에 따라 이동시키는 함수까지 있어야 해서 Class로 정의하면 편하겠다고 생각했고, 그래서 평소에는 안쓰던 Class를 사용했다.</p>\n<p>문제를 똑바로 정독해서 실수를 줄이자..!</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/14499 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 이 지도의 위에 주사위가 하나 놓여져 있으며, 주사위의 전개도는 아래와 같다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 주사위는 지도 위에 윗 면이 1이고, 동쪽을 바라보는 방향이 3인 상태로 놓여져 있으며, 놓여져 있는 곳의 좌표는 (x, y) 이다. 가장 처음에 주사위에는 모든 면에 0이 적혀져 있다. 지도의 각 칸에는 정수가 하나씩 쓰여져 있다. 주사위를 굴렸을 때, 이동한 칸에 쓰여 있는 수가 0이면, 주사위의 바닥면에 쓰여 있는 수가 칸에 복사된다. 0이 아닌 경우에는 칸에 쓰여 있는 수가 주사위의 바닥면으로 복사되며, 칸에 쓰여 있는 수는 0이 된다. 주사위를 놓은 곳의 좌표와 이동시키는 명령이 주어졌을 때, 주사위가 이동했을 때 마다 상단에 쓰여 …","frontmatter":{"date":"January 01, 2022","title":"[BOJ] 14499번: 주사위 굴리기 (Python)","categories":"Algorithm","author":"JFe","emoji":"💻"},"fields":{"slug":"/boj-14499/"}},"next":{"id":"6e523823-7489-5bbe-b756-5867e5376888","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/3190\">https://www.acmicpc.net/problem/3190</a></p>\n<p>‘Dummy’ 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다.</p>\n<p>게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다.</p>\n<p>뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다.<br>\n- 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다.<br>\n- 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다.<br>\n- 만약 이동한 칸에 사과가 없다면, 몸길이를 줄여서 꼬리가 위치한 칸을 비워준다. 즉, 몸길이는 변하지 않는다.</p>\n<p>사과의 위치와 뱀의 이동경로가 주어질 때 이 게임이 몇 초에 끝나는지 계산하라.</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이 주어진다. (2 ≤ N ≤ 100) 다음 줄에 사과의 개수 K가 주어진다. (0 ≤ K ≤ 100)</p>\n<p>다음 K개의 줄에는 사과의 위치가 주어지는데, 첫 번째 정수는 행, 두 번째 정수는 열 위치를 의미한다. 사과의 위치는 모두 다르며, 맨 위 맨 좌측 (1행 1열) 에는 사과가 없다.</p>\n<p>다음 줄에는 뱀의 방향 변환 횟수 L 이 주어진다. (1 ≤ L ≤ 100)</p>\n<p>다음 L개의 줄에는 뱀의 방향 변환 정보가 주어지는데,  정수 X와 문자 C로 이루어져 있으며. 게임 시작 시간으로부터 X초가 끝난 뒤에 왼쪽(C가 ‘L’) 또는 오른쪽(C가 ‘D’)로 90도 방향을 회전시킨다는 뜻이다. X는 10,000 이하의 양의 정수이며, 방향 전환 정보는 X가 증가하는 순으로 주어진다.</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>첫째 줄에 게임이 몇 초에 끝나는지 출력한다.</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\">6</span>\n<span class=\"token number\">3</span>\n<span class=\"token number\">3</span> <span class=\"token number\">4</span>\n<span class=\"token number\">2</span> <span class=\"token number\">5</span>\n<span class=\"token number\">5</span> <span class=\"token number\">3</span>\n<span class=\"token number\">3</span>\n<span class=\"token number\">3</span> D\n<span class=\"token number\">15</span> L\n<span class=\"token number\">17</span> D</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\">9</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\">10</span>\n<span class=\"token number\">4</span>\n<span class=\"token number\">1</span> <span class=\"token number\">2</span>\n<span class=\"token number\">1</span> <span class=\"token number\">3</span>\n<span class=\"token number\">1</span> <span class=\"token number\">4</span>\n<span class=\"token number\">1</span> <span class=\"token number\">5</span>\n<span class=\"token number\">4</span>\n<span class=\"token number\">8</span> D\n<span class=\"token number\">10</span> D\n<span class=\"token number\">11</span> D\n<span class=\"token number\">13</span> L</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\">21</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>\n<span class=\"token number\">1</span> <span class=\"token number\">5</span>\n<span class=\"token number\">1</span> <span class=\"token number\">3</span>\n<span class=\"token number\">1</span> <span class=\"token number\">2</span>\n<span class=\"token number\">1</span> <span class=\"token number\">6</span>\n<span class=\"token number\">1</span> <span class=\"token number\">7</span>\n<span class=\"token number\">4</span>\n<span class=\"token number\">8</span> D\n<span class=\"token number\">10</span> D\n<span class=\"token number\">11</span> D\n<span class=\"token number\">13</span> L</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\">13</span></code></pre></div>\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\">direction_info <span class=\"token operator\">=</span> <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>L<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    X<span class=\"token punctuation\">,</span> C <span class=\"token operator\">=</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>\n    direction_info<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 punctuation\">]</span> <span class=\"token operator\">=</span> C\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>move<span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></code></pre></div>\n<ul>\n<li><strong>방향 변환 정보 저장 후, move 함수 실행 및 결과 출력</strong><br>\n<strong>딕셔너리</strong>를 이용해서 <strong>key-value</strong> 값으로 시간-방향을 저장<br>\n처음 위치인 <strong>1,1</strong>에서 <code class=\"language-text\">move</code> 함수 실행 후, <strong>return</strong> 값 출력</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\">move</span><span class=\"token punctuation\">(</span>r<span class=\"token punctuation\">,</span> c<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    time <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n    cur_dir <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n    q <span class=\"token operator\">=</span> deque<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    q<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>r<span class=\"token punctuation\">,</span> c<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">while</span> q<span class=\"token punctuation\">:</span>\n        time <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n        r<span class=\"token punctuation\">,</span> c <span class=\"token operator\">=</span> q<span class=\"token punctuation\">.</span>popleft<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n        <span class=\"token comment\"># 다음 위치 계산</span>\n        next_c <span class=\"token operator\">=</span> c <span class=\"token operator\">+</span> dx<span class=\"token punctuation\">[</span>cur_dir<span class=\"token punctuation\">]</span>\n        next_r <span class=\"token operator\">=</span> r <span class=\"token operator\">+</span> dy<span class=\"token punctuation\">[</span>cur_dir<span class=\"token punctuation\">]</span>\n        q<span class=\"token punctuation\">.</span>appendleft<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>r<span class=\"token punctuation\">,</span> c<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\n        <span class=\"token comment\"># 벽에 부딪히는지 체크</span>\n        <span class=\"token keyword\">if</span> next_r <span class=\"token operator\">&lt;</span> <span class=\"token number\">1</span> <span class=\"token keyword\">or</span> next_r <span class=\"token operator\">></span> N <span class=\"token keyword\">or</span> next_c <span class=\"token operator\">&lt;</span> <span class=\"token number\">1</span> <span class=\"token keyword\">or</span> next_c <span class=\"token operator\">></span> N <span class=\"token punctuation\">:</span> <span class=\"token keyword\">return</span> time\n        <span class=\"token comment\"># 자기 자신과 부딪히는지 체크</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>next_r<span class=\"token punctuation\">,</span> next_c<span class=\"token punctuation\">)</span> <span class=\"token keyword\">in</span> q <span class=\"token punctuation\">:</span> <span class=\"token keyword\">return</span> time\n        <span class=\"token comment\"># 이동</span>\n        q<span class=\"token punctuation\">.</span>appendleft<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>next_r<span class=\"token punctuation\">,</span> next_c<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">[</span>next_r<span class=\"token punctuation\">,</span> next_c<span class=\"token punctuation\">]</span> <span class=\"token keyword\">in</span> apple <span class=\"token punctuation\">:</span> apple<span class=\"token punctuation\">.</span>remove<span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>next_r<span class=\"token punctuation\">,</span> next_c<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">else</span> <span class=\"token punctuation\">:</span> q<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n        <span class=\"token comment\"># 방향 변환</span>\n        <span class=\"token keyword\">if</span> time <span class=\"token keyword\">in</span> direction_info<span class=\"token punctuation\">.</span>keys<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> direction_info<span class=\"token punctuation\">[</span>time<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token string\">'D'</span><span class=\"token punctuation\">:</span>\n                <span class=\"token keyword\">if</span> cur_dir <span class=\"token operator\">==</span> <span class=\"token number\">3</span> <span class=\"token punctuation\">:</span> cur_dir <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n                <span class=\"token keyword\">else</span> <span class=\"token punctuation\">:</span> cur_dir <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n            <span class=\"token keyword\">elif</span> direction_info<span class=\"token punctuation\">[</span>time<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token string\">'L'</span><span class=\"token punctuation\">:</span>\n                <span class=\"token keyword\">if</span> cur_dir <span class=\"token operator\">==</span> <span class=\"token number\">0</span> <span class=\"token punctuation\">:</span> cur_dir <span class=\"token operator\">=</span> <span class=\"token number\">3</span>\n                <span class=\"token keyword\">else</span> <span class=\"token punctuation\">:</span> cur_dir <span class=\"token operator\">-=</span> <span class=\"token number\">1</span></code></pre></div>\n<ul>\n<li>제시된 조건에 맞게 뱀 위치를 이동시키고 종료되는 시간을 return하는 함수\n<ul>\n<li><strong>다음 위치 계산</strong><br>\n이전에 선언한 <code class=\"language-text\">dx = [1, 0, -1, 0]</code> <code class=\"language-text\">dy = [0, 1, 0, -1]</code> 에서<br>\n현재 방향인 <code class=\"language-text\">cur_dir</code> 을 기준으로 다음 위치 <code class=\"language-text\">next_x</code> <code class=\"language-text\">next_y</code> 를 계산</li>\n<li><strong>종료 조건 체크</strong><br>\n<strong>벽에 부딪히는지</strong> boundary 체크해서 현재 <code class=\"language-text\">time</code> 값을 <strong>return</strong><br>\n<strong>자기 자신과 부딪히는지</strong>는 다음 위치가 현재 <strong>deque</strong>에 있는지 확인하고, 있으면 <code class=\"language-text\">time</code> 값 <strong>return</strong></li>\n<li><strong>이동</strong><br>\n다음 위치를 <strong>deque</strong>의 시작 위치에 <strong>appendleft</strong>하고<br>\n그 위치가 <code class=\"language-text\">apple</code> 리스트에 있으면, 해당 값을 리스트에서 <strong>remove</strong><br>\n<code class=\"language-text\">apple</code> 리스트에 없으면, 뱀의 꼬리를 움직이기 위해 <strong>deque</strong>의 끝 위치 값을 <strong>pop</strong></li>\n<li><strong>방향 변환</strong><br>\n딕셔너리 <code class=\"language-text\">direction_info</code> 에 현재 <code class=\"language-text\">time</code>에 해당하는 <strong>key</strong>가 있으면,<br>\n그 <strong>key</strong>에 해당하는 <strong>value</strong>가 <strong>D</strong>인지 <strong>L</strong>인지에 따라 <code class=\"language-text\">cur_dir</code> 값 변경</li>\n</ul>\n</li>\n</ul>\n<hr>\n<h2 id=\"-code\" style=\"position:relative;\"><a href=\"#-code\" aria-label=\" code permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🧩 Code</h2>\n<details><summary>전체 코드 확인</summary>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> sys\n<span class=\"token keyword\">from</span> collections <span class=\"token keyword\">import</span> deque\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>\nK <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>\napple <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>K<span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\nL <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>\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\n<span class=\"token keyword\">def</span> <span class=\"token function\">move</span><span class=\"token punctuation\">(</span>r<span class=\"token punctuation\">,</span> c<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    time <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n    cur_dir <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n    q <span class=\"token operator\">=</span> deque<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    q<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>r<span class=\"token punctuation\">,</span> c<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">while</span> q<span class=\"token punctuation\">:</span>\n        time <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n        r<span class=\"token punctuation\">,</span> c <span class=\"token operator\">=</span> q<span class=\"token punctuation\">.</span>popleft<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n        <span class=\"token comment\"># 다음 위치 계산</span>\n        next_c <span class=\"token operator\">=</span> c <span class=\"token operator\">+</span> dx<span class=\"token punctuation\">[</span>cur_dir<span class=\"token punctuation\">]</span>\n        next_r <span class=\"token operator\">=</span> r <span class=\"token operator\">+</span> dy<span class=\"token punctuation\">[</span>cur_dir<span class=\"token punctuation\">]</span>\n        q<span class=\"token punctuation\">.</span>appendleft<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>r<span class=\"token punctuation\">,</span> c<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\n        <span class=\"token comment\"># 벽에 부딪히는지 체크</span>\n        <span class=\"token keyword\">if</span> next_r <span class=\"token operator\">&lt;</span> <span class=\"token number\">1</span> <span class=\"token keyword\">or</span> next_r <span class=\"token operator\">></span> N <span class=\"token keyword\">or</span> next_c <span class=\"token operator\">&lt;</span> <span class=\"token number\">1</span> <span class=\"token keyword\">or</span> next_c <span class=\"token operator\">></span> N <span class=\"token punctuation\">:</span> <span class=\"token keyword\">return</span> time\n        <span class=\"token comment\"># 자기 자신과 부딪히는지 체크</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>next_r<span class=\"token punctuation\">,</span> next_c<span class=\"token punctuation\">)</span> <span class=\"token keyword\">in</span> q <span class=\"token punctuation\">:</span> <span class=\"token keyword\">return</span> time\n        <span class=\"token comment\"># 이동</span>\n        q<span class=\"token punctuation\">.</span>appendleft<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>next_r<span class=\"token punctuation\">,</span> next_c<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">[</span>next_r<span class=\"token punctuation\">,</span> next_c<span class=\"token punctuation\">]</span> <span class=\"token keyword\">in</span> apple <span class=\"token punctuation\">:</span> apple<span class=\"token punctuation\">.</span>remove<span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>next_r<span class=\"token punctuation\">,</span> next_c<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">else</span> <span class=\"token punctuation\">:</span> q<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n        <span class=\"token comment\"># 방향 변환</span>\n        <span class=\"token keyword\">if</span> time <span class=\"token keyword\">in</span> direction_info<span class=\"token punctuation\">.</span>keys<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> direction_info<span class=\"token punctuation\">[</span>time<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token string\">'D'</span><span class=\"token punctuation\">:</span>\n                <span class=\"token keyword\">if</span> cur_dir <span class=\"token operator\">==</span> <span class=\"token number\">3</span> <span class=\"token punctuation\">:</span> cur_dir <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n                <span class=\"token keyword\">else</span> <span class=\"token punctuation\">:</span> cur_dir <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n            <span class=\"token keyword\">elif</span> direction_info<span class=\"token punctuation\">[</span>time<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token string\">'L'</span><span class=\"token punctuation\">:</span>\n                <span class=\"token keyword\">if</span> cur_dir <span class=\"token operator\">==</span> <span class=\"token number\">0</span> <span class=\"token punctuation\">:</span> cur_dir <span class=\"token operator\">=</span> <span class=\"token number\">3</span>\n                <span class=\"token keyword\">else</span> <span class=\"token punctuation\">:</span> cur_dir <span class=\"token operator\">-=</span> <span class=\"token number\">1</span>\n\ndirection_info <span class=\"token operator\">=</span> <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>L<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    X<span class=\"token punctuation\">,</span> C <span class=\"token operator\">=</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>\n    direction_info<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 punctuation\">]</span> <span class=\"token operator\">=</span> C\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>move<span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</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>예제 케이스 다 맞았는데 틀렸다고 나오길래 다시 보니까 사과를 지난 다음에 사과를 없애주지 않아서 그런 거였음ㅜ</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":"December 29, 2021","title":"[BOJ] 3190번: 뱀 (Python)","categories":"Algorithm","author":"JFe","emoji":"💻"},"fields":{"slug":"/boj-3190/"}},"prev":{"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/"}},"site":{"siteMetadata":{"siteUrl":"https://jfelog.netlify.app","comments":{"utterances":{"repo":"Go-Jaecheol/Jfe_Blog"}}}}},"pageContext":{"slug":"/boj-14499/","nextSlug":"/boj-3190/","prevSlug":"/boj-15685/"}},
    "staticQueryHashes": ["1073350324","1956554647","2938748437"]}