<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title> &amp;zwj;♂️개발일지 &amp;zwj;♀️</title>
    <link>https://chaesilver.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Tue, 8 Sep 2026 15:23:31 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ㅊhsilver</managingEditor>
    <item>
      <title>[백준] 12851번: 숨바꼭질 2</title>
      <link>https://chaesilver.tistory.com/71</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369; background-color: #ffffff; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;알고리즘 정리&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-8eee379a-6049-4c3c-bd36-fcbb0090dac3&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #ef5369;&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-35117ba9-49b6-4cdd-afd1-470802ff82b2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #409d00;&quot;&gt;&lt;b&gt;&lt;b&gt;✍&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;풀이과정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1642314200023&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys
from collections import deque
MAX = 100001

n, k = map(int, input().split())
queue = deque([n])
dist = [-1]*MAX
dist[n] = 0
cnt=0

while queue:
    i = queue.popleft()

    if i == k:
        cnt+=1

    if i*2 &amp;lt; MAX and dist[i*2] == -1:
        queue.append(i*2)
        dist[i*2] = dist[i]+1
    if i-1&amp;gt;=0 and dist[i-1] == -1:
        queue.append(i-1)
        dist[i-1] = dist[i] + 1
    if i+1&amp;lt; MAX and dist[i+1] == -1:
        queue.append(i + 1)
        dist[i+1] = dist[i] + 1

print(dist[k])
print(cnt)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3번을 먼저 풀어서 3번에서 appendleft를 append로 바꾸고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;i==k일 때마다 cnt를 1씩 추가하는 것으로 수정하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출력해봤을 때, 최소 시간은 맞지만 방법 수가 틀리게 나왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생각해보니 처음 방문했을 때만 queue에 추가했기 때문에 1만 출력되는 것이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1642316192607&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys
from collections import deque
MAX = 100001

n, k = map(int, input().split())
queue = deque([n])
dist = [-1]*MAX
dist[n] = 0
cnt=0

while queue:
    i = queue.popleft()

    if i == k:
        cnt+=1

    if i*2 &amp;lt; MAX:
        if dist[i*2] == -1 or dist[i*2] == dist[i]+1:
            dist[i*2] = dist[i]+1
            queue.append(i * 2)
    if i-1&amp;gt;=0:
        if dist[i-1] == -1 or dist[i-1] == dist[i]+1:
            dist[i-1] = dist[i]+1
            queue.append(i - 1)
    if i+1&amp;lt; MAX:
        if dist[i+1] == -1 or dist[i+1] == dist[i]+1:
            dist[i+1] = dist[i]+1
            queue.append(i + 1)

print(dist[k])
print(cnt)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반례를 생각해보다가 도무지 모르겠어서 블로그를 참고했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;228&quot; data-origin-height=&quot;394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sC3XM/btrqUTtFrsy/M9F81cVlHF8zcRVmCCvS91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sC3XM/btrqUTtFrsy/M9F81cVlHF8zcRVmCCvS91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sC3XM/btrqUTtFrsy/M9F81cVlHF8zcRVmCCvS91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsC3XM%2FbtrqUTtFrsy%2FM9F81cVlHF8zcRVmCCvS91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;159&quot; height=&quot;275&quot; data-origin-width=&quot;228&quot; data-origin-height=&quot;394&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀 거지같은디,,,이러한 경우에도 추가를 해줘야 한다!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-83042eb4-4c34-4e57-85ec-6a074b0ab969&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;</description>
      <author>ㅊhsilver</author>
      <guid isPermaLink="true">https://chaesilver.tistory.com/71</guid>
      <comments>https://chaesilver.tistory.com/71#entry71comment</comments>
      <pubDate>Sun, 16 Jan 2022 16:06:04 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 13549번: 숨바꼭질 3</title>
      <link>https://chaesilver.tistory.com/70</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369; background-color: #ffffff; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;알고리즘 정리&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-8eee379a-6049-4c3c-bd36-fcbb0090dac3&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #ef5369;&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/13549&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/13549&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1642313357025&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;13549번: 숨바꼭질 3&quot; data-og-description=&quot;수빈이는 동생과&amp;nbsp;숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 &amp;le; N &amp;le; 100,000)에 있고, 동생은 점 K(0 &amp;le; K &amp;le; 100,000)에&amp;nbsp;있다.&amp;nbsp;수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 &quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/13549&quot; data-og-url=&quot;https://www.acmicpc.net/problem/13549&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cwvRlS/hyM6A0fMzI/kQURnPSbCWiEm0gLjFeh81/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/13549&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/13549&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cwvRlS/hyM6A0fMzI/kQURnPSbCWiEm0gLjFeh81/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;13549번: 숨바꼭질 3&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;수빈이는 동생과&amp;nbsp;숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 &amp;le; N &amp;le; 100,000)에 있고, 동생은 점 K(0 &amp;le; K &amp;le; 100,000)에&amp;nbsp;있다.&amp;nbsp;수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-35117ba9-49b6-4cdd-afd1-470802ff82b2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #409d00;&quot;&gt;&lt;b&gt;&lt;b&gt;✍&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;풀이과정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1642312617345&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys
from collections import deque
MAX = 100001

n, k = map(int, input().split())
queue = deque([n])
dist = [-1]*MAX
dist[n] = 0

while queue:
    i = queue.popleft()

    if i == k:
       print(dist[i])
       break

    if i*2 &amp;lt; MAX and dist[i*2] == -1:
        queue.appendleft(i*2)
        dist[i*2] = dist[i]
    if i-1&amp;gt;=0 and dist[i-1] == -1:
        queue.append(i-1)
        dist[i-1] = dist[i] + 1
    if i+1&amp;lt; MAX and dist[i+1] == -1:
        queue.append(i + 1)
        dist[i+1] = dist[i] + 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;옛날에 풀어본 문제였고 bfs로 풀었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(문제 A-&amp;gt;B)에서는 +&quot;1&quot;과 *2밖에 없어서 뒤로 돌아오지 못하는 반면에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제는 -1도 있기 때문에 dist를 두어 해당 위치에 방문했는지를 확인해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* (3 -&amp;gt; 4 -&amp;gt; 3) 같은 경우를 방지하기 위해서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(*2)를 하는 경우에는 초가 증가하지 않으므로 appendleft를 해주었다.&lt;/p&gt;</description>
      <author>ㅊhsilver</author>
      <guid isPermaLink="true">https://chaesilver.tistory.com/70</guid>
      <comments>https://chaesilver.tistory.com/70#entry70comment</comments>
      <pubDate>Sun, 16 Jan 2022 14:58:16 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 16953번: A-&amp;gt;B</title>
      <link>https://chaesilver.tistory.com/69</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369; background-color: #ffffff; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;알고리즘 정리&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-8eee379a-6049-4c3c-bd36-fcbb0090dac3&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #ef5369;&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/16953&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/16953&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1642310366512&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;16953번: A &amp;rarr; B&quot; data-og-description=&quot;첫째 줄에 A, B (1 &amp;le; A &amp;lt; B &amp;le; 109)가 주어진다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/16953&quot; data-og-url=&quot;https://www.acmicpc.net/problem/16953&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/GRMKo/hyM6zmIOaa/EhjFmdHb9Ip8OyhYEOJS7k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/16953&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/16953&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/GRMKo/hyM6zmIOaa/EhjFmdHb9Ip8OyhYEOJS7k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;16953번: A &amp;rarr; B&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 A, B (1 &amp;le; A &amp;lt; B &amp;le; 109)가 주어진다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-35117ba9-49b6-4cdd-afd1-470802ff82b2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #409d00;&quot;&gt;&lt;b&gt;&lt;b&gt;✍&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;풀이과정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1642310029475&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys
from collections import deque

a, b = map(int, input().split())
queue = deque([(a, 1)])

while queue:
    i, cnt = queue.popleft()

    if i==b:
        print(cnt)
        exit(0)

    queue.append((i * 2, cnt+1))
    queue.append((int(str(i)+&quot;1&quot;), cnt+1))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연산의 최솟값을 구하는 것이기 때문에 bfs로 풀었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 특별한 조건없이 i에 2를 곱했을 때, 1을 붙였을 때를 모두 추가했는데 &quot;메모리 초과&quot;가 되었다.&lt;/p&gt;
&lt;pre id=&quot;code_1642310302942&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys
from collections import deque

a, b = map(int, input().split())
queue = deque([(a, 1)])

res=-1
while queue:
    i, cnt = queue.popleft()

    if i==b:
        res = cnt
        break

    if i*2&amp;lt;=b:
        queue.append((i * 2, cnt+1))
    if int(str(i)+&quot;1&quot;) &amp;lt;=b:
        queue.append((int(str(i)+&quot;1&quot;), cnt+1))

print(res)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A-&amp;gt;B가 불가능한 경우와 b를 초과하는 경우들을 추가해주었더니 통과했다.&lt;/p&gt;</description>
      <author>ㅊhsilver</author>
      <guid isPermaLink="true">https://chaesilver.tistory.com/69</guid>
      <comments>https://chaesilver.tistory.com/69#entry69comment</comments>
      <pubDate>Sun, 16 Jan 2022 14:19:28 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2606번: 바이러스</title>
      <link>https://chaesilver.tistory.com/68</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369; background-color: #ffffff; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;알고리즘 정리&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-8eee379a-6049-4c3c-bd36-fcbb0090dac3&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #ef5369;&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2606&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/2606&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1641711213542&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;2606번: 바이러스&quot; data-og-description=&quot;첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2606&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2606&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/pni6o/hyM2ZrfZoC/MlDOkpKHyLa7lkxmH8hnGk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2606&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2606&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/pni6o/hyM2ZrfZoC/MlDOkpKHyLa7lkxmH8hnGk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;2606번: 바이러스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-35117ba9-49b6-4cdd-afd1-470802ff82b2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #409d00;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;✍&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;풀이과정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1641711171892&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys
from collections import deque

n = int(input())
e = int(input())

graph =[[] for _ in range(n+1)]
visited =[0] * (n+1)

for _ in range(e):
    a, b = map(int, input().split())
    graph[a].append(b)
    graph[b].append(a)

queue = deque()
queue.append(1)
visited[1] = 1
cnt=0

while queue:
    cur = queue.popleft()

    for i in graph[cur]:
        if visited[i] == 0:
            queue.append(i)
            visited[i] = 1
            cnt+=1
print(cnt)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 bfs, dfs 중에 어느 것을 쓰는 게 더 효율적인지는 생각해보진 않았는데 bfs가 편해서 bfs로 풀었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞선 '음식물 쓰레기', '미로찾기' 문제와 동일하게 visited 리스트를 생성하였고 graph 리스트도 생성하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;queue에 방문하지 않은 인접한 노드를 추가해주고 cnt를 늘려주면서 1번과 연결될 수 있는 노드의 수를 구했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;</description>
      <author>ㅊhsilver</author>
      <guid isPermaLink="true">https://chaesilver.tistory.com/68</guid>
      <comments>https://chaesilver.tistory.com/68#entry68comment</comments>
      <pubDate>Sun, 9 Jan 2022 16:00:18 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2178번: 미로 탐색</title>
      <link>https://chaesilver.tistory.com/67</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #ef5369; background-color: #ffffff;&quot;&gt;&lt;b&gt; &amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;알고리즘 정리&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-8eee379a-6049-4c3c-bd36-fcbb0090dac3&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #ef5369;&quot;&gt;&lt;b&gt; &amp;nbsp;&lt;/b&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2178&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/2178&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1641707800423&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;2178번: 미로 탐색&quot; data-og-description=&quot;첫째 줄에 두 정수 N, M(2 &amp;le; N, M &amp;le; 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2178&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2178&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bN8Rgy/hyM1JQVrnz/gYfEqXSAyUo6vrAKoWE6mk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2178&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2178&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bN8Rgy/hyM1JQVrnz/gYfEqXSAyUo6vrAKoWE6mk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;2178번: 미로 탐색&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 두 정수 N, M(2 &amp;le; N, M &amp;le; 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-35117ba9-49b6-4cdd-afd1-470802ff82b2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;✍&amp;nbsp;&lt;/b&gt;풀이과정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;최단 경로를 구하는 문제이므로 bfs를 통해 문제를 해결함&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;'1743번: 음식물 쓰레기' 문제를 먼저 풀었는데 다시 돌아와서 문제를 보니 비슷하게 풀면 되겠다는 생각이 들었다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1641707784483&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys
from collections import deque

n, m = map(int, input().split())

board=[]
visited =[[0]*m for _ in range(n)]
for _ in range(n):
    board.append(list(input()))

dx=[-1, 1 ,0 ,0]
dy=[0,0,-1,1]

# 시작점
queue = deque()
visited[0][0] = 1
queue.append((0, 0))

while queue:
    cur_x, cur_y = queue.popleft()
    if cur_x == n-1 and cur_y == m-1:
        print(visited[cur_x][cur_y])
        break

    for i in range(4):
        X = cur_x + dx[i]
        Y = cur_y + dy[i]

        if 0 &amp;lt;= X &amp;lt; n and 0 &amp;lt;= Y &amp;lt; m and visited[X][Y] == 0 and board[X][Y] == '1':
            queue.append((X, Y))
            visited[X][Y] = visited[cur_x][cur_y] + 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1743번과 다르게 visited 리스트에 지나온 칸 수를 저장하였다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;Deque 초기화 Error&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;# 오류 1
queue = deque((0, 0))
visited[0][0] = 1

# 오류 2
queue = deque([0, 0])
## deque([0, 0])

# 올바른 코드 1
queue = deque()
visited[0][0] = 1
queue.append((0, 0))

# 올바른 코드 2
queue = deque([(0, 0)])
## deque([(0, 0)])

while queue:
    cur_x, cur_y = queue.popleft()
    if cur_x == n-1 and cur_y == m-1:
        print(visited[cur_x][cur_y])
        break&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;TypeError:&amp;nbsp;'int'&amp;nbsp;object&amp;nbsp;is&amp;nbsp;not&amp;nbsp;iterable&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;시작점을 deque에 넣는 코드를 (오류 1), (오류 2) 처럼 작성했더니 TypeError가 발생하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;deque 내에 tuple이나 list로 초기화를 하게 되면 deque([0, 0]) 처럼 하나의 리스트가 생성되므로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;while 문 내에서 cur_x는 0을 할당받고, cur_y는 할당받는 것이 없어서 에러가 발생한 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;popleft로 x, y를 얻고 싶다면,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1) append 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2) [( )] 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://trey-de.tistory.com/14&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://trey-de.tistory.com/14&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1641708313405&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Python에서 deque.popleft() 실행 시, iterable error가 뜬다면?&quot; data-og-description=&quot;BFS문제들을 풀다보면, x와 y좌표를 큐에 넣고 빼는 경우가 많습니다. (예: www.acmicpc.net/problem/1926) 물론 상황에 맞게 적용하면 되겠지만, 1) 큐를 생성한 후에&amp;nbsp;리스트 또는&amp;nbsp;튜플 자료형으로 큐에 &quot; data-og-host=&quot;trey-de.tistory.com&quot; data-og-source-url=&quot;https://trey-de.tistory.com/14&quot; data-og-url=&quot;https://trey-de.tistory.com/14&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bRUYAl/hyM2TR4Yur/M4e71uHcrKUZOZC9jrd25K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/FBgHO/hyM1KbnJwG/2r156Mp5fxHR2JXHC1sGMK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/LUAVt/hyM1LnOHhh/ytdEleqfo1I8pAMv85ZGck/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400&quot;&gt;&lt;a href=&quot;https://trey-de.tistory.com/14&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://trey-de.tistory.com/14&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bRUYAl/hyM2TR4Yur/M4e71uHcrKUZOZC9jrd25K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/FBgHO/hyM1KbnJwG/2r156Mp5fxHR2JXHC1sGMK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/LUAVt/hyM1LnOHhh/ytdEleqfo1I8pAMv85ZGck/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Python에서 deque.popleft() 실행 시, iterable error가 뜬다면?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;BFS문제들을 풀다보면, x와 y좌표를 큐에 넣고 빼는 경우가 많습니다. (예: www.acmicpc.net/problem/1926) 물론 상황에 맞게 적용하면 되겠지만, 1) 큐를 생성한 후에&amp;nbsp;리스트 또는&amp;nbsp;튜플 자료형으로 큐에&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;trey-de.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>ㅊhsilver</author>
      <guid isPermaLink="true">https://chaesilver.tistory.com/67</guid>
      <comments>https://chaesilver.tistory.com/67#entry67comment</comments>
      <pubDate>Sun, 9 Jan 2022 14:52:25 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 1743번: 음식물 피하기</title>
      <link>https://chaesilver.tistory.com/65</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369; background-color: #ffffff; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;알고리즘 정리&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-8eee379a-6049-4c3c-bd36-fcbb0090dac3&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #ef5369;&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1743&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/1743&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1641702344793&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;1743번: 음식물 피하기&quot; data-og-description=&quot;첫째 줄에 통로의 세로 길이 N(1 &amp;le; N &amp;le; 100)과 가로 길이 M(1 &amp;le; M &amp;le; 100) 그리고 음식물 쓰레기의 개수 K(1 &amp;le; K &amp;le; N&amp;times;M)이 주어진다.&amp;nbsp; 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1743&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1743&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/E4RHl/hyM1IYPozP/PKgV6eb0cidRfmeBYg4FUK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1743&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1743&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/E4RHl/hyM1IYPozP/PKgV6eb0cidRfmeBYg4FUK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;1743번: 음식물 피하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 통로의 세로 길이 N(1 &amp;le; N &amp;le; 100)과 가로 길이 M(1 &amp;le; M &amp;le; 100) 그리고 음식물 쓰레기의 개수 K(1 &amp;le; K &amp;le; N&amp;times;M)이 주어진다.&amp;nbsp; 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-35117ba9-49b6-4cdd-afd1-470802ff82b2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #409d00;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;✍&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;풀이과정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1641702311623&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys
from collections import deque

n, m, k = map(int, sys.stdin.readline().split())

board =[[0]*m for _ in range(n)]

for _ in range(k):
    r, c = map(int, input().split())
    board[r-1][c-1] = 1

# 상하좌우
dx = [-1, 1,0,0]
dy = [0, 0,-1,1]

visited = [[0]*m for _ in range(n)]

def check(x,y):
    queue = deque()
    queue.append((x, y))

    visited[x][y] = 1
    cnt=1

    while queue:
        cur_x, cur_y = queue.popleft()
        for i in range(4):
            X = cur_x + dx[i]
            Y = cur_y + dy[i]

            if 0 &amp;lt;= X &amp;lt; n and 0 &amp;lt;= Y &amp;lt; m and visited[X][Y] == 0 and board[X][Y] == 1:
                queue.append((X, Y))
                visited[X][Y] = 1
                cnt += 1
    return cnt

results=[]
for i in range(n):
    for j in range(m):
        if board[i][j] ==1: # 쓰레기인 경우
            results.append(check(i,j))
print(max(results))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제는 bfs, dfs로 모두 풀 수 있는 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 bfs가 더 편해서 bfs로 풀었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 쓰레기의 위치에 대한 정보를 담고 있는 board와 방문 여부를 알려주는 visited 리스트를 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- for 문을 돌면서 쓰레기가 위치한 지점에서부터 탐색을 시작하는 check 함수를 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;* check 함수에서는 해당 지점의 상하좌우를 확인하여 쓰레기가 위치하며, 방문한 적 없는 곳을 queue에 추가한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;</description>
      <author>ㅊhsilver</author>
      <guid isPermaLink="true">https://chaesilver.tistory.com/65</guid>
      <comments>https://chaesilver.tistory.com/65#entry65comment</comments>
      <pubDate>Sun, 9 Jan 2022 13:30:41 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2293번: 동전 1</title>
      <link>https://chaesilver.tistory.com/64</link>
      <description>&lt;h2 id=&quot;SE-8eee379a-6049-4c3c-bd36-fcbb0090dac3&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #ef5369;&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #585f69;&quot;&gt;입력&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;첫째 줄에 n, k가 주어진다. (1 &amp;le; n &amp;le; 100, 1 &amp;le;&amp;nbsp;k &amp;le; 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #585f69;&quot;&gt;출력&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;첫째 줄에 경우의 수를 출력한다. 경우의 수는 2&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;&amp;sup3;&amp;sup1;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;보다 작다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-35117ba9-49b6-4cdd-afd1-470802ff82b2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #409d00;&quot;&gt;&lt;b&gt;&lt;b&gt;✍&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;풀이과정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 떠올린 생각은 수능에서 풀었던 것처럼 가장 큰 수들을 먼저 넣고 경우의 수를 찾을라고 했었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 재귀를 쓰거나 top-down 방식을 사용해서 값을 저장해둘라고 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 모르겠어서 동영상을 참고해서 문제를 풀었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 7.67441%;&quot;&gt;dp[1]&lt;/td&gt;
&lt;td style=&quot;width: 8.02324%;&quot;&gt;dp[2]&lt;/td&gt;
&lt;td style=&quot;width: 9.30233%;&quot;&gt;dp[3]&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;dp[4]&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;dp[5]&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;dp[6]&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;dp[7]&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;dp[8]&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;dp[9]&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;dp[10]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 5%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 7.67441%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 8.02324%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 9.30233%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 5%;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 7.67441%;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 8.02324%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 9.30233%;&quot;&gt;2&lt;br /&gt;(1+2)&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;2&lt;br /&gt;(2+2,&lt;br /&gt;1+1+2)&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;2&lt;br /&gt;(2+2+1,&lt;br /&gt;1+1+1+2)&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 5%;&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;width: 7.67441%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 8.02324%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 9.30233%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;행 - k원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;열 - 동전의 가치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 dp(1, k)을 1원을 사용하여 k원을 만드는 방법이라고 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dp(2,k)에서는 1,2원을 사용하여 k원을 만드는데 &quot;2원을 추가할 때&quot;와 &quot;2원을 추가하지 않을 때&quot;로 나눌 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2원을 추가하지 않을 때는 dp[k]&lt;br /&gt;2원을 추가할 때는 dp[k-2]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;=&amp;gt; &lt;b&gt;dp[k] = dp[k] + dp[k-2]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1637467575413&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;n, k=map(int, input().split())

v=[]
for _ in range(n):
    v.append(int(input()))

dp=[0]*(k+1)
dp[0]=1

for i in v:
    for j in range(i, k+1):
        dp[j] += dp[j-i]

print(dp[k])&lt;/code&gt;&lt;/pre&gt;</description>
      <author>ㅊhsilver</author>
      <guid isPermaLink="true">https://chaesilver.tistory.com/64</guid>
      <comments>https://chaesilver.tistory.com/64#entry64comment</comments>
      <pubDate>Sun, 21 Nov 2021 13:06:22 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 3085번: 사탕 게임</title>
      <link>https://chaesilver.tistory.com/63</link>
      <description>&lt;h2 id=&quot;SE-8eee379a-6049-4c3c-bd36-fcbb0090dac3&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #ef5369;&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상근이는 어렸을 적에 &quot;봄보니 (Bomboni)&quot; 게임을 즐겨했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 처음에 N&amp;times;N크기에 사탕을 채워 놓는다. 사탕의 색은 모두 같지 않을 수도 있다. 상근이는 사탕의 색이 다른 인접한 두 칸을 고른다. 그 다음 고른 칸에 들어있는 사탕을 서로 교환한다.&amp;nbsp;이제, 모두 같은 색으로 이루어져 있는 가장 긴 연속 부분(행 또는 열)을 고른 다음 그 사탕을 모두 먹는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사탕이 채워진 상태가 주어졌을 때, 상근이가 먹을 수 있는 사탕의 최대 개수를 구하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입력&lt;/b&gt;&lt;/p&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 보드의 크기 N이 주어진다. (3 &amp;le; N &amp;le; 50)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 N개 줄에는 보드에 채워져 있는 사탕의 색상이 주어진다. 빨간색은 C, 파란색은 P, 초록색은 Z, 노란색은 Y로 주어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사탕의 색이 다른 인접한 두 칸이 존재하는 입력만 주어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;출력&lt;/b&gt;&lt;/p&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째 줄에 상근이가 먹을 수 있는 사탕의 최대 개수를 출력한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-35117ba9-49b6-4cdd-afd1-470802ff82b2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #409d00;&quot;&gt;&lt;b&gt;&lt;b&gt;✍&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;풀이과정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어렵따...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 연속되는 사탕의 수를 구하는 함수를 작성했다.&lt;/p&gt;
&lt;pre id=&quot;code_1637470132139&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def count(board, n):
    # 행
    for i in range(n):
        cnt=1
        for j in range(1, n):
            if board[i][j-1]==board[i][j]:
                cnt+=1
            else:
                cnt = 1
    # 열
    for i in range(n):
        cnt=1
        for j in range(1, n):
            if board[j-1][i]==board[j][i]:
                cnt+=1
            else:
                cnt = 1

n=int(input())

board =[list(input()) for _ in range(n)]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 경우의 서로 다른 색의 인접한 두 칸을 확인해봐야할지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최대가 발생할 수 있는 위치를 찾아 주변을 탐색해봐야할지...?&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;</description>
      <author>ㅊhsilver</author>
      <guid isPermaLink="true">https://chaesilver.tistory.com/63</guid>
      <comments>https://chaesilver.tistory.com/63#entry63comment</comments>
      <pubDate>Sun, 21 Nov 2021 11:37:11 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 1789번: 수들의 합</title>
      <link>https://chaesilver.tistory.com/62</link>
      <description>&lt;div class=&quot;jb-box jb-box-brown&quot;&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ul&gt;
&lt;h2 id=&quot;SE-8eee379a-6049-4c3c-bd36-fcbb0090dac3&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #ef5369;&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1169&quot; data-origin-height=&quot;485&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d1Rrmi/btrlIdkiC31/4u5M7GH68SEwK4neAXRiAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d1Rrmi/btrlIdkiC31/4u5M7GH68SEwK4neAXRiAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d1Rrmi/btrlIdkiC31/4u5M7GH68SEwK4neAXRiAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd1Rrmi%2FbtrlIdkiC31%2F4u5M7GH68SEwK4neAXRiAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1169&quot; height=&quot;485&quot; data-origin-width=&quot;1169&quot; data-origin-height=&quot;485&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;오랜만에 문제 짧아서 너무 신난당~!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-35117ba9-49b6-4cdd-afd1-470802ff82b2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #409d00;&quot;&gt;&lt;b&gt;&lt;b&gt;✍&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;풀이과정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1637461642033&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;n=int(input())
sum=0
tmp=1

while True:
    sum+=tmp
    if sum&amp;gt;n:
        print(tmp-1)
        break
    elif sum==n:
        print(tmp)
        break
    tmp+=1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;서로 다른 자연수이기 때문에 1부터 더해주면서 값을 1씩 늘려준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;S이 18일 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1+2+3+4+5=15이고 마지막으로 3을 더해야지 18이 되는데 서로 다른 자연수이기 때문에 5을 더하지 않고 8을 더해야함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;=&amp;gt; &quot;1+2+3+4+8&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 합이 S를 넘을 때 그 갯수에서 1을 빼줘야하고 합이 S인 경우에는 그 갯수를 출력해주면 된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #ef5369;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;</description>
      <author>ㅊhsilver</author>
      <guid isPermaLink="true">https://chaesilver.tistory.com/62</guid>
      <comments>https://chaesilver.tistory.com/62#entry62comment</comments>
      <pubDate>Sun, 21 Nov 2021 11:31:14 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 16916번: 부분 문자열</title>
      <link>https://chaesilver.tistory.com/61</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369; background-color: #ffffff; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;알고리즘 정리&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 id=&quot;SE-8eee379a-6049-4c3c-bd36-fcbb0090dac3&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #ef5369;&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;SE-35117ba9-49b6-4cdd-afd1-470802ff82b2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #409d00;&quot;&gt;&lt;b&gt;&lt;b&gt;✍&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;풀이과정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;KMP 알고리즘을 사용해서 다들 푼 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 설명만 봤을 때는 한 번에 잘 이해안가고 너무 생소하다,,,ㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;차근차근 보면서 걍 따라했더니&lt;/p&gt;
&lt;pre id=&quot;code_1636874621285&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def make_table():
    length = len(p)
    table = [0] * len(p)
    j = 0
    for i in range(1, length):
        while j &amp;gt; 0 and p[i] != p[j]:
            j = table[j - 1]
        if p[i] == p[j]:
            j += 1
            table[i] = j
    return table


def kmp():
    table = make_table()
    j = 0
    for i in range(len(s)):
        while j &amp;gt; 0 and s[i] != p[j]:
            j = table[j - 1]
        if s[i] == p[j]:
            if j == len(p) - 1:
                return True
            else:
                j += 1
    return False


s = input()
p = input()
if kmp():
    print(1)
else:
    print(0)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 따라 적은 것이 되어버렸다....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 풀라하면 다음 번에 풀 수 있을지ㅠㅠㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;</description>
      <author>ㅊhsilver</author>
      <guid isPermaLink="true">https://chaesilver.tistory.com/61</guid>
      <comments>https://chaesilver.tistory.com/61#entry61comment</comments>
      <pubDate>Sun, 14 Nov 2021 16:22:21 +0900</pubDate>
    </item>
  </channel>
</rss>