<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>2022 on j2234's log</title><link>https://log.j2234.cc/tags/2022/</link><description>Recent content in 2022 on j2234's log</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026</copyright><lastBuildDate>Mon, 04 Aug 2025 21:13:19 +0000</lastBuildDate><atom:link href="https://log.j2234.cc/tags/2022/index.xml" rel="self" type="application/rss+xml"/><item><title>Deprecated</title><link>https://log.j2234.cc/posts/2022-tistory/186-deprecated/</link><pubDate>Mon, 04 Aug 2025 21:13:19 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/186-deprecated/</guid><description>&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;confirm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;⚠️ Deprecated! \nGo to log.j2234.dev?&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;href&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://log.j2234.dev&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>12015 가장긴증가하는부분수열2</title><link>https://log.j2234.cc/posts/2022-tistory/185-12015-%EA%B0%80%EC%9E%A5%EA%B8%B4%EC%A6%9D%EA%B0%80%ED%95%98%EB%8A%94%EB%B6%80%EB%B6%84%EC%88%98%EC%97%B42/</link><pubDate>Mon, 07 Nov 2022 16:56:47 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/185-12015-%EA%B0%80%EC%9E%A5%EA%B8%B4%EC%A6%9D%EA%B0%80%ED%95%98%EB%8A%94%EB%B6%80%EB%B6%84%EC%88%98%EC%97%B42/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/12015" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/12015&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;12015번: 가장 긴 증가하는 부분 수열 2첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000)www.acmicpc.net&lt;/p&gt;
&lt;p&gt;예전에 풀어봤던 문제인데, 풀어야 하는 방식이 다르다&lt;/p&gt;
&lt;p&gt;예전에는 모든 배열을 돌면서 n^2의 시간복잡도로 풀었는데, 여기서는 시간초과가 난다.&lt;/p&gt;
&lt;p&gt;따라서 2분탐색을 통해서 시간복잡도를 nlogn으로 줄여야 한다.&lt;/p&gt;
&lt;p&gt;먼져, 원 수열을 반복문에 넣어 기본적으로 부분 수열을 구해나가는데,&lt;/p&gt;
&lt;p&gt;현재 보고있는 원소가&lt;/p&gt;
&lt;p&gt;만일 현재 구한 부분수열의 마지막원소(젤큼) 보다 크다면, 그냥 부분수열에 append시켜주면 된다.&lt;/p&gt;</description></item><item><title>13904 과제</title><link>https://log.j2234.cc/posts/2022-tistory/184-13904-%EA%B3%BC%EC%A0%9C/</link><pubDate>Tue, 01 Nov 2022 23:06:26 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/184-13904-%EA%B3%BC%EC%A0%9C/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/13904" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/13904&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;13904번: 과제예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;2가지 풀이가 있음&lt;/p&gt;
&lt;p&gt;힙으로 푸는건 순회공연때 해봤으므로, 그리디로 풀어봄(정답코드참고함)&lt;/p&gt;
&lt;p&gt;먼져, 숙제를 무조건 w가 큰 순서로 정렬한다&lt;/p&gt;
&lt;p&gt;그리고, 가장 좋은경우&lt;/p&gt;
&lt;p&gt;즉 숙제를 할 수 있는 마지막 날에 숙제를 한다고 생각한다.&lt;/p&gt;
&lt;p&gt;만일, 숙제를 할 수 있는 마지막날에 이미 숙제를 했다면, day를 1씩 줄여나가면서 가능한 날짜를 찾는다&lt;/p&gt;</description></item><item><title>1654랜선자르기</title><link>https://log.j2234.cc/posts/2022-tistory/183-1654%EB%9E%9C%EC%84%A0%EC%9E%90%EB%A5%B4%EA%B8%B0/</link><pubDate>Tue, 18 Oct 2022 13:07:09 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/183-1654%EB%9E%9C%EC%84%A0%EC%9E%90%EB%A5%B4%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1654" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1654&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1654번: 랜선 자르기첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그www.acmicpc.net&lt;/p&gt;
&lt;p&gt;실버문제지만, 이분탐색 개념이 잘 안잡혀있어서 헷갈렸다.&lt;/p&gt;
&lt;p&gt;시간초과를 피하기 위해, 이분탐색을 써야한다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;1 과 가장 긴 랜선의 값을 start, end로 놓는다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;2.(start+end)//2 , 즉 시작과 끝의 중간점을 랜선의 길이 (mid)라고 설정한다.&lt;/p&gt;
&lt;p&gt;mid 길이로 만들 때, 조건을 검사하여 n개 이상의 수가 나온다면,최소 길이(start)를 mid+1 로 설정한다.&lt;/p&gt;</description></item><item><title>14267 회사문화1</title><link>https://log.j2234.cc/posts/2022-tistory/182-14267-%ED%9A%8C%EC%82%AC%EB%AC%B8%ED%99%941/</link><pubDate>Mon, 17 Oct 2022 19:46:40 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/182-14267-%ED%9A%8C%EC%82%AC%EB%AC%B8%ED%99%941/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/14267" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/14267&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;14267번: 회사 문화 1영선회사에는 매우 좋은 문화가 있는데, 바로 상사가 직속 부하를 칭찬하면 그 부하가 부하의 직속 부하를 연쇄적으로 칭찬하는 내리 칭찬이 있다. 즉, 상사가 한 직속 부하를 칭찬하면 그 부하www.acmicpc.net&lt;/p&gt;
&lt;p&gt;dp와 트리구조를 이용해서 풀음&lt;/p&gt;
&lt;p&gt;리스트를 돌아가면서, 자기값에 자기 직속선배값을 더하면 됨&lt;/p&gt;
&lt;p&gt;오랫만에알고리즘푸는거라 시간이 많이 걸렸음&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysinput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readlinen&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;tmp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())]&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;bfor&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>2407두용액</title><link>https://log.j2234.cc/posts/2022-tistory/181-2407%EB%91%90%EC%9A%A9%EC%95%A1/</link><pubDate>Tue, 13 Sep 2022 13:03:31 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/181-2407%EB%91%90%EC%9A%A9%EC%95%A1/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/source/49072104" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/source/49072104&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;로그인www.acmicpc.net&lt;/p&gt;
&lt;p&gt;투 포인터가 뭔지 궁금해서 풀이를 봤다.&lt;/p&gt;
&lt;p&gt;생각보다 간단했다.&lt;/p&gt;
&lt;p&gt;먼저 정렬된 리스트를가지고 한다.&lt;/p&gt;
&lt;p&gt;처음에는 리스트[0],[-1]을 가지고 한다. (a,b)&lt;/p&gt;
&lt;p&gt;우리의 목적은 0에 가장 가까운 값을 찾는것이다.&lt;/p&gt;
&lt;p&gt;만일 a+b가 이전의 정답보다 작다면&lt;/p&gt;
&lt;p&gt;정답을 교체해준다.&lt;/p&gt;
&lt;p&gt;그리고 a+b가 0보다 크다면, 더 작은 수가 필요할 것이므로 end에서 1을 빼서 다시 계산,&lt;/p&gt;
&lt;p&gt;반대라면 더 큰 수가 필요하므로 start+1해서 다시 계산한다.&lt;/p&gt;
&lt;p&gt;start와 end의 위치가 바뀔때까지 탐색해서, 현 탐색 중 가장 a+b가 0에 가까웠던 a,b를 찾아 출력한다.&lt;/p&gt;</description></item><item><title>7662이중우선순위큐</title><link>https://log.j2234.cc/posts/2022-tistory/180-7662%EC%9D%B4%EC%A4%91%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84%ED%81%90/</link><pubDate>Thu, 08 Sep 2022 02:56:11 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/180-7662%EC%9D%B4%EC%A4%91%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84%ED%81%90/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/7662" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/7662&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;7662번: 이중 우선순위 큐입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적www.acmicpc.net&lt;/p&gt;
&lt;p&gt;그냥 정렬해서 풀면 간단한데, 시간 때문에 개고생을 해야된다.&lt;/p&gt;
&lt;p&gt;힙과 defaultdict 를 이용한다.&lt;/p&gt;
&lt;p&gt;minheap과 maxheap을 만들어서, 원소를 각각 추가해 준다 이때 defaultdict로 수가 몇개 들어있는지 확인한다.&lt;/p&gt;
&lt;p&gt;그리고 최소값은 minheap에서, 최댓값은 maxheap에서 뺀다.&lt;/p&gt;
&lt;p&gt;이때, 만일 다른 힙에서 삭제된 값일수도 있으니, defaultdict에 현재 pop한 값이 1개 이상일 때까지 (유효한 수가 존재)&lt;/p&gt;</description></item><item><title>2109순회강연</title><link>https://log.j2234.cc/posts/2022-tistory/179-2109%EC%88%9C%ED%9A%8C%EA%B0%95%EC%97%B0/</link><pubDate>Sun, 04 Sep 2022 22:16:45 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/179-2109%EC%88%9C%ED%9A%8C%EA%B0%95%EC%97%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2109" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2109&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2109번: 순회강연한 저명한 학자에게 n(0 ≤ n ≤ 10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1 ≤ d ≤ 10,000)일 안에 와서 강연을 해 주면 p(1 ≤ p ≤ 10,000)만큼의 강연료를 지불하겠다고 알려왔다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;이전 &amp;lsquo;보석도둑&amp;rsquo; 문제를 참고해서 풀었다.&lt;/p&gt;
&lt;p&gt;먼저 날짜가 높은 순서대로 정렬하고,&lt;/p&gt;
&lt;p&gt;강의를 마지막 날짜부터 1씩 감소시키면서,&lt;/p&gt;
&lt;p&gt;현 날짜와 똑같은 날짜의 강의를 힙에 넣는다.&lt;/p&gt;
&lt;p&gt;그후, 날짜가 하나씩 감소할 때마다, 힙에 남아있는 가장 큰 값을 넣는다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysimport&lt;/span&gt; &lt;span class="n"&gt;heapqinput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readlinelect&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="n"&gt;heapq&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;heappush&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lect&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 날짜, 강연료&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;lect&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 높은 날짜순서로 정렬h = [] # 최대힙answer = 0day = -lect[0][0] # 마지막 나ㅣㄹ짜&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;# 강의가 존재할 때까지&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;lect&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;lect&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;# 강의가 존재하고, 강의의 제한시간과 같을 때&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;heapq&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;heappush&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;heapq&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;heappop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lect&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;answer&lt;/span&gt; &lt;span class="o"&gt;-=&lt;/span&gt; &lt;span class="n"&gt;heapq&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;heappop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt; &lt;span class="o"&gt;-=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;그런데 다 풀고 나서 다른풀이를 보니 더 간단한 방법이 존재했다.&lt;/p&gt;</description></item><item><title>1202보석도둑</title><link>https://log.j2234.cc/posts/2022-tistory/178-1202%EB%B3%B4%EC%84%9D%EB%8F%84%EB%91%91/</link><pubDate>Sun, 04 Sep 2022 15:04:22 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/178-1202%EB%B3%B4%EC%84%9D%EB%8F%84%EB%91%91/</guid><description>&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysimport &lt;span class="nv"&gt;heapqinput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; sys.stdin.readlinejul &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;n, &lt;span class="nv"&gt;k&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; map&lt;span class="o"&gt;(&lt;/span&gt;int, input&lt;span class="o"&gt;()&lt;/span&gt;.split&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; _ in range&lt;span class="o"&gt;(&lt;/span&gt;n&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; heapq.heappush&lt;span class="o"&gt;(&lt;/span&gt;jul, &lt;span class="o"&gt;[&lt;/span&gt;*map&lt;span class="o"&gt;(&lt;/span&gt;int, input&lt;span class="o"&gt;()&lt;/span&gt;.split&lt;span class="o"&gt;())])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;bag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;int&lt;span class="o"&gt;(&lt;/span&gt;input&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; _ in range&lt;span class="o"&gt;(&lt;/span&gt;k&lt;span class="o"&gt;)]&lt;/span&gt; &lt;span class="c1"&gt;# 작은순서대로 정렬bag.sort()h = []answer = 0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; b in bag: &lt;span class="k"&gt;while&lt;/span&gt; jul and jul&lt;span class="o"&gt;[&lt;/span&gt;0&lt;span class="o"&gt;][&lt;/span&gt;0&lt;span class="o"&gt;]&lt;/span&gt; &amp;lt;&lt;span class="o"&gt;=&lt;/span&gt; b: &lt;span class="c1"&gt;# 가방에 담을수 있는 모든 보석&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; heapq.heappush&lt;span class="o"&gt;(&lt;/span&gt;h, -heapq.heappop&lt;span class="o"&gt;(&lt;/span&gt;jul&lt;span class="o"&gt;)[&lt;/span&gt;1&lt;span class="o"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# 무게만 담기&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; h: &lt;span class="c1"&gt;# 만일 담을수 있는 보석이 있다면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; answer -&lt;span class="o"&gt;=&lt;/span&gt; heapq.heappop&lt;span class="o"&gt;(&lt;/span&gt;h&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 현재 가방에 담을 수 있는 보석 중 가장 가치높은 보석만 꺼내기&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print&lt;span class="o"&gt;(&lt;/span&gt;answer&lt;span class="o"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1202" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1202&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1202번: 보석 도둑첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ciwww.acmicpc.net&lt;/p&gt;</description></item><item><title>스프링DB접근기술</title><link>https://log.j2234.cc/posts/2022-tistory/177-%EC%8A%A4%ED%94%84%EB%A7%81db%EC%A0%91%EA%B7%BC%EA%B8%B0%EC%88%A0/</link><pubDate>Fri, 02 Sep 2022 00:24:44 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/177-%EC%8A%A4%ED%94%84%EB%A7%81db%EC%A0%91%EA%B7%BC%EA%B8%B0%EC%88%A0/</guid><description>&lt;p&gt;h2 데이터베이스 사용&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;~&lt;/strong&gt;/study/h2/&lt;strong&gt;bin&lt;/strong&gt;의 h2.sh&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;순수 jdbc(무려 15년전)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;참고만하고 넘어가자&lt;/p&gt;
&lt;p&gt;2.jdbcTemplate&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.JPA&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JPA는 기존의 반복 코드는 물론이고, 기본적인 SQL도 JPA가 직접 만들어서 실행&lt;/p&gt;
&lt;p&gt;개발 생산성 up!!&lt;/p&gt;
&lt;p&gt;JPA는 표준 인터베이스 (ORM) Object Relational Mapping&lt;/p&gt;
&lt;p&gt;구현은 각 업체마다 다르다&lt;/p&gt;
&lt;p&gt;gradle에&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;implementation &lt;span class="s1"&gt;&amp;#39;org.springframework.boot:spring-boot-starter-data-jpa&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;추가&lt;/p&gt;
&lt;p&gt;application.properties&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;spring.datasource.url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;jdbc:h2:tcp://localhost/~/test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;spring.datasource.driver-class-name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;org.h2.Driverspring.datasource.username=sa&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;spring.jpa.show-sql&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;truespring.jpa.hibernate.ddl-auto=none&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;entity 매핑 (@Entity)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;@ID ==PK , @GeneratedValue == db에서 자동생성&lt;/p&gt;
&lt;p&gt;@Column(name=&amp;ldquo;username&amp;rdquo;) == 컬럼명&lt;/p&gt;
&lt;p&gt;jpa는 EntityManager로 모든게 동작함&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;스프링 데이터 JPA (JPA 업그레이드 버전)&lt;/strong&gt;****&lt;/p&gt;</description></item><item><title>13265색칠하기</title><link>https://log.j2234.cc/posts/2022-tistory/176-13265%EC%83%89%EC%B9%A0%ED%95%98%EA%B8%B0/</link><pubDate>Wed, 31 Aug 2022 20:05:52 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/176-13265%EC%83%89%EC%B9%A0%ED%95%98%EA%B8%B0/</guid><description>&lt;p&gt;acmicpc.net/problem/13265&lt;/p&gt;
&lt;p&gt;이분그래프 문제같다.&lt;/p&gt;
&lt;p&gt;나는 dfs가 좋다.&lt;/p&gt;
&lt;p&gt;dfs를 진행하면서, 색을 계속 바꿔가며 (not c)칠한다.&lt;/p&gt;
&lt;p&gt;만일 이미 색칠되어있는 칸을 만났는데, 현재색과 같으면 불가능한것이므로 바로 종료한다&lt;/p&gt;
&lt;p&gt;아니면 계속dfs를 진행한다&lt;/p&gt;
&lt;p&gt;이전에 이분그래프문제를 풀어봤더니 쉽게 풀었다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysfrom collections import &lt;span class="nv"&gt;dequeinput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; sys.stdin.readlinedef bfs&lt;span class="o"&gt;(&lt;/span&gt;i&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;q&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; deque&lt;span class="o"&gt;()&lt;/span&gt; q.append&lt;span class="o"&gt;((&lt;/span&gt;i, True&lt;span class="o"&gt;))&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; q: now, &lt;span class="nv"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; q.popleft&lt;span class="o"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; next in arr&lt;span class="o"&gt;[&lt;/span&gt;now&lt;span class="o"&gt;]&lt;/span&gt;: &lt;span class="k"&gt;if&lt;/span&gt; visited&lt;span class="o"&gt;[&lt;/span&gt;next&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; c:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; False &lt;span class="k"&gt;elif&lt;/span&gt; visited&lt;span class="o"&gt;[&lt;/span&gt;next&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; -1:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; q.append&lt;span class="o"&gt;((&lt;/span&gt;next, not c&lt;span class="o"&gt;))&lt;/span&gt; visited&lt;span class="o"&gt;[&lt;/span&gt;next&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; not c
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;Truet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; int&lt;span class="o"&gt;(&lt;/span&gt;input&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; _ in range&lt;span class="o"&gt;(&lt;/span&gt;t&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; n, &lt;span class="nv"&gt;m&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; map&lt;span class="o"&gt;(&lt;/span&gt;int, input&lt;span class="o"&gt;()&lt;/span&gt;.split&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="nv"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[[]&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; _ in range&lt;span class="o"&gt;(&lt;/span&gt;n + 1&lt;span class="o"&gt;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;visited&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;-1 &lt;span class="k"&gt;for&lt;/span&gt; _ in range&lt;span class="o"&gt;(&lt;/span&gt;n + 1&lt;span class="o"&gt;)]&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; __ in range&lt;span class="o"&gt;(&lt;/span&gt;m&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; a, &lt;span class="nv"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; map&lt;span class="o"&gt;(&lt;/span&gt;int, input&lt;span class="o"&gt;()&lt;/span&gt;.split&lt;span class="o"&gt;())&lt;/span&gt; arr&lt;span class="o"&gt;[&lt;/span&gt;a&lt;span class="o"&gt;]&lt;/span&gt;.append&lt;span class="o"&gt;(&lt;/span&gt;b&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; arr&lt;span class="o"&gt;[&lt;/span&gt;b&lt;span class="o"&gt;]&lt;/span&gt;.append&lt;span class="o"&gt;(&lt;/span&gt;a&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; i in range&lt;span class="o"&gt;(&lt;/span&gt;1, n + 1&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; visited&lt;span class="o"&gt;[&lt;/span&gt;i&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; -1: visited&lt;span class="o"&gt;[&lt;/span&gt;i&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; True
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;tmp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; bfs&lt;span class="o"&gt;(&lt;/span&gt;i&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; not tmp: &lt;span class="nb"&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;possible&amp;#34;&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; tmp &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;impossible&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>웹 MVC 개발</title><link>https://log.j2234.cc/posts/2022-tistory/175-%EC%9B%B9-mvc-%EA%B0%9C%EB%B0%9C/</link><pubDate>Wed, 31 Aug 2022 18:05:46 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/175-%EC%9B%B9-mvc-%EA%B0%9C%EB%B0%9C/</guid><description>&lt;p&gt;홈화면 추가&lt;/p&gt;
&lt;p&gt;/ 가 등록되지않았으면 index.html호출되고 아니면 무시됨&lt;/p&gt;
&lt;p&gt;form 안의 input태그의 name 속성이 키가 됨&lt;/p&gt;
&lt;p&gt;웹프강의가 조금은 도움이 되는것 같기도 하고&amp;hellip;.&lt;/p&gt;
&lt;p&gt;도데체 interface(MemberRepository) 를 호출하는데&lt;/p&gt;
&lt;p&gt;MemoryMemberRepository가 등록되는건지 모르겠다.&lt;/p&gt;</description></item><item><title>1374강의실</title><link>https://log.j2234.cc/posts/2022-tistory/174-1374%EA%B0%95%EC%9D%98%EC%8B%A4/</link><pubDate>Wed, 31 Aug 2022 14:54:06 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/174-1374%EA%B0%95%EC%9D%98%EC%8B%A4/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1374" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1374&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1374번: 강의실첫째 줄에 강의의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 세 개의 정수가 주어지는데, 순서대로 강의 번호, 강의 시작 시간, 강의 종료 시간을 의미한다. 강의www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음에는 걍 싹다비교해봤는데, 당연히 시간초과가 났다.&lt;/p&gt;
&lt;p&gt;이런류의 문제는 거의 처음 접해봐서, 힌트를 얻고 풀었다.&lt;/p&gt;
&lt;p&gt;먼져, 강의를 시작시간 순으로 정렬해준다.&lt;/p&gt;
&lt;p&gt;이후 끝나는 시간 순으로 힙을 만들어준다&lt;/p&gt;
&lt;p&gt;정렬해 놓은 강의들을 하나씩 비교하는데&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;만일 강의의 시작시간이 힙의 첫번째원소, 즉 가장 빨리 끝나는 강의보다 크다면&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>스프링 빈과 의존관계</title><link>https://log.j2234.cc/posts/2022-tistory/173-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B9%88%EA%B3%BC-%EC%9D%98%EC%A1%B4%EA%B4%80%EA%B3%84/</link><pubDate>Tue, 30 Aug 2022 19:18:21 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/173-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B9%88%EA%B3%BC-%EC%9D%98%EC%A1%B4%EA%B4%80%EA%B3%84/</guid><description>&lt;p&gt;@Controller&lt;/p&gt;
&lt;p&gt;스프링이 시작될때, 객체를 생성&lt;/p&gt;
&lt;p&gt;스프링 컨테이너에서 빈을 관리한다고 부름&lt;/p&gt;
&lt;p&gt;@Autowired&lt;/p&gt;
&lt;p&gt;스프링 컨테이너의 memberService를 가져와서 연동한다&lt;/p&gt;
&lt;p&gt;@Service&lt;/p&gt;
&lt;p&gt;스프링이 올라올때 컨테이너에 등록해줌&lt;/p&gt;
&lt;p&gt;@Repository&lt;/p&gt;
&lt;p&gt;스프링에 repository 등록&lt;/p&gt;
&lt;p&gt;전부 &lt;code&gt;@Component&lt;/code&gt; 가능&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;스프링 빈을 등록하는 2가지 방법&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;어노테이션 사용&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;@component 어노테이션이 있으면 스프링 빈으로 자동 등록한다&lt;/p&gt;
&lt;p&gt;@controller 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트 스캔 때문이다&lt;/p&gt;
&lt;p&gt;@controoler, @Service, @Repository 모두 @component 하위임&lt;/p&gt;
&lt;p&gt;hello.hellospring 하위 패키지가 아니면, 등록안해줌&lt;/p&gt;
&lt;p&gt;스프링은 기본적으로 싱글톤으로 동작(유일하게 하나만 등록해서 공유)&lt;/p&gt;</description></item><item><title>회원 도메인과 저장소 만들기</title><link>https://log.j2234.cc/posts/2022-tistory/172-%ED%9A%8C%EC%9B%90-%EB%8F%84%EB%A9%94%EC%9D%B8%EA%B3%BC-%EC%A0%80%EC%9E%A5%EC%86%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><pubDate>Mon, 29 Aug 2022 14:30:23 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/172-%ED%9A%8C%EC%9B%90-%EB%8F%84%EB%A9%94%EC%9D%B8%EA%B3%BC-%EC%A0%80%EC%9E%A5%EC%86%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>&lt;p&gt;Optional&lt;T&gt; : null도 반환가능하게해줌&lt;/p&gt;
&lt;p&gt;interface에 메소드의 몸통만 구현하면 &amp;ndash; 상속받는 개체에서 해당 메소드를 실행하면 오류가 날것&lt;/p&gt;
&lt;p&gt;따라서 상속받는 개체에서 메소드를 재정의해야함&lt;/p&gt;
&lt;p&gt;testcase를 작성하는법&lt;/p&gt;
&lt;p&gt;자바의 min메소드를 통해서 실행하면, 오래걸리고, 반복실행하기어렵고,&lt;/p&gt;
&lt;p&gt;한번에 실행하기 어려움&lt;/p&gt;
&lt;p&gt;따라서 Junit이라는 프레임워크를 실행하여 이러한 문제를 해결&lt;/p&gt;
&lt;p&gt;@AfterEach&lt;/p&gt;
&lt;p&gt;테스트가 끝날때마다 밑함수 호출&lt;/p&gt;
&lt;p&gt;command option v 그대로 반환&lt;/p&gt;
&lt;p&gt;ifPresent()객체가 있는지 확인&lt;/p&gt;
&lt;p&gt;given, when, then&lt;/p&gt;
&lt;p&gt;주어졌는데, 실행했을때, 결과가나와야됨&lt;/p&gt;</description></item><item><title>1655가운데를 말해요</title><link>https://log.j2234.cc/posts/2022-tistory/171-1655%EA%B0%80%EC%9A%B4%EB%8D%B0%EB%A5%BC-%EB%A7%90%ED%95%B4%EC%9A%94/</link><pubDate>Mon, 29 Aug 2022 11:34:05 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/171-1655%EA%B0%80%EC%9A%B4%EB%8D%B0%EB%A5%BC-%EB%A7%90%ED%95%B4%EC%9A%94/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1655" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1655&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1655번: 가운데를 말해요첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1www.acmicpc.net&lt;/p&gt;
&lt;p&gt;heap을 두개쓴다&lt;/p&gt;
&lt;p&gt;[최대힙] (중간값) [최소힙]&lt;/p&gt;
&lt;p&gt;중간값도 결국엔 힙에들어가야 하므로&lt;/p&gt;
&lt;p&gt;최대힙의 루트를 중간값으로 정한다.&lt;/p&gt;
&lt;p&gt;ex 1,2,3,&lt;/p&gt;
&lt;p&gt;[2,1],[3]&lt;/p&gt;
&lt;p&gt;왼쪽은 l , 오른쪽을 r 이라 하겠다.&lt;/p&gt;
&lt;p&gt;새로운 수가 들어오면,&lt;/p&gt;
&lt;p&gt;l이 r 보다 원소가 많으면 r에, 아니면 기준인 l 에 heappush 시킨다.&lt;/p&gt;
&lt;p&gt;이때, r의 루트가 (r에서 가장 작은 수가) l의루트(l에서 가장 큰 수) 보다 작다면&lt;/p&gt;</description></item><item><title>스프링 웹 개발 기초</title><link>https://log.j2234.cc/posts/2022-tistory/170-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9B%B9-%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EC%B4%88/</link><pubDate>Sun, 28 Aug 2022 19:24:25 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/170-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9B%B9-%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EC%B4%88/</guid><description>&lt;p&gt;정적 컨텐츠 - /static&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;mvc와 템플릿 엔진 (서버사이드)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;model 은 비지니스 로직 및 데이터 처리&lt;/p&gt;
&lt;p&gt;view는 화면을 그리는거&lt;/p&gt;
&lt;p&gt;controller는 request를 받는거&lt;/p&gt;
&lt;p&gt;@requestParam으로 get 파라미터를 받을 수 있음&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;API(클라라이언트사이드)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;@responsebody의 의미&lt;/p&gt;
&lt;p&gt;http 프로토콜의 body에 직접 넣어 준다. 문자그대로 클라이언트에 내려감 (html요소 x)&lt;/p&gt;
&lt;p&gt;객체를 리턴하면 json방식으로 전달됨!!! (HttpMessageConverter)가 동작함&lt;/p&gt;</description></item><item><title>view 환경설정 &amp; 빌드하고 실행하기</title><link>https://log.j2234.cc/posts/2022-tistory/169-view-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95--%EB%B9%8C%EB%93%9C%ED%95%98%EA%B3%A0-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0/</link><pubDate>Sun, 28 Aug 2022 15:38:37 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/169-view-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95--%EB%B9%8C%EB%93%9C%ED%95%98%EA%B3%A0-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0/</guid><description>&lt;p&gt;뭔가가 궁금하면&lt;/p&gt;
&lt;p&gt;spring.io -&amp;gt; project -&amp;gt;spring boot 의 공식문서를 찾아보자&lt;/p&gt;
&lt;p&gt;스프링 부트가 제공하는 웰컴 페이지&lt;/p&gt;
&lt;p&gt;resources/static/index.html 을 만들면, 자동으로 인식해줌&lt;/p&gt;
&lt;p&gt;thymeleaf 템플릿 엔진&lt;/p&gt;
&lt;p&gt;locallhost:8080/hello - &amp;gt; 톰켓에서 getMapping(&amp;lsquo;hello&amp;quot;) 를 찾아서 컨트롤러를 찾아줌&lt;/p&gt;
&lt;p&gt;model.addAttribute(&amp;ldquo;data&amp;rdquo;,&amp;ldquo;hello&amp;rdquo;)를 통해서 속성지정해줌&lt;/p&gt;
&lt;p&gt;return &amp;ldquo;hello&amp;rdquo; 는 viewResolver에게 화면을 찾으라고 함&lt;/p&gt;
&lt;p&gt;resources/templates/hello.html을 찾으라는 의미임&lt;/p&gt;
&lt;p&gt;spring-boot-devtools라이브러리로 서버 재시작 막을 수 있음&lt;/p&gt;
&lt;p&gt;빌드&lt;/p&gt;
&lt;p&gt;./gradlew build 하면 build 폴더가 생김&lt;/p&gt;
&lt;p&gt;build/libs/에 있는 hello-spring-0.0.1-SNAPSHOT.jar 가 빌드된 파일&lt;/p&gt;
&lt;p&gt;java -jar hello-spring-0.0.1-SNAPSHOT.jar로 스프링 서버 실행 가능!!&lt;/p&gt;</description></item><item><title>라이브러리 살펴보기</title><link>https://log.j2234.cc/posts/2022-tistory/168-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0/</link><pubDate>Sun, 28 Aug 2022 15:02:57 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/168-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0/</guid><description>&lt;p&gt;gradle은 의존관계가 있는 라이브러리를 함께 다운로드한다.&lt;/p&gt;
&lt;p&gt;현업에서는 system.out.println대신 로그를 쓴다.&lt;/p&gt;
&lt;p&gt;스프링부트 라이브러리&lt;/p&gt;
&lt;p&gt;sprint-boot-starter-web&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;spring-boot-starter-tomcat : 톰캣서버&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;spring-boot-webmvc : 스프링 웹 MVC&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진&lt;/p&gt;
&lt;p&gt;spring-boot-starter(공통) : 스프링부트 + 스프링코어 + 로깅&lt;/p&gt;
&lt;p&gt;spring-boot&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;spring-core&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;spring-boot-starter-logging&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;logback, slf4j&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>13460구슬탈출2</title><link>https://log.j2234.cc/posts/2022-tistory/167-13460%EA%B5%AC%EC%8A%AC%ED%83%88%EC%B6%9C2/</link><pubDate>Fri, 26 Aug 2022 17:17:47 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/167-13460%EA%B5%AC%EC%8A%AC%ED%83%88%EC%B6%9C2/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/13460" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/13460&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;13460번: 구슬 탈출 2첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 &amp;lsquo;.&amp;rsquo;, &amp;lsquo;#&amp;rsquo;, &amp;lsquo;O&amp;rsquo;, &amp;lsquo;R&amp;rsquo;, &amp;lsquo;B&amp;rsquo;&lt;a href="https://www.acmicpc.net" target="_blank" rel="noreferrer"&gt;www.acmicpc.net&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;빡세다. 예외케이스가 너무 많다.&lt;/p&gt;
&lt;p&gt;말로는 쉽다&lt;/p&gt;
&lt;p&gt;빨간구슬과 파랑구슬의 x,y좌표와 시간을 각각 큐에 넣고,&lt;/p&gt;
&lt;p&gt;더이상 진행할 수 없을때까지 한방향으로 움직인다음,&lt;/p&gt;
&lt;p&gt;조건에따라종료하면 된다. 근데 빡세다. 코드에 주석을 주렁주렁 달아놨더니 설명은 그만하겠다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysfrom collections import &lt;span class="nv"&gt;dequeinput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sys.stdin.readlinearr&lt;span class="o"&gt;=[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;move&lt;/span&gt;&lt;span class="o"&gt;=[[&lt;/span&gt;-1,0&lt;span class="o"&gt;]&lt;/span&gt;,&lt;span class="o"&gt;[&lt;/span&gt;1,0&lt;span class="o"&gt;]&lt;/span&gt;,&lt;span class="o"&gt;[&lt;/span&gt;0,-1&lt;span class="o"&gt;]&lt;/span&gt;,&lt;span class="o"&gt;[&lt;/span&gt;0,1&lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="nv"&gt;s&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;set&lt;span class="o"&gt;()&lt;/span&gt;n,m&lt;span class="o"&gt;=&lt;/span&gt;map&lt;span class="o"&gt;(&lt;/span&gt;int,input&lt;span class="o"&gt;()&lt;/span&gt;.split&lt;span class="o"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; i in range&lt;span class="o"&gt;(&lt;/span&gt;n&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="nv"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;list&lt;span class="o"&gt;(&lt;/span&gt;input&lt;span class="o"&gt;()&lt;/span&gt;.rstrip&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; j in range&lt;span class="o"&gt;(&lt;/span&gt;m&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; tmp&lt;span class="o"&gt;[&lt;/span&gt;j&lt;span class="o"&gt;]==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;B&amp;#39;&lt;/span&gt;: &lt;span class="nv"&gt;blue&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;i,j&lt;span class="o"&gt;)&lt;/span&gt; tmp&lt;span class="o"&gt;[&lt;/span&gt;j&lt;span class="o"&gt;]=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;elif&lt;/span&gt; tmp&lt;span class="o"&gt;[&lt;/span&gt;j&lt;span class="o"&gt;]==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;R&amp;#39;&lt;/span&gt;: &lt;span class="nv"&gt;red&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;i,j&lt;span class="o"&gt;)&lt;/span&gt; tmp&lt;span class="o"&gt;[&lt;/span&gt;j&lt;span class="o"&gt;]=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;elif&lt;/span&gt; tmp&lt;span class="o"&gt;[&lt;/span&gt;j&lt;span class="o"&gt;]==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;O&amp;#39;&lt;/span&gt;: &lt;span class="nv"&gt;target&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;i,j&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;continue&lt;/span&gt; arr.append&lt;span class="o"&gt;(&lt;/span&gt;tmp&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;############################# arr만들기&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;def bfs&lt;span class="o"&gt;()&lt;/span&gt;: &lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;deque&lt;span class="o"&gt;()&lt;/span&gt; q.append&lt;span class="o"&gt;((&lt;/span&gt;red&lt;span class="o"&gt;[&lt;/span&gt;0&lt;span class="o"&gt;]&lt;/span&gt;,red&lt;span class="o"&gt;[&lt;/span&gt;1&lt;span class="o"&gt;]&lt;/span&gt;,blue&lt;span class="o"&gt;[&lt;/span&gt;0&lt;span class="o"&gt;]&lt;/span&gt;,blue&lt;span class="o"&gt;[&lt;/span&gt;1&lt;span class="o"&gt;]&lt;/span&gt;,0&lt;span class="o"&gt;))&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; q: rcx,rcy,bcx,bcy,t &lt;span class="o"&gt;=&lt;/span&gt; q.popleft&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;t&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;10:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# print(&amp;#39;10보다 커서 종료&amp;#39;) print(-1) exit()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; dx,dy in move: rnx,rny &lt;span class="o"&gt;=&lt;/span&gt; rcx,rcy &lt;span class="c1"&gt;# 다음에 갈 곳&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; bnx,bny&lt;span class="o"&gt;=&lt;/span&gt; bcx,bcy R,B&lt;span class="o"&gt;=&lt;/span&gt;False,False &lt;span class="c1"&gt;#구멍에 들어갔는지 여부&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;#####################################################while문&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; True:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; rflag,bflag&lt;span class="o"&gt;=&lt;/span&gt;False,False &lt;span class="c1"&gt;#r,b가 더이상 움직일수 없는가&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; not R : &lt;span class="c1"&gt;#빨강이 아직 구멍에 안들어갔다면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;arr&lt;span class="o"&gt;[&lt;/span&gt;rnx+dx&lt;span class="o"&gt;][&lt;/span&gt;rny+dy&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# 다음 빨강의 위치&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;O&amp;#39;&lt;/span&gt;: &lt;span class="c1"&gt;#구멍에 들어갔을 경우&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;R&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;t+1 &lt;span class="c1"&gt;#R만들어줌&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; rnx,rny&lt;span class="o"&gt;=&lt;/span&gt;-1,-1 &lt;span class="c1"&gt;#-1로 바꿔서 비교할때 중복 ㅌ&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="nv"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;#&amp;#39;&lt;/span&gt;: &lt;span class="c1"&gt;#벽일경우&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;rflag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;True &lt;span class="c1"&gt;#더이상 움직일 수 없음&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;: &lt;span class="c1"&gt;#움직일 수 있는경우&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; rnx,rny&lt;span class="o"&gt;=&lt;/span&gt;rnx+dx,rny+dy
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;: &lt;span class="c1"&gt;# 빨강이 구멍에 들어갔을경우, 조건 만족&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;rflag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;True 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;arr&lt;span class="o"&gt;[&lt;/span&gt;bnx+dx&lt;span class="o"&gt;][&lt;/span&gt;bny+dy&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;#파란색&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;O&amp;#39;&lt;/span&gt;: &lt;span class="c1"&gt;#구멍에 들어갔을 경우 B=1 # B만들어줌&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;break&lt;/span&gt; &lt;span class="c1"&gt;#볼필요없음 elif tmp==&amp;#39;#&amp;#39;: #벽일경우&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;bflag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;True &lt;span class="c1"&gt;#더이상 움직일 수 없음 else: # 움직일 수 있는 경우&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; bnx,bny&lt;span class="o"&gt;=&lt;/span&gt;bnx+dx,bny+dy 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;rnx&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;bnx and &lt;span class="nv"&gt;rny&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;bny : &lt;span class="c1"&gt;#만일 서로 같은 위치에 있다면 !! 둘다움직였다면 절대 같은 위치 불가능&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; bflag: &lt;span class="c1"&gt;#만일 빨강이 움직였다면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; rnx,rny&lt;span class="o"&gt;=&lt;/span&gt; rnx-dx,rny-dy &lt;span class="c1"&gt;# 이전으로 초기화해줌&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;rflag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;True &lt;span class="k"&gt;elif&lt;/span&gt; rflag:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; bnx,bny&lt;span class="o"&gt;=&lt;/span&gt; bnx-dx,bny-dy &lt;span class="nv"&gt;bflag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;True
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; rflag and bflag : &lt;span class="c1"&gt;#서로 더이상 움직일 수 없는 상태라면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;break&lt;/span&gt; &lt;span class="c1"&gt;#드디어 종료 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;######################################################## While문 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; B: &lt;span class="c1"&gt;#만일 b가 구멍에 들어갔다면 continue; #그냥넘김&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;elif&lt;/span&gt; R: &lt;span class="c1"&gt;#만일 b가 구멍에들어가지않고 R만 들어갔다면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# print(&amp;#39;R만 들어가서 종료&amp;#39;) print(R) #출력후 종료&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; exit&lt;span class="o"&gt;()&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;rnx,rny,bnx,bny&lt;span class="o"&gt;)&lt;/span&gt; not in s: &lt;span class="c1"&gt;#만일 아무것도 구멍에 안들어갔다면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; q.append&lt;span class="o"&gt;(((&lt;/span&gt;rnx,rny,bnx,bny,t+1&lt;span class="o"&gt;)))&lt;/span&gt; &lt;span class="c1"&gt;#큐에삽입&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; s.add&lt;span class="o"&gt;((&lt;/span&gt;rnx,rny,bnx,bny&lt;span class="o"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;#방문체크bfs()# print(s)# print(&amp;#39;끝나서 종료&amp;#39;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print&lt;span class="o"&gt;(&lt;/span&gt;-1&lt;span class="o"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>프로젝트 준비</title><link>https://log.j2234.cc/posts/2022-tistory/166-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%A4%80%EB%B9%84/</link><pubDate>Fri, 26 Aug 2022 01:18:51 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/166-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%A4%80%EB%B9%84/</guid><description>&lt;p&gt;&lt;a href="https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard" target="_blank" rel="noreferrer"&gt;https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런&amp;hellip;&lt;a href="https://www.inflearn.com" target="_blank" rel="noreferrer"&gt;www.inflearn.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;스프링 입문 강의를 보고 따라함&lt;/p&gt;
&lt;p&gt;&lt;a href="https://log.j2234.cc/posts/2022-tistory/166-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%A4%80%EB%B9%84/file/attachment-01.pdf" &gt;스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 v2021-12-01_2.pdf&lt;/a&gt;&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="1437"
 height="855"
 src="https://log.j2234.cc/posts/2022-tistory/166-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%A4%80%EB%B9%84/img/image-01_hu_fb2123bf8a20e9a6.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/166-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%A4%80%EB%B9%84/img/image-01_hu_fb2123bf8a20e9a6.webp 800w, https://log.j2234.cc/posts/2022-tistory/166-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%A4%80%EB%B9%84/img/image-01_hu_d8d0c5827f9999b9.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/166-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%A4%80%EB%B9%84/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;p&gt;IntellJ사용&lt;/p&gt;
&lt;p&gt;다운받은 파일을 study에 옮기고,&lt;/p&gt;
&lt;p&gt;거기에 있는 build.gradle에 IntellJ 프로젝트를 연다&lt;/p&gt;</description></item><item><title>5052전화번호목록</title><link>https://log.j2234.cc/posts/2022-tistory/165-5052%EC%A0%84%ED%99%94%EB%B2%88%ED%98%B8%EB%AA%A9%EB%A1%9D/</link><pubDate>Wed, 24 Aug 2022 20:23:28 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/165-5052%EC%A0%84%ED%99%94%EB%B2%88%ED%98%B8%EB%AA%A9%EB%A1%9D/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/5052" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/5052&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;5052번: 전화번호 목록첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가www.acmicpc.net&lt;/p&gt;
&lt;p&gt;하나하나비교하는방법밖에 안나서 인터넷을 찾아봤는데&lt;/p&gt;
&lt;p&gt;정말 간단했다.&lt;/p&gt;
&lt;p&gt;문자열을 입력받고 정렬하면,&lt;/p&gt;
&lt;p&gt;인접한 두 문자는 가장 가까운 문자일 것이다.&lt;/p&gt;
&lt;p&gt;따라서 arr[i]와 arr[i+1]만 비교하면 된다. 신기하다.&lt;/p&gt;
&lt;p&gt;그냥비교해줘도 되고, 좀더 빠르게 하려면&lt;/p&gt;
&lt;p&gt;startswith()함수를 통해서 비교해주면 끝&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import &lt;span class="nv"&gt;sysinput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;sys.stdin.readlinet&lt;span class="o"&gt;=&lt;/span&gt;int&lt;span class="o"&gt;(&lt;/span&gt;input&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; _ in range&lt;span class="o"&gt;(&lt;/span&gt;t&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;int&lt;span class="o"&gt;(&lt;/span&gt;input&lt;span class="o"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sorted&lt;span class="o"&gt;([&lt;/span&gt;input&lt;span class="o"&gt;()&lt;/span&gt;.rstrip&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; _ in range&lt;span class="o"&gt;(&lt;/span&gt;n&lt;span class="o"&gt;)])&lt;/span&gt; &lt;span class="c1"&gt;#정렬하면 바로 옆만 비교하면 됨!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;flag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;False &lt;span class="k"&gt;for&lt;/span&gt; i in range&lt;span class="o"&gt;(&lt;/span&gt;n-1&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="k"&gt;if&lt;/span&gt; arr&lt;span class="o"&gt;[&lt;/span&gt;i+1&lt;span class="o"&gt;]&lt;/span&gt;.startswith&lt;span class="o"&gt;(&lt;/span&gt;arr&lt;span class="o"&gt;[&lt;/span&gt;i&lt;span class="o"&gt;])&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;flag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;True &lt;span class="nb"&gt;break&lt;/span&gt; print&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;NO&amp;#39;&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; flag &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;YES&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>18405경쟁적 전염</title><link>https://log.j2234.cc/posts/2022-tistory/164-18405%EA%B2%BD%EC%9F%81%EC%A0%81-%EC%A0%84%EC%97%BC/</link><pubDate>Tue, 23 Aug 2022 21:13:32 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/164-18405%EA%B2%BD%EC%9F%81%EC%A0%81-%EC%A0%84%EC%97%BC/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/18405" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/18405&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;18405번: 경쟁적 전염첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치www.acmicpc.net&lt;/p&gt;
&lt;p&gt;ㅋㅋㅋㅋㅋㅋㅋ 정신똑바로차리고풀어야겠다&lt;/p&gt;
&lt;p&gt;말도안되는부분에서실수했다.&lt;/p&gt;
&lt;p&gt;그냥 bfs다 큐에 넣을때 바이러스 내림차순으로만 넣어주면된다.&lt;/p&gt;
&lt;p&gt;끝&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysfrom collections import &lt;span class="nv"&gt;dequeinput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sys.stdin.readlinearr&lt;span class="o"&gt;=[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;move&lt;/span&gt;&lt;span class="o"&gt;=[[&lt;/span&gt;-1,0&lt;span class="o"&gt;]&lt;/span&gt;,&lt;span class="o"&gt;[&lt;/span&gt;1,0&lt;span class="o"&gt;]&lt;/span&gt;,&lt;span class="o"&gt;[&lt;/span&gt;0,-1&lt;span class="o"&gt;]&lt;/span&gt;,&lt;span class="o"&gt;[&lt;/span&gt;0,1&lt;span class="o"&gt;]]&lt;/span&gt;n,k&lt;span class="o"&gt;=&lt;/span&gt;map&lt;span class="o"&gt;(&lt;/span&gt;int,input&lt;span class="o"&gt;()&lt;/span&gt;.split&lt;span class="o"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;virus&lt;/span&gt;&lt;span class="o"&gt;=[[]&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; _ in range&lt;span class="o"&gt;(&lt;/span&gt;k+1&lt;span class="o"&gt;)]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; i in range&lt;span class="o"&gt;(&lt;/span&gt;n&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;=[&lt;/span&gt;*map&lt;span class="o"&gt;(&lt;/span&gt;int,input&lt;span class="o"&gt;()&lt;/span&gt;.split&lt;span class="o"&gt;())]&lt;/span&gt; arr.append&lt;span class="o"&gt;(&lt;/span&gt;tmp&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; j in range&lt;span class="o"&gt;(&lt;/span&gt;n&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;t&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;tmp&lt;span class="o"&gt;[&lt;/span&gt;j&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; t!&lt;span class="o"&gt;=&lt;/span&gt;0: virus&lt;span class="o"&gt;[&lt;/span&gt;t&lt;span class="o"&gt;]&lt;/span&gt;.append&lt;span class="o"&gt;((&lt;/span&gt;i,j,0&lt;span class="o"&gt;))&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;s,x,y&lt;span class="o"&gt;=&lt;/span&gt;map&lt;span class="o"&gt;(&lt;/span&gt;int,input&lt;span class="o"&gt;()&lt;/span&gt;.split&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;deque&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; vii in virus: &lt;span class="k"&gt;if&lt;/span&gt; vii:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; vi in vii: q.append&lt;span class="o"&gt;(&lt;/span&gt;vi&lt;span class="o"&gt;)&lt;/span&gt;def bfs&lt;span class="o"&gt;()&lt;/span&gt;: &lt;span class="k"&gt;while&lt;/span&gt; q:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; cx,cy,t&lt;span class="o"&gt;=&lt;/span&gt;q.popleft&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;t&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;s: print&lt;span class="o"&gt;(&lt;/span&gt;arr&lt;span class="o"&gt;[&lt;/span&gt;x-1&lt;span class="o"&gt;][&lt;/span&gt;y-1&lt;span class="o"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; exit&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; dx,dy in move: nx,ny&lt;span class="o"&gt;=&lt;/span&gt;cx+dx,cy+dy
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; 0&amp;lt;&lt;span class="o"&gt;=&lt;/span&gt;nx&amp;lt;n and 0&amp;lt;&lt;span class="o"&gt;=&lt;/span&gt;ny&amp;lt;n and not arr&lt;span class="o"&gt;[&lt;/span&gt;nx&lt;span class="o"&gt;][&lt;/span&gt;ny&lt;span class="o"&gt;]&lt;/span&gt;: 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; arr&lt;span class="o"&gt;[&lt;/span&gt;nx&lt;span class="o"&gt;][&lt;/span&gt;ny&lt;span class="o"&gt;]=&lt;/span&gt;arr&lt;span class="o"&gt;[&lt;/span&gt;cx&lt;span class="o"&gt;][&lt;/span&gt;cy&lt;span class="o"&gt;]&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; q.append&lt;span class="o"&gt;((&lt;/span&gt;nx,ny,t+1&lt;span class="o"&gt;))&lt;/span&gt; bfs&lt;span class="o"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print&lt;span class="o"&gt;(&lt;/span&gt;arr&lt;span class="o"&gt;[&lt;/span&gt;x-1&lt;span class="o"&gt;][&lt;/span&gt;y-1&lt;span class="o"&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>4574스도미노쿠</title><link>https://log.j2234.cc/posts/2022-tistory/163-4574%EC%8A%A4%EB%8F%84%EB%AF%B8%EB%85%B8%EC%BF%A0/</link><pubDate>Tue, 23 Aug 2022 10:05:24 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/163-4574%EC%8A%A4%EB%8F%84%EB%AF%B8%EB%85%B8%EC%BF%A0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/4574" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/4574&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;분명 푸는방법은 아는데,&lt;/p&gt;
&lt;p&gt;계속 오류가 생겨서 엄청 고생했다.&lt;/p&gt;
&lt;p&gt;스도쿠랑 푸는법은 같다.&lt;/p&gt;
&lt;p&gt;먼저 arr을 생성하고, 입력으로 이를 채운다.&lt;/p&gt;
&lt;p&gt;arr을 탐색하며 공백을 리스트에 넣는다.&lt;/p&gt;
&lt;p&gt;dfs를 통해 공백의 원소를 2개씩 채워나간다. 첫 번째 원소를 채운 후, 이에 맞게 백트래킹을 진행하여 두번째 원소를 채우고, 다음단계로 넘어간다.&lt;/p&gt;
&lt;p&gt;만일 공백의 다음번 좌표가 이미 전 단계에서 채워서 채워져있다면, 그 다음 공백을 채운다.&lt;/p&gt;
&lt;p&gt;이렇게 반복하여, 더이상 남은 공백이 없을 때 정답을 출력한다.&lt;/p&gt;
&lt;p&gt;어제풀때는 그렇게 에러가 나더니 오늘은 술술 풀려서 더 짜증난다.&lt;/p&gt;</description></item><item><title>A와B 2</title><link>https://log.j2234.cc/posts/2022-tistory/162-a%EC%99%80b-2/</link><pubDate>Sat, 13 Aug 2022 19:04:13 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/162-a%EC%99%80b-2/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/12919" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/12919&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;12919번: A와 B 2수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈www.acmicpc.net&lt;/p&gt;
&lt;p&gt;생각보다 어려운 문제였다.&lt;/p&gt;
&lt;p&gt;생각해야될 점은, 1번조건과 2번조건 중 어느조건을 선택해야하는지 모른다는 것이다.&lt;/p&gt;
&lt;p&gt;예제인&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-dns" data-lang="dns"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nc"&gt;ABABA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;를 볼때,&lt;/p&gt;
&lt;p&gt;BABA의 첫번째문자는 B이므로 2번 조건이 될 수 도 있고, 마지막에 A이므로 1번 조건이 될 수 도 있다.&lt;/p&gt;
&lt;p&gt;따라서 두가지 경우를 모두 탐색해야 한다.&lt;/p&gt;</description></item><item><title>16197 두동전</title><link>https://log.j2234.cc/posts/2022-tistory/160-16197-%EB%91%90%EB%8F%99%EC%A0%84/</link><pubDate>Wed, 10 Aug 2022 20:32:45 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/160-16197-%EB%91%90%EB%8F%99%EC%A0%84/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/16197" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/16197&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;16197번: 두 동전N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고,www.acmicpc.net&lt;/p&gt;
&lt;p&gt;bfs를 두 동전으로 하면 된다&lt;/p&gt;
&lt;p&gt;방문처리를 안하고도 풀 수있지만, 시간이 어마어마하계 걸린다.&lt;/p&gt;
&lt;p&gt;나는 따로 방문배열을 만든 것이 아니라, set에 각 동전에 위치를 넣고, 비교하는 방식으로 했다.&lt;/p&gt;
&lt;p&gt;60%에서 계속 에러가 나서 고민했는데, 최대10번까지 허용인데 11번까지 허용해서 그랬다.&lt;/p&gt;
&lt;p&gt;즉, 11번하면 정답인 경우에는 -1을 출력해야한다.&lt;/p&gt;</description></item><item><title>9019 DSLR</title><link>https://log.j2234.cc/posts/2022-tistory/158-9019-dslr/</link><pubDate>Tue, 09 Aug 2022 20:22:59 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/158-9019-dslr/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/9019" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/9019&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;9019번: DSLR네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에www.acmicpc.net&lt;/p&gt;
&lt;p&gt;간단한? dfs문제&lt;/p&gt;
&lt;p&gt;처음에는 L,R을 string으로 구현하려 했었지만,&lt;/p&gt;
&lt;p&gt;생각해보니 그냥 10으로 나누거나(몫) 곱해주고, 끝자리나 첫자리만 따로 처리해서 더해주면 된다.&lt;/p&gt;
&lt;p&gt;파이썬은 느려서 pypy로 제출했다. 파이썬으로 푼 사람이 3명밖에없다!!&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;from collections import dequeimport &lt;span class="nv"&gt;sysinput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sys.stdin.readlinedef D&lt;span class="o"&gt;(&lt;/span&gt;n:int&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;rv&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;n&lt;span class="s"&gt;&amp;lt;&amp;lt;1 if rv&amp;gt;9999: rv%=1&lt;/span&gt;&lt;span class="m"&gt;0000&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; rvdef S&lt;span class="o"&gt;(&lt;/span&gt;n:int&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="nv"&gt;rv&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;n-1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;rv&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;-1: &lt;span class="nv"&gt;rv&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;9999&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; rvdef L&lt;span class="o"&gt;(&lt;/span&gt;n:int&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; a,b&lt;span class="o"&gt;=&lt;/span&gt;divmod&lt;span class="o"&gt;(&lt;/span&gt;n,1000&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;#첫자리, 나머지3자리 rv=(b*10)+a #세지리 값 변경, 첫자리값넣기&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; rvdef R&lt;span class="o"&gt;(&lt;/span&gt;n:int&lt;span class="o"&gt;)&lt;/span&gt;: a,b&lt;span class="o"&gt;=&lt;/span&gt;divmod&lt;span class="o"&gt;(&lt;/span&gt;n,10&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;#나머지3자리, 끝자리 rv=b*1000+a #앞세자리&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;rvdd&lt;/span&gt;&lt;span class="o"&gt;={&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;D&amp;#39;&lt;/span&gt;:D, &lt;span class="s1"&gt;&amp;#39;S&amp;#39;&lt;/span&gt;:S, &lt;span class="s1"&gt;&amp;#39;L&amp;#39;&lt;/span&gt;:L, &lt;span class="s1"&gt;&amp;#39;R&amp;#39;&lt;/span&gt;:R,&lt;span class="o"&gt;}&lt;/span&gt;def bfs&lt;span class="o"&gt;(&lt;/span&gt;start,end&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=[&lt;/span&gt;None &lt;span class="k"&gt;for&lt;/span&gt; _ in range&lt;span class="o"&gt;(&lt;/span&gt;10000&lt;span class="o"&gt;)]&lt;/span&gt; arr&lt;span class="o"&gt;[&lt;/span&gt;start&lt;span class="o"&gt;]=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt; &lt;span class="nv"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;deque&lt;span class="o"&gt;([&lt;/span&gt;start&lt;span class="o"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; q: &lt;span class="nv"&gt;now&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;q.popleft&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; k,v in dd.items&lt;span class="o"&gt;()&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;next&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; v&lt;span class="o"&gt;(&lt;/span&gt;now&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; 0&amp;lt;&lt;span class="o"&gt;=&lt;/span&gt;next&amp;lt;&lt;span class="m"&gt;10000&lt;/span&gt; and arr&lt;span class="o"&gt;[&lt;/span&gt;next&lt;span class="o"&gt;]==&lt;/span&gt;None:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; arr&lt;span class="o"&gt;[&lt;/span&gt;next&lt;span class="o"&gt;]=&lt;/span&gt;arr&lt;span class="o"&gt;[&lt;/span&gt;now&lt;span class="o"&gt;]&lt;/span&gt;+k q.append&lt;span class="o"&gt;(&lt;/span&gt;next&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;next&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;end: print&lt;span class="o"&gt;(&lt;/span&gt;arr&lt;span class="o"&gt;[&lt;/span&gt;end&lt;span class="o"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; _ in range&lt;span class="o"&gt;(&lt;/span&gt;int&lt;span class="o"&gt;(&lt;/span&gt;input&lt;span class="o"&gt;()))&lt;/span&gt;: start,end&lt;span class="o"&gt;=&lt;/span&gt;map&lt;span class="o"&gt;(&lt;/span&gt;int,input&lt;span class="o"&gt;()&lt;/span&gt;.split&lt;span class="o"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; bfs&lt;span class="o"&gt;(&lt;/span&gt;start,end&lt;span class="o"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>6087레이저통신</title><link>https://log.j2234.cc/posts/2022-tistory/155-6087%EB%A0%88%EC%9D%B4%EC%A0%80%ED%86%B5%EC%8B%A0/</link><pubDate>Mon, 08 Aug 2022 22:34:04 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/155-6087%EB%A0%88%EC%9D%B4%EC%A0%80%ED%86%B5%EC%8B%A0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/6087" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/6087&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;6087번: 레이저 통신크기가 1×1인 정사각형으로 나누어진 W×H 크기의 지도가 있다. 지도의 각 칸은 빈 칸이거나 벽이며, 두 칸은 &amp;lsquo;C&amp;rsquo;로 표시되어 있는 칸이다. &amp;lsquo;C&amp;rsquo;로 표시되어 있는 두 칸을 레이저로 통신하기 위해서www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음엔, 모든 방향으로 더이상갈수없을때까지 bfs를 반복하다보면 답이 나올거라 생각했다.&lt;/p&gt;
&lt;p&gt;근데 50%정도에서 계속 틀려서 반례를보니깐&lt;/p&gt;
&lt;p&gt;4 4C&amp;hellip;&amp;hellip;.&lt;strong&gt;..&lt;/strong&gt;.C&lt;/p&gt;
&lt;p&gt;다음과같은반례가 있었다.&lt;/p&gt;
&lt;p&gt;요점은, 한 지점에 도착하는 최소경로가, 방향에 따라 최적의 정답이 아닐 수 있다는 것이다.&lt;/p&gt;
&lt;p&gt;따라서, 만일 bfs를 진행하다가, 다음 방문점이 지금의 방문점보다 클때만 탐색을 진행하고, 만일 크다면 덮어쓰는것이다.&lt;/p&gt;</description></item><item><title>사용자</title><link>https://log.j2234.cc/posts/2022-tistory/153-%EC%82%AC%EC%9A%A9%EC%9E%90/</link><pubDate>Sun, 07 Aug 2022 22:00:25 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/153-%EC%82%AC%EC%9A%A9%EC%9E%90/</guid><description>&lt;p&gt;id = id정보가져옴 (userid, groupid, groups)&lt;/p&gt;
&lt;p&gt;who = 누가 여기 접속해있는가?&lt;/p&gt;
&lt;p&gt;su[option][username] = 유저변경 암것도안주면 루트로&lt;/p&gt;
&lt;p&gt;sudo passwd -u root = 루트에 잠금걸려있는경우 풀기&lt;/p&gt;
&lt;p&gt;sudo passwd -l root = 잠금걸기&lt;/p&gt;
&lt;p&gt;사용자의 추가 (sudo필요)&lt;/p&gt;
&lt;p&gt;useradd -m [name] 사용자의 홈디렉토리까지 만들어줌&lt;/p&gt;
&lt;p&gt;passwd [name] 사용자 비밀번호 지정&lt;/p&gt;
&lt;p&gt;sudo usermod -a -G sudo [nusername] = 사용자에게 sudo권한주기 (sudo그룹에 추가)&lt;/p&gt;
&lt;p&gt;권한 (permission)&lt;/p&gt;
&lt;p&gt;-rw-rw-r&amp;ndash; 1 ubuntu ubuntu 3 Aug 7 12:10 perm.txt&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;= type&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;rw-rw-r&amp;ndash; = access mode&lt;/p&gt;</description></item><item><title>실행</title><link>https://log.j2234.cc/posts/2022-tistory/150-%EC%8B%A4%ED%96%89/</link><pubDate>Sat, 30 Jul 2022 21:52:43 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/150-%EC%8B%A4%ED%96%89/</guid><description>&lt;p&gt;vim 실행중 ctrl-z를 통하여 백그라운드로 전환 가능&lt;/p&gt;
&lt;p&gt;이후에 fg명령을 통해서 포그라운드로 전환 가능&lt;/p&gt;
&lt;p&gt;jobs라는 명령어를 통해서 백그라운드에 있는 프로세스를 볼 수 있음&lt;/p&gt;
&lt;p&gt;fg %[숫자] 명령어를 통하여 fg명령으로 실행할 프로세스를 결정할 수 있음&lt;/p&gt;
&lt;p&gt;kill %[숫자]를 통하여 프로세스 종료 가능 -9 강제종료 -15 안전종료&lt;/p&gt;
&lt;p&gt;ls -alR / &amp;gt;result.txt 2&amp;gt;error.log &amp;amp;&lt;/p&gt;
&lt;p&gt;&amp;amp; 명령어를 통해 진행중인 작업을 백그라운드에서 실행 (종료되면 알려줌)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;daemon이란?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;항상 실행되고 있는 프로그램 냉장고를 생각&lt;/p&gt;
&lt;p&gt;서버 등&lt;/p&gt;
&lt;p&gt;/etc/init.d/ 에 위치해있음 (데몬이 위치하는 디렉토리)&lt;/p&gt;</description></item><item><title>파일을 찾는 법</title><link>https://log.j2234.cc/posts/2022-tistory/149-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%B0%BE%EB%8A%94-%EB%B2%95/</link><pubDate>Sat, 30 Jul 2022 19:51:33 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/149-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%B0%BE%EB%8A%94-%EB%B2%95/</guid><description>&lt;p&gt;locate&lt;/p&gt;
&lt;p&gt;디렉토리를 뒤지지 않고, 파일정보가 있는 데이터베이스를 뒤짐&lt;/p&gt;
&lt;p&gt;find&lt;/p&gt;
&lt;p&gt;디렉토리를 뒤지면서 파일을 가져옴&lt;/p&gt;
&lt;p&gt;find /-name &amp;lsquo;.log&amp;rsquo; ==루트 디렉토리 안에 .log 파일을 찾아라&lt;/p&gt;
&lt;p&gt;whereis&lt;/p&gt;
&lt;p&gt;실행파일을 찾는 명령&lt;/p&gt;
&lt;p&gt;echo $PATH를 통하여, PATH 경로를 볼 수 있음&lt;/p&gt;
&lt;p&gt;PATH에서 명령어를 발견하면, 실행하게 됨&lt;/p&gt;</description></item><item><title>프로세스</title><link>https://log.j2234.cc/posts/2022-tistory/148-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4/</link><pubDate>Sat, 30 Jul 2022 19:30:12 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/148-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4/</guid><description>&lt;p&gt;기본용어&lt;/p&gt;
&lt;p&gt;ssd,hdd =저장장치 storage&lt;/p&gt;
&lt;p&gt;ram = memory&lt;/p&gt;
&lt;p&gt;cpu = 중앙처리장치&lt;/p&gt;
&lt;p&gt;이런것들을 포괄적으로 processor라고 부름&lt;/p&gt;
&lt;p&gt;memory와 storage는 정보를 저장한다는 공통점이 있다.&lt;/p&gt;
&lt;p&gt;cpu는 매우 빠르게 동작하므로, storage가 가진 속도로는 cpu의 처리속도를 따라올 수 없다.&lt;/p&gt;
&lt;p&gt;그래서, storage에 있는 프로그램을 사용할 때는, 프로그램을 메모리에 적재한다. 이 메모리를 cpu가 읽어 동작한다.&lt;/p&gt;
&lt;p&gt;process란?&lt;/p&gt;
&lt;p&gt;mkdir,top,rm &amp;hellip;. 등의 명령어는 /bin, /sbin등의 파일, 즉 storage에 저장되어있다. 이걸 프로그램이라 한다.&lt;/p&gt;
&lt;p&gt;이 프로그램을 실행하면, 프로그램이 memory에 적재되어 cpu에 의해서 처리되게된다. 이 상태를 프로세스라 한다.&lt;/p&gt;</description></item><item><title>shell script &amp; 디렉토리</title><link>https://log.j2234.cc/posts/2022-tistory/147-shell-script--%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC/</link><pubDate>Thu, 28 Jul 2022 20:47:00 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/147-shell-script--%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC/</guid><description>&lt;p&gt;쉘 명령어들 실행시키는 파일&lt;/p&gt;
&lt;p&gt;#!/bin/bash =&amp;gt; 밑에 작성되는 코드들이 /bin/bash를 통해 실행될 것임&lt;/p&gt;
&lt;p&gt;if ! [ -d bak ]; =&amp;gt; 현재 디렉토리에 bak라는 디렉토리가 존재하지 않는다면&lt;/p&gt;
&lt;p&gt;mkdir bak =&amp;gt; bak라는 디렉토리를 만들어라&lt;/p&gt;
&lt;p&gt;fi =&amp;gt; 조건문 종료&lt;/p&gt;
&lt;p&gt;cp *.log bak =&amp;gt; 현재 디렉토리의 모든 .log 파일을 bak 복사해라&lt;/p&gt;
&lt;p&gt;디렉토리&lt;/p&gt;
&lt;p&gt;/ (루트)를 기준으로 트리 형식&lt;/p&gt;
&lt;p&gt;/bin =&amp;gt; user binaries 사용자들이 사용하는 명령어들 위치&lt;/p&gt;
&lt;p&gt;/sbin =&amp;gt; system binaries 시스템이 사용하는 명령어 위치&lt;/p&gt;
&lt;p&gt;/etc =&amp;gt; configuration files 설정 파일&lt;/p&gt;</description></item><item><title>16954 움직이는 미로 탈출</title><link>https://log.j2234.cc/posts/2022-tistory/146-16954-%EC%9B%80%EC%A7%81%EC%9D%B4%EB%8A%94-%EB%AF%B8%EB%A1%9C-%ED%83%88%EC%B6%9C/</link><pubDate>Wed, 27 Jul 2022 21:20:25 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/146-16954-%EC%9B%80%EC%A7%81%EC%9D%B4%EB%8A%94-%EB%AF%B8%EB%A1%9C-%ED%83%88%EC%B6%9C/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/16954" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/16954&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;16954번: 움직이는 미로 탈출욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음에는 그래프를 통한 bfs를 생각했지만, 배열도 만들지 않고 풀었다.&lt;/p&gt;
&lt;p&gt;아이디어만 알면 진짜 간단하다.&lt;/p&gt;
&lt;p&gt;먼져, 벽의 위치를 집합에 넣는다.&lt;/p&gt;
&lt;p&gt;이후 7번 (어느 벽이던 7번 턴이 지나면 사라지므로) 반복문을 돌며 bfs를 하는데,&lt;/p&gt;
&lt;p&gt;다음 노드를 큐에 끝에 넣지 않고 임시집합에 넣는다.&lt;/p&gt;</description></item><item><title>정규표현식 기본</title><link>https://log.j2234.cc/posts/2022-tistory/145-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D-%EA%B8%B0%EB%B3%B8/</link><pubDate>Tue, 26 Jul 2022 15:52:10 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/145-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D-%EA%B8%B0%EB%B3%B8/</guid><description>&lt;p&gt;&lt;a href="http://zvon.org/comp/r/tut-Regexp.html#Pages~Page_1" target="_blank" rel="noreferrer"&gt;http://zvon.org/comp/r/tut-Regexp.html#Pages~Page_1&lt;/a&gt; 참고함&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;위치와 이스케이핑&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;^ = ^ 뒤에 있는 패턴이 시작되는 부분에 있는것 검출&lt;/p&gt;
&lt;p&gt;^ who = who로 시작하는거 검출&lt;/p&gt;
&lt;p&gt;$ = $뒤에있는 패턴이 끝나는 부분인거 검출&lt;/p&gt;
&lt;p&gt;who$ = $who로 끝나는거 검출&lt;/p&gt;
&lt;p&gt;만일 ^,$가 소스상에 있다면? : 역슬래시를 해준다. (이스케이프)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;모든문자&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;. (점) 은 모든 문자를 의미&lt;/p&gt;
&lt;p&gt;&amp;hellip;.. 어떠한것도 상관없이 5개의 문자를 가지고있는거&lt;/p&gt;
&lt;p&gt;만일 . 을 찾으려면 이스케이프!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;특정문자&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;[] 사용 (문자 하나를 해당)&lt;/p&gt;
&lt;p&gt;[-] = range&lt;/p&gt;
&lt;p&gt;[a-Z] = a부터 Z까지의 모든 문자 [c-ka-d2-6] = c에서 k, a에서 d, 2에서 6까지의 모든문자&lt;/p&gt;</description></item><item><title>mysql 한번에끝내기</title><link>https://log.j2234.cc/posts/2022-tistory/144-mysql-%ED%95%9C%EB%B2%88%EC%97%90%EB%81%9D%EB%82%B4%EA%B8%B0/</link><pubDate>Mon, 25 Jul 2022 23:12:09 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/144-mysql-%ED%95%9C%EB%B2%88%EC%97%90%EB%81%9D%EB%82%B4%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=vgIc4ctNFbc" target="_blank" rel="noreferrer"&gt;https://www.youtube.com/watch?v=vgIc4ctNFbc&lt;/a&gt; 참고함&lt;/p&gt;
&lt;p&gt;DML : 데이터 조작(crud) 하는데 사용&lt;/p&gt;
&lt;p&gt;DDL : 데이터 정의 (create,drop,alter) 하는데 사용&lt;/p&gt;
&lt;p&gt;DCL :데이터 컨트롤(제어) Grant,REVOKE &amp;hellip;. (권한)&lt;/p&gt;
&lt;p&gt;기본적인 mysql의 world db 사용&lt;/p&gt;
&lt;p&gt;SHOW DATABASES :현재 서버에 있는 모든 db 조회&lt;/p&gt;
&lt;p&gt;USE world : world db를 사용하겠다.&lt;/p&gt;
&lt;p&gt;show tablews ; wolrd의 테이블 보기 status 붙이면 정보까지&lt;/p&gt;
&lt;p&gt;describe [tablename] 테이블 정보 보기 (줄여서 desc)&lt;/p&gt;
&lt;p&gt;SELECT&lt;/p&gt;
&lt;p&gt;where : 조건&lt;/p&gt;
&lt;p&gt;관계연산자 사용 가능&lt;/p&gt;
&lt;p&gt;or, and , 조건연산자, not, 등&lt;/p&gt;
&lt;p&gt;EX)7000000~8000000인구수의 도시 검색&lt;/p&gt;</description></item><item><title>14466소가길을건너간이유6</title><link>https://log.j2234.cc/posts/2022-tistory/143-14466%EC%86%8C%EA%B0%80%EA%B8%B8%EC%9D%84%EA%B1%B4%EB%84%88%EA%B0%84%EC%9D%B4%EC%9C%A06/</link><pubDate>Tue, 19 Jul 2022 22:36:44 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/143-14466%EC%86%8C%EA%B0%80%EA%B8%B8%EC%9D%84%EA%B1%B4%EB%84%88%EA%B0%84%EC%9D%B4%EC%9C%A06/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/14466" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/14466&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;14466번: 소가 길을 건너간 이유 6첫 줄에 N, K, R이 주어진다. 다음 R줄에는 한 줄에 하나씩 길이 주어진다. 길은 상하좌우로 인접한 두 목초지를 잇고, r c r′ c′의 형태 (행, 열, 행, 열)로 주어진다. 각 수는 1 이상 N 이하이다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음엔 단순히 모든 소에 대해 bfs를 실행하여, 만나지못하는 모든 소를 구하고,&lt;/p&gt;
&lt;p&gt;만난소+1(자신) 에다가 만나지못한 모든소를 곱해준다음, 쌍이니 2로 나눠주는식으로 구했다.&lt;/p&gt;
&lt;p&gt;이렇게 통과를 하긴 했는데, 다른사람들정답을 보니 전부나보다 빨랐다. (1048ms나옴)&lt;/p&gt;</description></item><item><title>Drawer메뉴 &amp; BuildContext</title><link>https://log.j2234.cc/posts/2022-tistory/142-drawer%EB%A9%94%EB%89%B4--buildcontext/</link><pubDate>Tue, 19 Jul 2022 16:36:49 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/142-drawer%EB%A9%94%EB%89%B4--buildcontext/</guid><description>&lt;p&gt;leading: 아이콘버튼이나 간단한 위젯을 왼쪽에 배치할 때&lt;/p&gt;
&lt;p&gt;trailing: 오른쪽에 배치&lt;/p&gt;
&lt;p&gt;actions: 복수의 아이콘 버튼 등을 오른쪽에 배치할 때&lt;/p&gt;
&lt;p&gt;onpressed: 함수의 형태로 (eventlisenter)&lt;/p&gt;
&lt;p&gt;Drawer: 왼쪽에 누르면 나오는 메뉴&lt;/p&gt;
&lt;p&gt;BuildContext란?&lt;/p&gt;
&lt;p&gt;1.widget tree에서 현재 위젯의 위치를 알 수 있는 정보&lt;/p&gt;
&lt;p&gt;build-&amp;gt;scaffold wiget 리턴 이때 이게 어디에 위치하는지의 정보를 담은 context를 넣어서 리턴해줌&lt;/p&gt;
&lt;p&gt;2.이 BuildContext는 stateless | state 빌드 메서드에 의해서 리턴 된 위젯의 부모가 됨 (부모걸 상속받음)&lt;/p&gt;</description></item><item><title>플러터 기본 위젯</title><link>https://log.j2234.cc/posts/2022-tistory/141-%ED%94%8C%EB%9F%AC%ED%84%B0-%EA%B8%B0%EB%B3%B8-%EC%9C%84%EC%A0%AF/</link><pubDate>Mon, 18 Jul 2022 22:54:13 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/141-%ED%94%8C%EB%9F%AC%ED%84%B0-%EA%B8%B0%EB%B3%B8-%EC%9C%84%EC%A0%AF/</guid><description>&lt;p&gt;위젯이 tree구조로 이루어져있다.&lt;/p&gt;
&lt;p&gt;변화없으면 stateless stateful&lt;/p&gt;
&lt;p&gt;myapp (root)&lt;/p&gt;
&lt;p&gt;MaterialApp 전체앱을 감싸는 위젯&lt;/p&gt;
&lt;p&gt;MyHomePage 기능,디자인들이 만들어짐&lt;/p&gt;
&lt;p&gt;Scaffold (중요!) 앱화면과 기능을 구성하기 위한 빈 페이지를 준비&lt;/p&gt;
&lt;p&gt;이 밑으로 모든 위젯들이 들어감&lt;/p&gt;
&lt;p&gt;중요! 수정할때 항상 밑에괄호부터 지울것&lt;/p&gt;
&lt;p&gt;mainAxisAlignment= 현재 주 축에서 정렬 ex) column이면 세로축에서 정렬&lt;/p&gt;
&lt;p&gt;crossAxisAlignment=보조축정렬&lt;/p&gt;
&lt;p&gt;Sizedbox=공백만들기&lt;/p&gt;
&lt;p&gt;pubspec.yaml ==설정 (들여쓰기 중요)&lt;/p&gt;
&lt;p&gt;asset을 통하여 이미지 삽입&lt;/p&gt;
&lt;p&gt;안드로이드스튜디오에서 에뮬레이터를 만들었으면,&lt;/p&gt;
&lt;p&gt;그 폴더에 vsc로도 실행가능!&lt;/p&gt;</description></item><item><title>2206 벽부수고 이동하기</title><link>https://log.j2234.cc/posts/2022-tistory/140-2206-%EB%B2%BD%EB%B6%80%EC%88%98%EA%B3%A0-%EC%9D%B4%EB%8F%99%ED%95%98%EA%B8%B0/</link><pubDate>Thu, 14 Jul 2022 17:07:02 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/140-2206-%EB%B2%BD%EB%B6%80%EC%88%98%EA%B3%A0-%EC%9D%B4%EB%8F%99%ED%95%98%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2206" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2206&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2206번: 벽 부수고 이동하기N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로www.acmicpc.net&lt;/p&gt;
&lt;p&gt;가장 기본적인 방식&lt;/p&gt;
&lt;p&gt;visited 2차원배열에, 한차원을 더 추가하여&lt;/p&gt;
&lt;p&gt;벽을 부쉈는지를 판별한다.&lt;/p&gt;
&lt;p&gt;만일 벽을 부쉈다면, 앞으로 벽을 부수지 못할 것이고,&lt;/p&gt;
&lt;p&gt;벽을 부수지 않았다면, 벽을 부순 대신 벽을 부순 차원으로 넘어간다.&lt;/p&gt;
&lt;p&gt;이렇게 가장 먼저 n-1,m-1에 도착한 요소를 찾아 +1 해주고 print(해주면된다.)&lt;/p&gt;</description></item><item><title>아기상어</title><link>https://log.j2234.cc/posts/2022-tistory/139-%EC%95%84%EA%B8%B0%EC%83%81%EC%96%B4/</link><pubDate>Wed, 13 Jul 2022 12:54:13 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/139-%EC%95%84%EA%B8%B0%EC%83%81%EC%96%B4/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/16236" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/16236&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;16236번: 아기 상어N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가www.acmicpc.net&lt;/p&gt;
&lt;p&gt;가장 어려웠던 조건이&lt;/p&gt;
&lt;p&gt;거리가 가까운 물고기가 많다면, 가장 위에 있는 물고기, 그러한 물고기가 여러마리라면, 가장 왼쪽에 있는 물고기를 먹는다&lt;/p&gt;
&lt;p&gt;였다.&lt;/p&gt;
&lt;p&gt;처음에는 방향 순서만 잘 하면 될 줄 알았지만,&lt;/p&gt;
&lt;p&gt;디버깅해보면 방향만으로는 부족하다.&lt;/p&gt;
&lt;p&gt;한참 헤메다가 질문계시판에서 정렬 힌트를 얻고 풀었다.&lt;/p&gt;
&lt;p&gt;결국 &amp;lsquo;해당 거리에서 먹을수 있는 모든 물고기들&amp;rsquo; 을 모아놓고,&lt;/p&gt;</description></item><item><title>5430 AC</title><link>https://log.j2234.cc/posts/2022-tistory/138-5430-ac/</link><pubDate>Tue, 12 Jul 2022 15:41:23 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/138-5430-ac/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/5430" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/5430&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;5430번: AC각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;푸른건안어려웠는데 빈 배열이 주어질 경우 예외처리때문에 한참을 헤멨다.&lt;/p&gt;
&lt;p&gt;중요한건 실제로 뒤집는게 아니라&lt;/p&gt;
&lt;p&gt;boolean 변수 하나를 두고&lt;/p&gt;
&lt;p&gt;뒤집는걸 실제로 뒤집는게 아니라&lt;/p&gt;
&lt;p&gt;popleft, pop 으로 구현한다&lt;/p&gt;
&lt;p&gt;그후 만일 뒤집힌 상태면 리스트를 거꾸로 출력만하면 된다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysfrom&lt;/span&gt; &lt;span class="n"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;dequeinput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;solve&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;deque&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;ss&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="c1"&gt;# 상태바 0은정상 1은 뒤집힌상태 for i in p:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;R&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ss&lt;/span&gt;&lt;span class="o"&gt;^=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;#0이면 1로, 1이면 0으로 continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#버리는연산일경우 if not l: #비어있으면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;error&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;ss&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#뒤집힌상태면 l.pop() #뒤에서빼고&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#아니면 l.popleft() #앞에서뺌&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;ss&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reverse&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;[&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;,&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;]&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rstrip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rstrip&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;deque&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;deque&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;solve&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>3190뱀</title><link>https://log.j2234.cc/posts/2022-tistory/137-3190%EB%B1%80/</link><pubDate>Mon, 11 Jul 2022 20:14:42 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/137-3190%EB%B1%80/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/3190" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/3190&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3190번: 뱀&amp;rsquo;Dummy&amp;rsquo; 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임www.acmicpc.net&lt;/p&gt;
&lt;p&gt;그냥구현이다&lt;/p&gt;
&lt;p&gt;하나 아쉬운점은 따로 뱀을 사전으로 나타내지 않고&lt;/p&gt;
&lt;p&gt;그냥 arr에 나타내면 더 빠르다.&lt;/p&gt;
&lt;p&gt;이게 더 간단한데 내가 왜 사전을 썼는지 몰겠다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysinput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readlinefrom&lt;/span&gt; &lt;span class="n"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;dequen&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;info&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;#방향변환정보&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;info&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;#가로세로좌표dd=[[0,1],[1,0],[0,-1],[-1,0]] #보고있는방향d=0 #방향 (첨에오른쪽)t=0 #시간&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;snake&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;deque&lt;/span&gt;&lt;span class="p"&gt;([(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)])&lt;/span&gt; &lt;span class="c1"&gt;#뱀본체ss=dict() #뱀위치장용ss[(0,0)]=1while True: t+=1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;dd&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;ss&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#벽이나 자기자신과 부딪치지 않았다면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;snake&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="n"&gt;ss&lt;/span&gt;&lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="c1"&gt;# 이동한 칸에 사과가 없다면 tmp=snake.popleft() #꼬리자르기&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;del&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ss&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;#꼬리자르기 else: arr[r][c]=0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#종료 break if t in info: #방향정보변환이 있다면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;info&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;L&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;-=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="c1"&gt;#여기까지print(t)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>1461 도서관</title><link>https://log.j2234.cc/posts/2022-tistory/136-1461-%EB%8F%84%EC%84%9C%EA%B4%80/</link><pubDate>Sun, 10 Jul 2022 22:18:20 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/136-1461-%EB%8F%84%EC%84%9C%EA%B4%80/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1461" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1461&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1461번: 도서관세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책www.acmicpc.net&lt;/p&gt;
&lt;p&gt;쉬운문제였는데 생각이 너무많아서 어렵게풀었다.&lt;/p&gt;
&lt;p&gt;먼져, 음수와 양수를 각각 리스트에넣고 음수는 abs해준다. 이를 거꾸로 정렬한다.&lt;/p&gt;
&lt;p&gt;그 후, 각각 길이//m, 길이%m을 구한다. (a,b)&lt;/p&gt;
&lt;p&gt;a만큼 반복문을 돌면서 (a-1까지)&lt;/p&gt;
&lt;p&gt;각 배열[i*m](그 범위에서의 최댓값) 의 2배(왕복) 정답에 더해주다&lt;/p&gt;
&lt;p&gt;만약 b가 있다면,&lt;/p&gt;
&lt;p&gt;더 처리할 원소가 있으므로&lt;/p&gt;</description></item><item><title>14503 로봇 청소기</title><link>https://log.j2234.cc/posts/2022-tistory/135-14503-%EB%A1%9C%EB%B4%87-%EC%B2%AD%EC%86%8C%EA%B8%B0/</link><pubDate>Sun, 10 Jul 2022 16:49:46 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/135-14503-%EB%A1%9C%EB%B4%87-%EC%B2%AD%EC%86%8C%EA%B8%B0/</guid><description>&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysinput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readlinen&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())])&lt;/span&gt;&lt;span class="n"&gt;ddd&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt; &lt;span class="c1"&gt;#방향&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;dd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;mv&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="c1"&gt;#방향왼쪽으로 d-=mv if d&amp;lt;0: d=4+d return dcnt=0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#현재칸이 비어있다면 arr[r][c]=&amp;#39;#&amp;#39; #청소하고&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;#청소한칸+=1 next_d=dd(d) #현재의 왼쪽방향 a,b=ddd[next_d]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;rr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;cc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="c1"&gt;#왼쪽칸좌표 if not arr[rr][cc]: #왼쪽이 비어있다면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;rr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;cc&lt;/span&gt; &lt;span class="c1"&gt;# 다음 반복에 그 칸으로 이동 d=next_d # 방향바꿈 cnt=0 #카운트 초기화&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;continue&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;#왼쪽이 차있다면 if cnt&amp;lt;4: #4번이하라면,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;next_d&lt;/span&gt; &lt;span class="c1"&gt;#방향만 바꿈 cnt+=1 #횟수올려줌&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;cnt&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#4번연속 방향만 바꿨다면 next_d=dd(d,2) #뒤쪽을 탐색&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ddd&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;next_d&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;rr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;cc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;rr&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;cc&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#벽이라면 break #끗&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#벽이아니라면 cnt=0 #카운트초기화&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;rr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;cc&lt;/span&gt; &lt;span class="c1"&gt;#다음반복때 들어갈 칸print(answer)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/14503" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/14503&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;14503번: 로봇 청소기로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어www.acmicpc.net&lt;/p&gt;</description></item><item><title>1927 최소힙</title><link>https://log.j2234.cc/posts/2022-tistory/134-1927-%EC%B5%9C%EC%86%8C%ED%9E%99/</link><pubDate>Thu, 07 Jul 2022 14:05:32 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/134-1927-%EC%B5%9C%EC%86%8C%ED%9E%99/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1927" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1927&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;힙2&lt;/p&gt;
&lt;p&gt;힙1과 같음&lt;/p&gt;
&lt;p&gt;구현:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysinput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readlineheap&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;returndef&lt;/span&gt; &lt;span class="n"&gt;rm&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;heapify&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;resdef&lt;/span&gt; &lt;span class="n"&gt;heapify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;heap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;heapify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())):&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rm&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;모듈:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysimport&lt;/span&gt; &lt;span class="n"&gt;heapqinput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readlineh&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())):&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;heapq&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;heappop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;except&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;heapq&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;heappush&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>11279최대힙</title><link>https://log.j2234.cc/posts/2022-tistory/133-11279%EC%B5%9C%EB%8C%80%ED%9E%99/</link><pubDate>Wed, 06 Jul 2022 20:36:42 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/133-11279%EC%B5%9C%EB%8C%80%ED%9E%99/</guid><description>&lt;p&gt;오랫만에 글쓴다&lt;/p&gt;
&lt;p&gt;heap은 정말 ㅈ같은 구조이다.&lt;/p&gt;
&lt;p&gt;여서 설명할 자신이 없으니 그냥 나중에 인터넷 다시한번 찾아본다.&lt;/p&gt;
&lt;p&gt;이진트리이며, 배열로 구성되있고, maxheap이므로, 모든 부모는 자식보다 커야한다.&lt;/p&gt;
&lt;p&gt;편의를 위해 배열의 첫 번째는 0이다.&lt;/p&gt;
&lt;p&gt;먼져 insert는, 배열의 마지막에 삽입한다. 이후, 2씩 나눠주며(몫만취함) &amp;ndash;완전 2진트리이므로 2씩나누면 부모임&lt;/p&gt;
&lt;p&gt;부모가 자기보다 큰 원소일때까지 바꿔나간다.(아님루트일때만)&lt;/p&gt;
&lt;p&gt;힙에서 자료를 빼는것이 조금 까다롭다.&lt;/p&gt;
&lt;p&gt;먼져, 루트와 마지막노드를 바꿔준다. 그리고 pop해주면, 일단 빼긴 뺀거다.&lt;/p&gt;
&lt;p&gt;그럼 당연히 마지막 노드는 작을것이므로, heapify()를 수행해준다.&lt;/p&gt;
&lt;p&gt;heapify()란 루트부터 내려가면서 자신의 자식들과 비교하며 자식보다 자기가 작을 경우엔 위치를 바꾼다 &amp;ndash;힙구조를 유지시키는 연산이다&lt;/p&gt;</description></item><item><title>11659 구간합 구하기 4</title><link>https://log.j2234.cc/posts/2022-tistory/132-11659-%EA%B5%AC%EA%B0%84%ED%95%A9-%EA%B5%AC%ED%95%98%EA%B8%B0-4/</link><pubDate>Tue, 05 Jul 2022 23:03:43 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/132-11659-%EA%B5%AC%EA%B0%84%ED%95%A9-%EA%B5%AC%ED%95%98%EA%B8%B0-4/</guid><description>&lt;p&gt;개념만 알면 쉽다&lt;/p&gt;
&lt;p&gt;그냥 리스트로 하면 O(mn) 이 된다.&lt;/p&gt;
&lt;p&gt;참고로 행렬 m개에 대해 n번의 더하기를 수행한다는 뜻이다.&lt;/p&gt;
&lt;p&gt;따라서, 누적합리스트를 생성한다.&lt;/p&gt;
&lt;p&gt;그리고 구간이 주어지면, 끝구간의 값에서 시작구간 값-1을 해주면 된다&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysinput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readlinel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;tt&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;tt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>운영체제가 하는 일</title><link>https://log.j2234.cc/posts/2022-tistory/131-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EA%B0%80-%ED%95%98%EB%8A%94-%EC%9D%BC/</link><pubDate>Tue, 05 Jul 2022 17:29:32 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/131-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EA%B0%80-%ED%95%98%EB%8A%94-%EC%9D%BC/</guid><description>&lt;p&gt;OS=OPERATING SYSTEM = 운영체제&lt;/p&gt;
&lt;p&gt;접근제어+동기화+관리&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;프로세스들 관리하기 (자원관리)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;컴퓨터가 &amp;lsquo;국가&amp;rsquo; 라면 운영체제는 &amp;lsquo;정부조직&amp;rsquo; 이다 스레드는 &amp;lsquo;개인&amp;rsquo;이고 프로세스는 &amp;lsquo;가족&amp;rsquo; 이다&lt;/p&gt;
&lt;p&gt;커널영역 - 유저영역&lt;/p&gt;
&lt;p&gt;프로세스는 각자의 전용공간을 가지고 있다. (virtual Memory)&lt;/p&gt;
&lt;p&gt;이 안의 작업단위가 쓰레드임&lt;/p&gt;
&lt;p&gt;따라서, 쓰레드들은 프로세스에게 할당된 전용공간을 공유한다.&lt;/p&gt;
&lt;p&gt;따라서 동기화가 중요하다.&lt;/p&gt;
&lt;p&gt;가장 중요한 전산자원은 cpu와 메모리이다. 운영체제는 이것을 프로세스에게 분배환다.&lt;/p&gt;
&lt;p&gt;이를 분배하는 것을 스케줄링이라 한다.&lt;/p&gt;
&lt;p&gt;쓰레드마다 stack, 프로세스마다 heap과 실행코드 영역을 갖는다.&lt;/p&gt;
&lt;p&gt;가상메모리란?&lt;/p&gt;
&lt;p&gt;RAM과 HDD를 하나의논리적 메모리로 추상화시킨 메모리 관리 방법&lt;/p&gt;</description></item><item><title>간단한 용어정리</title><link>https://log.j2234.cc/posts/2022-tistory/130-%EA%B0%84%EB%8B%A8%ED%95%9C-%EC%9A%A9%EC%96%B4%EC%A0%95%EB%A6%AC/</link><pubDate>Tue, 05 Jul 2022 16:56:58 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/130-%EA%B0%84%EB%8B%A8%ED%95%9C-%EC%9A%A9%EC%96%B4%EC%A0%95%EB%A6%AC/</guid><description>&lt;p&gt;동시성 = 여러 일을 여러 사람이 각자 동시에 하는 것&lt;/p&gt;
&lt;p&gt;병렬성 = 같은 (혹은 대상이 같은 ) 일을 여러 사람이 동시에 하는 것&lt;/p&gt;
&lt;p&gt;원자성 = 쪼개어 나눌 수 없는 연속된 일&lt;/p&gt;
&lt;p&gt;의존성 = 전제조건 보통 행위나 존립(성립)에 대해 의존성을 고려&lt;/p&gt;
&lt;p&gt;deadlock= 교착상태&lt;/p&gt;</description></item><item><title>자료구조와 알고리즘</title><link>https://log.j2234.cc/posts/2022-tistory/129-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%EC%99%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</link><pubDate>Tue, 05 Jul 2022 16:10:28 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/129-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%EC%99%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</guid><description>&lt;p&gt;우리가 어떤 정보에 접근하려면, 이 자료에 적절히 접근해야한다.&lt;/p&gt;
&lt;p&gt;이 정보가 저장된 방식이 자료구조, 이에 접근하는 방식이 알고리즘이다.&lt;/p&gt;
&lt;p&gt;다시, &amp;lsquo;일정규칙으로 정리된 자료&amp;rsquo; 가 자료구조이고, 이 구조화된 자료에서 원하는 것을 빨리 찾아내는 방법이 알고리즘이다.&lt;/p&gt;
&lt;p&gt;일열로 되있는 자료구조를 선형구조라고 한다.&lt;/p&gt;
&lt;p&gt;list and linked list&lt;/p&gt;
&lt;p&gt;list(배열)&lt;/p&gt;
&lt;p&gt;배열은 말그대로 자료가 연접함&lt;/p&gt;
&lt;p&gt;그냥 idx증가시키면 다음 자료임&lt;/p&gt;
&lt;p&gt;가장 단순&lt;/p&gt;
&lt;p&gt;크기를 늘리거나 줄이려면 구조를 변경해야함&lt;/p&gt;
&lt;p&gt;중간에 삽입 또는 삭제도 문제&lt;/p&gt;
&lt;p&gt;linked list&lt;/p&gt;
&lt;p&gt;각자 따로 떨어진 자료를 위치정보로 묶은 것&lt;/p&gt;</description></item><item><title>cpu가 작동하는 원리</title><link>https://log.j2234.cc/posts/2022-tistory/128-cpu%EA%B0%80-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-%EC%9B%90%EB%A6%AC/</link><pubDate>Tue, 05 Jul 2022 15:34:21 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/128-cpu%EA%B0%80-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-%EC%9B%90%EB%A6%AC/</guid><description>&lt;p&gt;반도체는 전기가 흐르는 도체와 흐르지 않는 부도체 성격을 조건에 따라 선택할 수 있다.&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="2378"
 height="946"
 src="https://log.j2234.cc/posts/2022-tistory/128-cpu%EA%B0%80-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-%EC%9B%90%EB%A6%AC/img/image-01_hu_c1431d2493e4b96f.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/128-cpu%EA%B0%80-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-%EC%9B%90%EB%A6%AC/img/image-01_hu_c1431d2493e4b96f.webp 800w, https://log.j2234.cc/posts/2022-tistory/128-cpu%EA%B0%80-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-%EC%9B%90%EB%A6%AC/img/image-01_hu_8e392ad32540a882.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/128-cpu%EA%B0%80-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-%EC%9B%90%EB%A6%AC/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="2546"
 height="1134"
 src="https://log.j2234.cc/posts/2022-tistory/128-cpu%EA%B0%80-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-%EC%9B%90%EB%A6%AC/img/image-02_hu_7b5ffe91e8900058.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/128-cpu%EA%B0%80-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-%EC%9B%90%EB%A6%AC/img/image-02_hu_7b5ffe91e8900058.webp 800w, https://log.j2234.cc/posts/2022-tistory/128-cpu%EA%B0%80-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-%EC%9B%90%EB%A6%AC/img/image-02_hu_efe2abc30cb85892.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/128-cpu%EA%B0%80-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-%EC%9B%90%EB%A6%AC/img/image-02.webp"&gt;&lt;/figure&gt;
&lt;p&gt;a = 0 0 1 0 (2)&lt;/p&gt;
&lt;p&gt;+b = 0 0 1 1 (3)&lt;/p&gt;
&lt;p&gt;res= 1 0 1 (5)&lt;/p&gt;
&lt;p&gt;빼기일때는? 보수를 더하면 됨&lt;/p&gt;
&lt;p&gt;보수란?&lt;/p&gt;
&lt;p&gt;12-9 =?&lt;/p&gt;
&lt;p&gt;9의 10에대한 보수는 9를 10으로 만들어 줄 수 있는 수이다. 따라서 1&lt;/p&gt;
&lt;p&gt;12에다가 보수인 1을 더하고, 윗자리 숫자를 하나 버림&lt;/p&gt;</description></item><item><title>용량</title><link>https://log.j2234.cc/posts/2022-tistory/127-%EC%9A%A9%EB%9F%89/</link><pubDate>Tue, 05 Jul 2022 15:01:32 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/127-%EC%9A%A9%EB%9F%89/</guid><description>&lt;p&gt;기본 상식 반드시 외울것&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Column 1&lt;/th&gt;
 &lt;th&gt;Column 2&lt;/th&gt;
 &lt;th&gt;Column 3&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;단위&lt;/td&gt;
 &lt;td&gt;크기&lt;/td&gt;
 &lt;td&gt;특징&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1bit&lt;/td&gt;
 &lt;td&gt;전기 스위치 1개 (0,1)&lt;/td&gt;
 &lt;td&gt;용량이 아니라 표한할 수 있는 최소수준&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1Byte&lt;/td&gt;
 &lt;td&gt;8bit 한 묶음&lt;/td&gt;
 &lt;td&gt;영문자 1개, 메모리 관리 단위 (한글은2)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;여기서부턴 알아만 놓자 1024배 증가할땨맏 단위가 바뀐다&lt;/p&gt;
&lt;p&gt;1KB 1024byte&lt;/p&gt;
&lt;p&gt;1MB 1024kb&lt;/p&gt;
&lt;p&gt;1GB 1024mb&lt;/p&gt;
&lt;p&gt;1TB 1024gb&lt;/p&gt;
&lt;p&gt;1PB&lt;/p&gt;
&lt;p&gt;1EB&lt;/p&gt;
&lt;p&gt;1ZB&lt;/p&gt;
&lt;p&gt;1YB&lt;/p&gt;
&lt;p&gt;4비트는 16진수 1자리로 표현이 가능하다. 1비트는 2진수 한 자리 숫자가 되고, &amp;lsquo;4비트&amp;rsquo;를 하나로 묶어 16진수 1자리로 표현&lt;/p&gt;</description></item><item><title>2. 자료형</title><link>https://log.j2234.cc/posts/2022-tistory/126-2.-%EC%9E%90%EB%A3%8C%ED%98%95/</link><pubDate>Mon, 04 Jul 2022 19:08:32 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/126-2.-%EC%9E%90%EB%A3%8C%ED%98%95/</guid><description>&lt;p&gt;자료형이란? 일정 길이의 메모리에 저장된 정보를 해석하는 방법&lt;/p&gt;
&lt;p&gt;자료(정보) -&amp;gt; 수(숫자) 메모리에 보관됨&lt;/p&gt;
&lt;p&gt;관리를 쉽게 하려고 번호를 붙인다.&lt;/p&gt;
&lt;p&gt;하나의 공간에 저장할 수 있는 크기는 1byte (8bit) (영문1글자) 메모리의 최소단위&lt;/p&gt;
&lt;p&gt;이 공간에는 번호가 붙어있으며 우리는 이것을 메모리의 주소라고 부른다.&lt;/p&gt;
&lt;p&gt;변수란?&lt;/p&gt;
&lt;p&gt;-&amp;gt; 아직 확정되지 않은 숫자&lt;/p&gt;
&lt;p&gt;상수란?&lt;/p&gt;
&lt;p&gt;-&amp;gt;확정된 숫자&lt;/p&gt;
&lt;p&gt;c언어에선&lt;/p&gt;
&lt;p&gt;변수-&amp;gt;메모리 반드시 주소를 가지고 있음 이에 저장되어 있는것이 data 이를 해석하는 방법이 자료형&lt;/p&gt;
&lt;p&gt;컴퓨터의 모든 정보는 숫자임 문자로 보여도 숫자임 ord(&amp;lsquo;a)생각&lt;/p&gt;
&lt;p&gt;영어는 1byte 한글은 두배&lt;/p&gt;</description></item><item><title>DHCP</title><link>https://log.j2234.cc/posts/2022-tistory/124-dhcp/</link><pubDate>Mon, 04 Jul 2022 12:48:01 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/124-dhcp/</guid><description>&lt;p&gt;IP를 직접 지정하려면 너무 어려움&lt;/p&gt;
&lt;p&gt;우리가 공유기에 연결되는 순간 각각의 기기에는 동적으로 복잡한 정보들이 설정됨 이를 위해 DHCP서버 필요!&lt;/p&gt;
&lt;p&gt;인터넷을 사용하는 기기에는 DHCP client 프로그램이 깔려있음&lt;/p&gt;
&lt;p&gt;우리가 사용하는 기계의 부품들엔, 공장에서 기록된 고유한 식별자를 가지고 있음&lt;/p&gt;
&lt;p&gt;이것이 MAC ADRRESS임 (physical address)&lt;/p&gt;</description></item><item><title>포트포워딩 해보기</title><link>https://log.j2234.cc/posts/2022-tistory/123-%ED%8F%AC%ED%8A%B8%ED%8F%AC%EC%9B%8C%EB%94%A9-%ED%95%B4%EB%B3%B4%EA%B8%B0/</link><pubDate>Mon, 04 Jul 2022 12:19:37 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/123-%ED%8F%AC%ED%8A%B8%ED%8F%AC%EC%9B%8C%EB%94%A9-%ED%95%B4%EB%B3%B4%EA%B8%B0/</guid><description>&lt;p&gt;맥에 기본적으로 깔려있는 apache를 통해 해보자&lt;/p&gt;
&lt;p&gt;먼져&lt;/p&gt;
&lt;p&gt;$ apachectl -v&lt;/p&gt;
&lt;p&gt;$ php -v&lt;/p&gt;
&lt;p&gt;를 통해 버전을 확인한다&lt;/p&gt;
&lt;p&gt;sudo apachectl start 를 통해 서버를 실행시켜준다&lt;/p&gt;
&lt;p&gt;cd /Library/WebServer/Documents 에 있는 index.html.en 파일을 확인한다&lt;/p&gt;
&lt;p&gt;포트포워딩을 통해 8081 포트로 오면, 내 컴퓨터의 80포트와 연결되게 한다&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="755"
 height="64"
 src="https://log.j2234.cc/posts/2022-tistory/123-%ED%8F%AC%ED%8A%B8%ED%8F%AC%EC%9B%8C%EB%94%A9-%ED%95%B4%EB%B3%B4%EA%B8%B0/img/image-01.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/123-%ED%8F%AC%ED%8A%B8%ED%8F%AC%EC%9B%8C%EB%94%A9-%ED%95%B4%EB%B3%B4%EA%B8%B0/img/image-01.webp 800w, https://log.j2234.cc/posts/2022-tistory/123-%ED%8F%AC%ED%8A%B8%ED%8F%AC%EC%9B%8C%EB%94%A9-%ED%95%B4%EB%B3%B4%EA%B8%B0/img/image-01.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/123-%ED%8F%AC%ED%8A%B8%ED%8F%AC%EC%9B%8C%EB%94%A9-%ED%95%B4%EB%B3%B4%EA%B8%B0/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;p&gt;이후 어디서나 http://59.26.61.169:8081/ 로 접속하면, 내가 띄운 페이지가 보이게 된다&lt;/p&gt;</description></item><item><title>port &amp; port forwarding</title><link>https://log.j2234.cc/posts/2022-tistory/122-port--port-forwarding/</link><pubDate>Sun, 03 Jul 2022 23:51:53 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/122-port--port-forwarding/</guid><description>&lt;p&gt;포트란? 영어로 항구임&lt;/p&gt;
&lt;p&gt;하나의 컴퓨터에는 여러가지 형테의 서버가 있을 수 있다.&lt;/p&gt;
&lt;p&gt;이 서버를 식별하기 위해서는 포트번호가 필요함&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="1627"
 height="816"
 src="https://log.j2234.cc/posts/2022-tistory/122-port--port-forwarding/img/image-01_hu_ea89d22a6786fa2f.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/122-port--port-forwarding/img/image-01_hu_ea89d22a6786fa2f.webp 800w, https://log.j2234.cc/posts/2022-tistory/122-port--port-forwarding/img/image-01_hu_fd24d7f066502be7.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/122-port--port-forwarding/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;p&gt;0~1023 well-known-port&lt;/p&gt;
&lt;p&gt;포트포워딩이란?&lt;/p&gt;
&lt;p&gt;우리 서버에 접속하기 위에선, 공유기의 아피이 주소를 알려주는데, 그 아이피로 접속했을때 내 컴퓨터로 연결되게 하는 것&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="1920"
 height="785"
 src="https://log.j2234.cc/posts/2022-tistory/122-port--port-forwarding/img/image-02_hu_c44ac219c3215656.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/122-port--port-forwarding/img/image-02_hu_c44ac219c3215656.webp 800w, https://log.j2234.cc/posts/2022-tistory/122-port--port-forwarding/img/image-02_hu_420afe684d5cc65b.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/122-port--port-forwarding/img/image-02.webp"&gt;&lt;/figure&gt;
&lt;p&gt;내 공유기 고급에서 설정!&lt;/p&gt;</description></item><item><title>IP 주소 알아내기</title><link>https://log.j2234.cc/posts/2022-tistory/121-ip-%EC%A3%BC%EC%86%8C-%EC%95%8C%EC%95%84%EB%82%B4%EA%B8%B0/</link><pubDate>Sun, 03 Jul 2022 23:32:26 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/121-ip-%EC%A3%BC%EC%86%8C-%EC%95%8C%EC%95%84%EB%82%B4%EA%B8%B0/</guid><description>&lt;p&gt;맥&lt;/p&gt;
&lt;p&gt;curl ifconfig.me -&amp;gt;외부 (59.26.61.169)&lt;/p&gt;
&lt;p&gt;ipconfig getifaddr en0 -&amp;gt; 내부아이피&lt;/p&gt;
&lt;p&gt;59.26.61.169 로 접속하면 공유기 환경설정이 나옴&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="842"
 height="600"
 src="https://log.j2234.cc/posts/2022-tistory/121-ip-%EC%A3%BC%EC%86%8C-%EC%95%8C%EC%95%84%EB%82%B4%EA%B8%B0/img/image-01_hu_4e073b11745a5323.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/121-ip-%EC%A3%BC%EC%86%8C-%EC%95%8C%EC%95%84%EB%82%B4%EA%B8%B0/img/image-01_hu_4e073b11745a5323.webp 800w, https://log.j2234.cc/posts/2022-tistory/121-ip-%EC%A3%BC%EC%86%8C-%EC%95%8C%EC%95%84%EB%82%B4%EA%B8%B0/img/image-01.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/121-ip-%EC%A3%BC%EC%86%8C-%EC%95%8C%EC%95%84%EB%82%B4%EA%B8%B0/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;p&gt;내부아이피주소 == gateway address&lt;/p&gt;
&lt;p&gt;외부아이피 주소 == public ip address&lt;/p&gt;</description></item><item><title>NAT</title><link>https://log.j2234.cc/posts/2022-tistory/120-nat/</link><pubDate>Sun, 03 Jul 2022 23:20:14 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/120-nat/</guid><description>&lt;p&gt;Network Address Translation&lt;/p&gt;
&lt;p&gt;우리가 위키피디아에 접속한다면?&lt;/p&gt;
&lt;p&gt;나 -&amp;gt; 공유기에 위키피디아로 가는 요청이 내 내부아이피의 요청이라는 것을 기록 -&amp;gt; 공유기에서 NAT 기술을 통해 public ip로 변경-&amp;gt;&lt;/p&gt;
&lt;p&gt;위키피디아로 보냄&lt;/p&gt;
&lt;p&gt;위키피디아에서 공유기로 응답을 보냄 -&amp;gt; 내 내부아이피가 요청했다는 사실을 파악 -&amp;gt; 나에게 응답&lt;/p&gt;
&lt;p&gt;내 컴퓨터를 서버로 사용한다면????????????????&lt;/p&gt;</description></item><item><title>Router (공유기)</title><link>https://log.j2234.cc/posts/2022-tistory/119-router-%EA%B3%B5%EC%9C%A0%EA%B8%B0/</link><pubDate>Sun, 03 Jul 2022 23:07:20 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/119-router-%EA%B3%B5%EC%9C%A0%EA%B8%B0/</guid><description>&lt;p&gt;IPv4 - 0,0,0,0 ~ 255.255.255.255&lt;/p&gt;
&lt;p&gt;IPv6 - IPv4가 다채워져서 만들어짐&lt;/p&gt;
&lt;p&gt;IP address - 컴퓨터들이 정보를 주고받는데에서 필요&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="1880"
 height="860"
 src="https://log.j2234.cc/posts/2022-tistory/119-router-%EA%B3%B5%EC%9C%A0%EA%B8%B0/img/image-01_hu_21536026170d6445.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/119-router-%EA%B3%B5%EC%9C%A0%EA%B8%B0/img/image-01_hu_21536026170d6445.webp 800w, https://log.j2234.cc/posts/2022-tistory/119-router-%EA%B3%B5%EC%9C%A0%EA%B8%B0/img/image-01_hu_348a6720db0d0420.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/119-router-%EA%B3%B5%EC%9C%A0%EA%B8%B0/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;p&gt;wan (wide area network) = 통신사와 계약해서 받은 케이블 (공유기에 접속) (!! 공용ip !!) public ip&lt;/p&gt;
&lt;p&gt;lan = 공유기에 소속되어있는 컴퓨터들 (공유기 포함) ex)192.168.?. ? (!! 사설ip !!) private ip&lt;/p&gt;</description></item><item><title>vim 에디터</title><link>https://log.j2234.cc/posts/2022-tistory/118-vim-%EC%97%90%EB%94%94%ED%84%B0/</link><pubDate>Sun, 03 Jul 2022 22:20:33 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/118-vim-%EC%97%90%EB%94%94%ED%84%B0/</guid><description>&lt;p&gt;문제겪을때마다 하나씩 추가예정&lt;/p&gt;
&lt;p&gt;set directory: 를 통해 파일경로알수있음&lt;/p&gt;</description></item><item><title>호스트와 컨테이너의 파일시스템 연결</title><link>https://log.j2234.cc/posts/2022-tistory/117-%ED%98%B8%EC%8A%A4%ED%8A%B8%EC%99%80-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%9D%98-%ED%8C%8C%EC%9D%BC%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%97%B0%EA%B2%B0/</link><pubDate>Sat, 02 Jul 2022 22:43:04 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/117-%ED%98%B8%EC%8A%A4%ED%8A%B8%EC%99%80-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%9D%98-%ED%8C%8C%EC%9D%BC%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%97%B0%EA%B2%B0/</guid><description>&lt;p&gt;&lt;strong&gt;내 컴퓨터의 ~/htdocs 폴더에서 진행 (만듬)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;index.html 파일을 만듬&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;터미널을 열고,&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;docker run -p 8888:80 -v ~/Desktop/htdocs:/usr/local/apache2/htdocs/ httpd (새로운 컨테이너 만든거임)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#8888은 이미 jupyter가 사용하고있어서 난 8889포트를 썼더니 됨&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;이제 호스트 파일 안에서 수정하면, 반영됨&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;호스트의 8888:80을 연결하고, 호스트의 /Desktop/htdoc 와 컨테이너의 /usr/local/apache2/htdocs/&lt;/p&gt;
&lt;p&gt;-v 옵션은 volume을 뜻함 container와 host, 또는 또다른 container와 연결할 때 사용&lt;/p&gt;</description></item><item><title>네트워크 &amp; 명령어2</title><link>https://log.j2234.cc/posts/2022-tistory/116-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC--%EB%AA%85%EB%A0%B9%EC%96%B42/</link><pubDate>Sat, 02 Jul 2022 21:56:50 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/116-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC--%EB%AA%85%EB%A0%B9%EC%96%B42/</guid><description>&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="1767"
 height="831"
 src="https://log.j2234.cc/posts/2022-tistory/116-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC--%EB%AA%85%EB%A0%B9%EC%96%B42/img/image-01_hu_e2d3f0c95999712f.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/116-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC--%EB%AA%85%EB%A0%B9%EC%96%B42/img/image-01_hu_e2d3f0c95999712f.webp 800w, https://log.j2234.cc/posts/2022-tistory/116-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC--%EB%AA%85%EB%A0%B9%EC%96%B42/img/image-01_hu_7dd195181fda527f.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/116-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC--%EB%AA%85%EB%A0%B9%EC%96%B42/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;docker exec [OPTIONS] CONTAINER COMMAND [ARGS&amp;hellip;]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ex) docker exec -it ws3 /bin/sh docker exec -it ws3 /bin/bash(본,배쉬 쉘실행하는명령어 i,t옵션 필요)&lt;/p&gt;
&lt;p&gt;옵션 i와 t는 같이 사용하는 경우가 많은데 i는 –interactive 옵션으로 STDIN(표준입력)으로 컨테이너를 생성 하라는 뜻이다.t는 –tty 옵션으로 영어로 Allocate a pseudo-TTY 라고 설명이 되어있는데 여기서 pseudo-TTY는 유사 터미널로 컨테이너에 터미널 드라이버를 추가하여 컨테이너를 터미널을 이용하여 연결 할 수있도록 하는 옵션이다.정리하자면 i옵션으로 표준 입력을 받으며 t옵션으로 터미널로 연결 가능한 컨테이너를 만드는 것이다&lt;/p&gt;</description></item><item><title>기본 명령어</title><link>https://log.j2234.cc/posts/2022-tistory/115-%EA%B8%B0%EB%B3%B8-%EB%AA%85%EB%A0%B9%EC%96%B4/</link><pubDate>Fri, 01 Jul 2022 00:37:35 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/115-%EA%B8%B0%EB%B3%B8-%EB%AA%85%EB%A0%B9%EC%96%B4/</guid><description>&lt;p&gt;cli&lt;/p&gt;
&lt;p&gt;도커 어플을 실행시키거나 open -a Docker&lt;/p&gt;
&lt;p&gt;명령어 안되면 sudo해볼것&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;docker run [OPTIONS] IMAGE [COMMAND] [ARGS&amp;hellip;] 컨테이너 실행시키기&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;docker ps 만든 컨테이너 확인&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;하나의 의미지는 여러 컨테이너로 만들 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;docker stop [OPTIONS] CONTAINER이름 [CONTAINER&amp;hellip;] 실행중인 컨테이너를 끄기&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;docker start 컨테이너이름 껐던 컨테이너 실행시키기&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;docker logs [OPTION] CONTAINER이름 로그 확인 (실시간원하면 -f 옵션 줄것)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;docker rm [OPTIONS] CONTAINER이름 [CONTAINER&amp;hellip;] 삭제 (실행중인컨테이너면 에러남)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;docker rmi image이름 (이미지 삭제)&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>도커란?</title><link>https://log.j2234.cc/posts/2022-tistory/114-%EB%8F%84%EC%BB%A4%EB%9E%80/</link><pubDate>Fri, 01 Jul 2022 00:20:37 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/114-%EB%8F%84%EC%BB%A4%EB%9E%80/</guid><description>&lt;p&gt;vmware같은거라고 생각하면 됨 (서버용)&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="1572"
 height="725"
 src="https://log.j2234.cc/posts/2022-tistory/114-%EB%8F%84%EC%BB%A4%EB%9E%80/img/image-01_hu_1d1b2dc15fe44e90.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/114-%EB%8F%84%EC%BB%A4%EB%9E%80/img/image-01_hu_1d1b2dc15fe44e90.webp 800w, https://log.j2234.cc/posts/2022-tistory/114-%EB%8F%84%EC%BB%A4%EB%9E%80/img/image-01_hu_b6926c4f3ecd045.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/114-%EB%8F%84%EC%BB%A4%EB%9E%80/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="964"
 height="592"
 src="https://log.j2234.cc/posts/2022-tistory/114-%EB%8F%84%EC%BB%A4%EB%9E%80/img/image-02_hu_810e007ed824b03d.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/114-%EB%8F%84%EC%BB%A4%EB%9E%80/img/image-02_hu_810e007ed824b03d.webp 800w, https://log.j2234.cc/posts/2022-tistory/114-%EB%8F%84%EC%BB%A4%EB%9E%80/img/image-02.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/114-%EB%8F%84%EC%BB%A4%EB%9E%80/img/image-02.webp"&gt;&lt;/figure&gt;
&lt;p&gt;appstore - program - process 생각&lt;/p&gt;
&lt;p&gt;docker hub - 필요한 소프트웨어를 찾는곳 &lt;a href="https://hub.docker.com/" target="_blank" rel="noreferrer"&gt;https://hub.docker.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;image - docker hub 에서 다운받은거&lt;/p&gt;
&lt;p&gt;container - image를 실행하는거&lt;/p&gt;
&lt;p&gt;docker hub =&amp;gt; image 다운받는거를 Pull&lt;/p&gt;
&lt;p&gt;image =&amp;gt; container 실행시키는것을 run&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;docker pull [OPTIONS] NAME[:TAG|@DIGEST] 이미지 다운받기&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;docker pull httpd (아파치)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;docker images 이미지를 잘 다운받았는지 확인&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>4일차</title><link>https://log.j2234.cc/posts/2022-tistory/113-4%EC%9D%BC%EC%B0%A8/</link><pubDate>Sat, 18 Jun 2022 00:26:54 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/113-4%EC%9D%BC%EC%B0%A8/</guid><description>&lt;p&gt;헷갈리는 부분&lt;/p&gt;
&lt;p&gt;mainpost=get_object_or_404(Mainpost,pk=mainpost_id)&lt;/p&gt;
&lt;p&gt;form =MainpostForm(request.POST, instance=mainpost)&lt;/p&gt;
&lt;p&gt;Mainpost모델의 form 인 MainpostForm을 불러오는데, instance를 받아온 mainpost로 준다.&lt;/p&gt;
&lt;p&gt;만일 instance를 안받으면, 이는 Mainpost model의 형식만 가져올 것이고, instance를 준다면, 이는 받아온데이터를 원래 있던 데이터에 덮어쓰게 된다.&lt;/p&gt;
&lt;p&gt;이후 form.is_valid()를 통하여 유효하면저장하고, 아니면 에러메시지를 남긴다.&lt;/p&gt;</description></item><item><title>3일차</title><link>https://log.j2234.cc/posts/2022-tistory/112-3%EC%9D%BC%EC%B0%A8/</link><pubDate>Thu, 16 Jun 2022 00:23:38 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/112-3%EC%9D%BC%EC%B0%A8/</guid><description>&lt;p&gt;오늘은 집중을 별로 못했다.&lt;/p&gt;
&lt;p&gt;XMLHttpRequest 를 통해 서버와 비동기 통신을 하여 아이디 중복체크 기능을 만들었다.&lt;/p&gt;
&lt;p&gt;도중 넘어온 json데이터는, json형식이 아닌 문자열 형식으로 온다. 이것땜에 시간을 많이 잡아먹었다. JSON.parse 를 해주면 해결된다.&lt;/p&gt;
&lt;p&gt;이후 대충 부트스트랩 강의와 점프투 장고 강의를 보면서, 틀을 꾸려나가고 있다.&lt;/p&gt;
&lt;p&gt;새로 안 사실인데, 줄바꿈을 나타내주려면, 컨텐츠를 나타낼때 [ |linebreaksbr ] 을 해주면 된다.&lt;/p&gt;
&lt;p&gt;오늘은 이거보다 그냥 유튜브만 본거같다.&lt;/p&gt;
&lt;p&gt;내일 일단 글 수정, 삭제기능을 할 예정이다.&lt;/p&gt;</description></item><item><title>2일차</title><link>https://log.j2234.cc/posts/2022-tistory/111-2%EC%9D%BC%EC%B0%A8/</link><pubDate>Tue, 14 Jun 2022 21:22:25 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/111-2%EC%9D%BC%EC%B0%A8/</guid><description>&lt;p&gt;유저모델은 따로 추가 없이 그냥 auth_user_model사용하기로 했다.&lt;/p&gt;
&lt;p&gt;기본적인 글과 댓글을 남길 수 있는걸 구현하고, 로그인이 필요하도록 했다.&lt;/p&gt;
&lt;p&gt;부트스트랩 강의를 보면서 하나씩 알아가고 있다.&lt;/p&gt;
&lt;p&gt;메인페이지를 만들고, 메인페이지에서 계시판 등의 어플리케이션에 접근 할 수 있도록 할 계획이다.&lt;/p&gt;
&lt;p&gt;일단 내일까진 혼자하고, 목요일엔 어짜피 가야되니깐 진수형한테 함 보여주고 피드백을 받아야겠다.&lt;/p&gt;
&lt;p&gt;이번주에 집에서 usb받아서 노트북에 리눅스 설치하는거 잊지 말자&lt;/p&gt;</description></item><item><title>kdt게시판만들기</title><link>https://log.j2234.cc/posts/2022-tistory/110-kdt%EA%B2%8C%EC%8B%9C%ED%8C%90%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><pubDate>Mon, 13 Jun 2022 21:58:14 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/110-kdt%EA%B2%8C%EC%8B%9C%ED%8C%90%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>&lt;p&gt;오늘부터 kdt게시판을 만들어볼려고한다&lt;/p&gt;
&lt;p&gt;가장 먼저 익명의 계시판을 만들고, 이후에 차차 여러 기능들을 추가할 것이다.&lt;/p&gt;
&lt;p&gt;오늘은 기본적인 백엔드 뼈대만 만들어볼려한다.&lt;/p&gt;
&lt;p&gt;가장먼저 파이썬 가상환경을 만들고, 장고를 설치했다.&lt;/p&gt;
&lt;p&gt;homepage라는 루트 디렉토리 안에, config라는 설정 디렉토리를 만들고, 가장먼저 계시판 board 부터 구현했다.&lt;/p&gt;
&lt;p&gt;settings.py에서 templates폴더 설정을해주고, 앱에 board를 추가시켰다.&lt;/p&gt;
&lt;p&gt;config의 urls.py에서 board를 include해줬다.&lt;/p&gt;
&lt;p&gt;계시글이 될 Mainpost, 답변이 될 Comment 모델을 생성했다.&lt;/p&gt;
&lt;p&gt;makemigrations, migrate를 통해 db에 반영해주고, admin superuser을 생성했다.&lt;/p&gt;
&lt;p&gt;이후 forms를 통해 계시글 form 을 만들고, 이를 통해 계시글을 등록할 수 있게 했다.&lt;/p&gt;</description></item><item><title>3-2페이징</title><link>https://log.j2234.cc/posts/2022-tistory/109-3-2%ED%8E%98%EC%9D%B4%EC%A7%95/</link><pubDate>Sat, 04 Jun 2022 17:35:41 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/109-3-2%ED%8E%98%EC%9D%B4%EC%A7%95/</guid><description>&lt;p&gt;&lt;a href="https://wikidocs.net/71240" target="_blank" rel="noreferrer"&gt;https://wikidocs.net/71240&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;글이 여러개라면, 화면에 끝도없이 나타날 것이므로 페이징의 필요하다.&lt;/p&gt;
&lt;p&gt;views.py에&lt;/p&gt;
&lt;p&gt;from django.core.paginator import Paginator 를 사용한다.&lt;/p&gt;
&lt;p&gt;page = request.GET.get(&amp;lsquo;page&amp;rsquo;, &amp;lsquo;1&amp;rsquo;)# get 방식으로 호출된 url에서 페이지를 가져올 때 사용한다. 호출값이 없을 땐 default로 1을 반환한다.&lt;/p&gt;
&lt;p&gt;context로 page_obj = paginator.get_page(page)를 받게된다.&lt;/p&gt;
&lt;p&gt;question_list.html의 페이징 코드이다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c"&gt;&amp;lt;!-- 페이징처리 시작 --&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;pagination justify-content-center&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c"&gt;&amp;lt;!-- 이전페이지 --&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-item&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-link&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;?page=1&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;처음&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; {% if question_list.has_previous %} &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-item&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-link&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;?page={{ question_list.previous_page_number }}&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;이전&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; {% else %} &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-item disabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-link&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;tabindex&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;-1&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;aria-disabled&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;#&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;이전&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; {% endif %} &lt;span class="c"&gt;&amp;lt;!-- 페이지리스트 --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; {% for page_number in question_list.paginator.page_range %}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; {% if page_number &amp;gt;= question_list.number|add:-3 and page_number &lt;span class="err"&gt;&amp;lt;&lt;/span&gt;= question_list.number|add:3 %}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; {% if page_number == question_list.number %}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-item active&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;aria-current&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-link&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;?page={{ page_number }}&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;{{ page_number }}&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; {% else %} &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-item&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-link&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;?page={{ page_number }}&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;{{ page_number }}&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; {% endif %}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; {% elif page_number &amp;gt;= question_list.number|add:-4 and page_number &lt;span class="err"&gt;&amp;lt;&lt;/span&gt;= question_list.number|add:4 %}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-item&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;...&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; {% endif %} {% endfor %}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c"&gt;&amp;lt;!-- 다음페이지 --&amp;gt;&lt;/span&gt; {% if question_list.has_next %}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-item&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-link&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;?page={{ question_list.next_page_number }}&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;다음&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; {% else %} &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-item disabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-link&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;tabindex&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;-1&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;aria-disabled&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;#&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;다음&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; {% endif %} &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-item&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;page-link&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;?page={{ max_index }}&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;마지막&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;ul&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- 페이징처리 끝 --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;이걸 이해할려고 하다가 너무 답답해서 쓴다.&lt;/p&gt;</description></item><item><title>백준 9935 문자열 폭팔</title><link>https://log.j2234.cc/posts/2022-tistory/108-%EB%B0%B1%EC%A4%80-9935-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%8F%AD%ED%8C%94/</link><pubDate>Fri, 20 May 2022 16:36:09 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/108-%EB%B0%B1%EC%A4%80-9935-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%8F%AD%ED%8C%94/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/9935" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/9935&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;9935번: 문자열 폭발첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모www.acmicpc.net&lt;/p&gt;
&lt;p&gt;아이디어만 떠올리면 쉽다 (그래서 어렵다)&lt;/p&gt;
&lt;p&gt;먼져, stack에 하나씩 넣는다.&lt;/p&gt;
&lt;p&gt;그후, stack의 마지막 문자가 폭팔문자의 마지막이면,&lt;/p&gt;
&lt;p&gt;폭팔문자수만큼 확인하면서 빼버린다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;s=list(input())boom=list(input())stack=[]for i in range(len(s)):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; stack.append(s[i]) if stack[-1]==boom[-1] and len(stack)&amp;gt;=len(boom):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if stack[-len(boom):]==boom: del stack[-len(boom):]if stack:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(&amp;#39;&amp;#39;.join(stack))else: print(&amp;#39;FRULA&amp;#39;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준10026적록색약</title><link>https://log.j2234.cc/posts/2022-tistory/107-%EB%B0%B1%EC%A4%8010026%EC%A0%81%EB%A1%9D%EC%83%89%EC%95%BD/</link><pubDate>Wed, 18 May 2022 21:13:12 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/107-%EB%B0%B1%EC%A4%8010026%EC%A0%81%EB%A1%9D%EC%83%89%EC%95%BD/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/10026" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/10026&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;10026번: 적록색약적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록)www.acmicpc.net&lt;/p&gt;
&lt;p&gt;dfs를 두번수행한다.&lt;/p&gt;
&lt;p&gt;처음엔 색깔을 다 따로,&lt;/p&gt;
&lt;p&gt;다음엔 초록,빨강을 묶어서&lt;/p&gt;
&lt;p&gt;끝&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysfrom&lt;/span&gt; &lt;span class="n"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;dequeimport&lt;/span&gt; &lt;span class="n"&gt;copyinput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;move&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;),(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;),(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;bfs1&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;deque&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;popleft&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;move&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ti&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;tj&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="n"&gt;ti&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="n"&gt;tj&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ti&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;tj&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ti&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;tj&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;ti&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;tj&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;graph&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;copy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;deepcopy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;graph&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;arr1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;copy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;deepcopy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;graph&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;arr1&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;R&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;G&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;arr1&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;R&amp;#39;&lt;/span&gt;&lt;span class="n"&gt;answer0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;answer1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;!=-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;bfs1&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;answer0&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;arr1&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;!=-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;bfs1&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;arr1&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;arr1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;answer1&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;answer1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준1062 가르침</title><link>https://log.j2234.cc/posts/2022-tistory/106-%EB%B0%B1%EC%A4%801062-%EA%B0%80%EB%A5%B4%EC%B9%A8/</link><pubDate>Wed, 18 May 2022 12:45:33 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/106-%EB%B0%B1%EC%A4%801062-%EA%B0%80%EB%A5%B4%EC%B9%A8/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1062" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1062&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1062번: 가르침첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문www.acmicpc.net&lt;/p&gt;
&lt;p&gt;거의 처음으로 풀어본 비트마스킹 문제였다.&lt;/p&gt;
&lt;p&gt;생각보다 할만했다.&lt;/p&gt;
&lt;p&gt;가장먼져, 무조건 포함되는 (a,n,t,i,c) 를 각각ord(&amp;lsquo;a)를 빼줘 비트집합 must_have로 바꾼다&lt;/p&gt;
&lt;p&gt;0b10000010000100000101 가 된다.&lt;/p&gt;
&lt;p&gt;이후, 단어를 받을때마다 &amp;amp;를 통해 (a,n,t,i,c)를 제거한다.&lt;/p&gt;
&lt;p&gt;그리고, 남아있는 단어들을 k-5개의 원소를 가지는 comb로 만들어서,&lt;/p&gt;
&lt;p&gt;각각의 받은 단어와 &amp;amp;로 비교했을때 받은 단어가 나오면 읽을 수 있는것이다.&lt;/p&gt;</description></item><item><title>백준 16928 뱀과 사다리 게임</title><link>https://log.j2234.cc/posts/2022-tistory/105-%EB%B0%B1%EC%A4%80-16928-%EB%B1%80%EA%B3%BC-%EC%82%AC%EB%8B%A4%EB%A6%AC-%EA%B2%8C%EC%9E%84/</link><pubDate>Mon, 16 May 2022 21:09:49 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/105-%EB%B0%B1%EC%A4%80-16928-%EB%B1%80%EA%B3%BC-%EC%82%AC%EB%8B%A4%EB%A6%AC-%EA%B2%8C%EC%9E%84/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/16928" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/16928&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;16928번: 뱀과 사다리 게임첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x &amp;lt; y)가 주어진다. x번 칸에 도착하면, y번 칸으www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음에 멍청하게 배열을 만들어서 풀려했다 ㅋㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;간단한 dfs문제이다.&lt;/p&gt;
&lt;p&gt;하필이면 kdt시간에 푸느라 엄청 안풀렸는데, 집에서푸니 10분컷이였다.&lt;/p&gt;
&lt;p&gt;주의할 점은 단 하나이다.&lt;/p&gt;
&lt;p&gt;뱀과 사다리는 무조건 타야 하므로&lt;/p&gt;
&lt;p&gt;조건문을 제대로 설정해서, 타지 않은 경우를 큐에 넣지 않도록 주의하자&lt;/p&gt;</description></item><item><title>백준 1987 알파벳</title><link>https://log.j2234.cc/posts/2022-tistory/104-%EB%B0%B1%EC%A4%80-1987-%EC%95%8C%ED%8C%8C%EB%B2%B3/</link><pubDate>Sun, 15 May 2022 15:18:36 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/104-%EB%B0%B1%EC%A4%80-1987-%EC%95%8C%ED%8C%8C%EB%B2%B3/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1987" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1987&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1987번: 알파벳세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음에 온갖 똥고쇼를 해도 시간초과를 피할 수 없었다.&lt;/p&gt;
&lt;p&gt;그나마 줄일대로줄여서 pypy로 간신히 맞았다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysinput=sys.stdin.readlinemove=((-1,0),(1,0),(0,-1),(0,1))answer=1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;def dfs(next,value): global answer answer=max(answer,value) i,j=next
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for a,b in move: ti,tj=i+a,j+b
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if 0&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;=ti&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;r&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;c&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;ti&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;not&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;visited&lt;/span&gt; &lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;visited&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;ti&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;])&lt;/span&gt; &lt;span class="na"&gt;dfs&lt;/span&gt;&lt;span class="err"&gt;((&lt;/span&gt;&lt;span class="na"&gt;ti&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;),&lt;/span&gt;&lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="err"&gt;+&lt;/span&gt;&lt;span class="na"&gt;1&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;visited&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;remove&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;ti&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;])&lt;/span&gt; &lt;span class="na"&gt;r&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;map(int,input().split())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;[list(input().strip())&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;r&lt;/span&gt;&lt;span class="err"&gt;)]&lt;/span&gt;&lt;span class="na"&gt;visited&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;set(arr[0][0])dfs((0,0),1)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;answer&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;그후 다른사람들의 풀이를 보니 bfs로 푸는 방법이 있었다.&lt;/p&gt;</description></item><item><title>백준 1339 단어 수학</title><link>https://log.j2234.cc/posts/2022-tistory/103-%EB%B0%B1%EC%A4%80-1339-%EB%8B%A8%EC%96%B4-%EC%88%98%ED%95%99/</link><pubDate>Sat, 14 May 2022 13:35:27 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/103-%EB%B0%B1%EC%A4%80-1339-%EB%8B%A8%EC%96%B4-%EC%88%98%ED%95%99/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1339" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1339&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1339번: 단어 수학첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대www.acmicpc.net&lt;/p&gt;
&lt;p&gt;그리디는 아이디어가 중요한 거 같다.&lt;/p&gt;
&lt;p&gt;맨처음에는 string.uppercase()를 이용해 dcit를만들었는데 그럴필요조차 없었다.&lt;/p&gt;
&lt;p&gt;dictionary에 알파벳마다의 중요도를 넣는다.&lt;/p&gt;
&lt;p&gt;각 단어에서 알파벳의자릿수**10을 더해준다.&lt;/p&gt;
&lt;p&gt;그리고 중요도가 높은 순서대로 9부터 곱하면서 더해준다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import stringn=int(input())str_dict={}for _ in range(n): tmp=input()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; len_tmp=len(tmp) for i in range(len_tmp):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if tmp[i] in str_dict: str_dict[tmp[i]]+=10**(len_tmp-i-1)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; else: str_dict[tmp[i]]=10**(len_tmp-i-1)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmp_list=sorted(str_dict.values(),reverse=True)answer=0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;for i in range(len(tmp_list)-1,-1,-1): answer+=tmp_list[i]*(9-i)print(answer)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;여기서 한가지 알게 된 사실이있다.&lt;/p&gt;</description></item><item><title>백준 15686치킨배달</title><link>https://log.j2234.cc/posts/2022-tistory/102-%EB%B0%B1%EC%A4%80-15686%EC%B9%98%ED%82%A8%EB%B0%B0%EB%8B%AC/</link><pubDate>Fri, 13 May 2022 11:31:04 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/102-%EB%B0%B1%EC%A4%80-15686%EC%B9%98%ED%82%A8%EB%B0%B0%EB%8B%AC/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/15686" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/15686&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;15686번: 치킨 배달크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음에 bfs를생각했는데 더 간단한 풀이가 있었다.&lt;/p&gt;
&lt;p&gt;모든 집과 치킨집을 구해놓고,&lt;/p&gt;
&lt;p&gt;치킨집에 대한 원소가m개인 combination을 구하고,&lt;/p&gt;
&lt;p&gt;각 combination에 대하여 치킨 거리를 구해 비교한다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysfrom itertools import combinationsinput=sys.stdin.readline
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;n,m=map(int,input().split())arr=[]chickenhouse=[]blank=[]for i in range(n):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; tmp=list(map(int,input().split())) for j in range(n):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if tmp[j]==1: blank.append((i,j)) elif tmp[j]==2:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; chickenhouse.append((i,j))chicken_comb=combinations(chickenhouse,m)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;answer=1e+7for chickens in chicken_comb: dist=0 for i,j in blank:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; dist+=min([abs(i-c[0])+abs(j-c[1]) for c in chickens])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if dist&amp;gt;=answer:break answer=min(answer,dist)print(answer)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 14502 연구소</title><link>https://log.j2234.cc/posts/2022-tistory/101-%EB%B0%B1%EC%A4%80-14502-%EC%97%B0%EA%B5%AC%EC%86%8C/</link><pubDate>Thu, 12 May 2022 23:12:09 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/101-%EB%B0%B1%EC%A4%80-14502-%EC%97%B0%EA%B5%AC%EC%86%8C/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/14502" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/14502&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;14502번: 연구소인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크www.acmicpc.net&lt;/p&gt;
&lt;p&gt;브루트포스&lt;/p&gt;
&lt;p&gt;모든 blank에 대하여, 길이가 3인 comb를만들고,&lt;/p&gt;
&lt;p&gt;각각의 경우에대해 bfs를수행하여 0이 최대인값을 구한다.&lt;/p&gt;
&lt;p&gt;지금까지 copy가 만능인줄알았는데, 아니였다.&lt;/p&gt;
&lt;p&gt;copy를 쓰면, 그 객체 자체의 주소값은은 다르지만,&lt;/p&gt;
&lt;p&gt;다차원배열인경우, 그 안의 배열의 주소값은 같다.&lt;/p&gt;
&lt;p&gt;#ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 왜일케만들었지&lt;/p&gt;
&lt;p&gt;따라서, copy모듈의 decopy()를 사용하여 깊은복사를 해야만, 독립적인 arr을 유지할 수 있다.&lt;/p&gt;
&lt;p&gt;이것때문에 한참고민했다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysfrom collections import dequefrom itertools import combinations
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import copy ##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!input=sys.stdin.readline
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move=[[-1,0],[1,0],[0,-1],[0,1]]answer=0def bfs(walls): global answer
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; tmp_arr=copy.deepcopy(arr) !!!!!!!!!!!!!!!!!!!!!!!!! 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; tmp_answer=len(blank_list) for i,j in walls: tmp_arr[i][j]=1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; tmp_answer-=1 que=deque() que.extend(virus_list) while que:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; i,j=que.popleft() for a,b in move: tmp_i,tmp_j=i+a,j+b
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if 0&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;=tmp_i&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;n&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;tmp_j&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;m&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;tmp_arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;tmp_i&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tmp_j&lt;/span&gt;&lt;span class="err"&gt;]==&lt;/span&gt;&lt;span class="na"&gt;0:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;tmp_arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;tmp_i&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tmp_j&lt;/span&gt;&lt;span class="err"&gt;]=&lt;/span&gt;&lt;span class="na"&gt;2&lt;/span&gt; &lt;span class="na"&gt;tmp_answer-&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;que&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;((&lt;/span&gt;&lt;span class="na"&gt;tmp_i&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;tmp_j&lt;/span&gt;&lt;span class="err"&gt;))&lt;/span&gt; &lt;span class="na"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;max(answer,tmp_answer)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;m&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;map(int,input().split())arr=[]virus_list=[]blank_list=[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;i&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;[*&lt;/span&gt; &lt;span class="na"&gt;map&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;int&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="err"&gt;().&lt;/span&gt;&lt;span class="na"&gt;split&lt;/span&gt;&lt;span class="err"&gt;())]&lt;/span&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;tmp&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;j&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;len&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;tmp&lt;/span&gt;&lt;span class="err"&gt;))&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;if&lt;/span&gt; &lt;span class="na"&gt;tmp&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;j&lt;/span&gt;&lt;span class="err"&gt;]==&lt;/span&gt;&lt;span class="na"&gt;2:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;virus_list&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;((&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;j&lt;/span&gt;&lt;span class="err"&gt;))&lt;/span&gt; &lt;span class="na"&gt;elif&lt;/span&gt; &lt;span class="na"&gt;tmp&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;j&lt;/span&gt;&lt;span class="err"&gt;]==&lt;/span&gt;&lt;span class="na"&gt;0:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;blank_list&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;((&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;j&lt;/span&gt;&lt;span class="err"&gt;))&lt;/span&gt;&lt;span class="na"&gt;wall_comb&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;list(combinations(blank_list,3))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;walls&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;wall_comb:&lt;/span&gt; &lt;span class="na"&gt;bfs&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;walls&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;answer&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 5014 스타트링크</title><link>https://log.j2234.cc/posts/2022-tistory/100-%EB%B0%B1%EC%A4%80-5014-%EC%8A%A4%ED%83%80%ED%8A%B8%EB%A7%81%ED%81%AC/</link><pubDate>Thu, 12 May 2022 17:12:01 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/100-%EB%B0%B1%EC%A4%80-5014-%EC%8A%A4%ED%83%80%ED%8A%B8%EB%A7%81%ED%81%AC/</guid><description>&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;deque&lt;/span&gt;&lt;span class="c1"&gt;#f=총 층, g=스타트링크의 층, s=내가있는층, u=u층위로, d=d층아래로&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;deque&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;popleft&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nb"&gt;next&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="n"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;use the stairs&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/5014" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/5014&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;5014번: 스타트링크첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;간단한 dfs문제&lt;/p&gt;
&lt;p&gt;처음에 틀렸는데, 내가있는층==가고싶은층일때를 제외했기 때문&lt;/p&gt;
&lt;p&gt;설명 x&lt;/p&gt;</description></item><item><title>백준 1967 트리의 지름</title><link>https://log.j2234.cc/posts/2022-tistory/099-%EB%B0%B1%EC%A4%80-1967-%ED%8A%B8%EB%A6%AC%EC%9D%98-%EC%A7%80%EB%A6%84/</link><pubDate>Thu, 12 May 2022 16:23:06 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/099-%EB%B0%B1%EC%A4%80-1967-%ED%8A%B8%EB%A6%AC%EC%9D%98-%EC%A7%80%EB%A6%84/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1967" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1967&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1967번: 트리의 지름파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연www.acmicpc.net&lt;/p&gt;
&lt;p&gt;1167번 문제와 똑같은 개념&lt;/p&gt;
&lt;p&gt;이번엔 입력이 한방향만 주어지므로, 둘다 업데이트시켜줘야됨&lt;/p&gt;
&lt;p&gt;##필수개념##&lt;/p&gt;
&lt;p&gt;트리의 한 점에서 가장 먼 점은, 항상 지름 중 한 점이다!! &lt;a href="https://fuckingcomputer.tistory.com/97" target="_blank" rel="noreferrer"&gt;https://fuckingcomputer.tistory.com/97&lt;/a&gt; 참고&lt;/p&gt;
&lt;p&gt;##코드##&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysfrom&lt;/span&gt; &lt;span class="n"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;dequeinput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readlinedef&lt;/span&gt; &lt;span class="n"&gt;dfs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;one&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="n"&gt;long_d&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="n"&gt;visited&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt; &lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;deque&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;visited&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;popleft&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;weight&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;tree&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;visited&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;visited&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;visited&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;weight&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;visited&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;long_d&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;long_d&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;visited&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;one&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;one&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;long_d&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;tree&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[[]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="c1"&gt;#트리 채우기&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="n"&gt;tree&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tree&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="n"&gt;one&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;tresh&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;dfs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;#지름중하나, 쓰레기값(거리&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dfs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;one&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;#거리만 출력!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 11404플로이드</title><link>https://log.j2234.cc/posts/2022-tistory/098-%EB%B0%B1%EC%A4%80-11404%ED%94%8C%EB%A1%9C%EC%9D%B4%EB%93%9C/</link><pubDate>Thu, 12 May 2022 02:43:34 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/098-%EB%B0%B1%EC%A4%80-11404%ED%94%8C%EB%A1%9C%EC%9D%B4%EB%93%9C/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11404" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11404&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11404번: 플로이드첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가www.acmicpc.net&lt;/p&gt;
&lt;p&gt;내 기억상 유튜브에서 보고 처음으로 감탄사를 내뱉었던 알고리즘&lt;/p&gt;
&lt;p&gt;우리는 n*n 배열을 만들거다.&lt;/p&gt;
&lt;p&gt;배열 i,j는 i에서 j로가는 최소 경로이다.&lt;/p&gt;
&lt;p&gt;직접가는 버스가 있으면 가중치를, 없으면 존나큰값을 넣는다.&lt;/p&gt;
&lt;p&gt;n에 대한 3중 반복문을 돌면서,&lt;/p&gt;
&lt;p&gt;arr[i][j]가arr[i][k]+arr[k][j] 즉 직접가는 경로보다 k지점을 거쳐서 가는 경로가 빠르다면,&lt;/p&gt;
&lt;p&gt;더 빠른 경로를 업데이트해준다.&lt;/p&gt;</description></item><item><title>백준 1167 트리의 지름</title><link>https://log.j2234.cc/posts/2022-tistory/097-%EB%B0%B1%EC%A4%80-1167-%ED%8A%B8%EB%A6%AC%EC%9D%98-%EC%A7%80%EB%A6%84/</link><pubDate>Thu, 12 May 2022 00:12:47 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/097-%EB%B0%B1%EC%A4%80-1167-%ED%8A%B8%EB%A6%AC%EC%9D%98-%EC%A7%80%EB%A6%84/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1167" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1167&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1167번: 트리의 지름트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지www.acmicpc.net&lt;/p&gt;
&lt;p&gt;개념도 ㅈ같고 구현도 ㅈ같았던 문제&lt;/p&gt;
&lt;p&gt;가장 먼져 든 생각은, 트리의 모든 정점에서 모든 정점까지의 길이를 탐색하는거였는데, 말도안되서 포기했다.&lt;/p&gt;
&lt;p&gt;가장 중요한건 트리의 개념이다.&lt;/p&gt;
&lt;p&gt;트리는, 어떠한 두 노드를 선택해도, 경로는 항상 하나이다.&lt;/p&gt;
&lt;p&gt;따라서, 임이의 한 점에서 가장 먼 정점은, 트리의 지름(가장 먼 정점) 의 두 정점 중 하나이다.&lt;/p&gt;</description></item><item><title>백준 11725 트리의 부모 찾기</title><link>https://log.j2234.cc/posts/2022-tistory/096-%EB%B0%B1%EC%A4%80-11725-%ED%8A%B8%EB%A6%AC%EC%9D%98-%EB%B6%80%EB%AA%A8-%EC%B0%BE%EA%B8%B0/</link><pubDate>Wed, 11 May 2022 11:26:40 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/096-%EB%B0%B1%EC%A4%80-11725-%ED%8A%B8%EB%A6%AC%EC%9D%98-%EB%B6%80%EB%AA%A8-%EC%B0%BE%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11725" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11725&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11725번: 트리의 부모 찾기루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;1을 시작으로 dfs든 bfs든 하면서 parent를 업데이트해준다.&lt;/p&gt;
&lt;p&gt;#dfs&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import syssys.setrecursionlimit(10**6)input=sys.stdin.readlinedef dfs(node=1):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for next_node in arr[node]: if parent[next_node]==-1:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; parent[next_node]=node dfs(next_node)n=int(input())
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;parent=[-1 for _ in range(n+1)]arr=[[]for _ in range(n+1)]for _ in range(n-1):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; a,b=map(int,input().split()) arr[a].append(b) arr[b].append(a)dfs()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;for p in parent[2:]: print(p)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;#bfs&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysfrom collections import dequeinput=sys.stdin.readlinedef bfs(root=1):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; que=deque([root]) while que: node=que.popleft()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for next_node in arr[node]: if parent[next_node]==-1:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; parent[next_node]=node que.append(next_node) 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;n=int(input())parent=[-1 for _ in range(n+1)]arr=[[]for _ in range(n+1)]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;for _ in range(n-1): a,b=map(int,input().split()) arr[a].append(b)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; arr[b].append(a)bfs()for p in parent[2:]: print(p)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 2250 트리의 높이와 너비</title><link>https://log.j2234.cc/posts/2022-tistory/095-%EB%B0%B1%EC%A4%80-2250-%ED%8A%B8%EB%A6%AC%EC%9D%98-%EB%86%92%EC%9D%B4%EC%99%80-%EB%84%88%EB%B9%84/</link><pubDate>Tue, 10 May 2022 13:28:26 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/095-%EB%B0%B1%EC%A4%80-2250-%ED%8A%B8%EB%A6%AC%EC%9D%98-%EB%86%92%EC%9D%B4%EC%99%80-%EB%84%88%EB%B9%84/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2250" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2250&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2250번: 트리의 높이와 너비첫째 줄에 노드의 개수를 나타내는 정수 N(1 ≤ N ≤ 10,000)이 주어진다. 다음 N개의 줄에는 각 줄마다 노드 번호와 해당 노드의 왼쪽 자식 노드와 오른쪽 자식 노드의 번호가 순서대로 주어진다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;와 진짜 나한테는 개어렵다.&lt;/p&gt;
&lt;p&gt;다른사람의 풀이를 참고했다.&lt;/p&gt;
&lt;p&gt;먼져, 정보를 받아서 tree를 구성한다.&lt;/p&gt;
&lt;p&gt;root가주어지지 않기에, 각각의 트리에 parent를 -1로 초기화시켜놓고,&lt;/p&gt;
&lt;p&gt;각각의 자식노드들의 parent를 업데이트한다.&lt;/p&gt;
&lt;p&gt;이후 트리에서 parent가 -1인 노드가 root이다.&lt;/p&gt;
&lt;p&gt;루트에서 중위순회를 시작한다. 이때 레벨정보를 넘겨줘야한다.&lt;/p&gt;
&lt;p&gt;레벨정보는 root일때 1이고, 한단계 들어갈때마다 1씩 증가시킨다.&lt;/p&gt;</description></item><item><title>백준 2580 스도쿠</title><link>https://log.j2234.cc/posts/2022-tistory/094-%EB%B0%B1%EC%A4%80-2580-%EC%8A%A4%EB%8F%84%EC%BF%A0/</link><pubDate>Mon, 09 May 2022 12:52:54 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/094-%EB%B0%B1%EC%A4%80-2580-%EC%8A%A4%EB%8F%84%EC%BF%A0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2580" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2580&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2580번: 스도쿠스도쿠는 18세기 스위스 수학자가 만든 &amp;lsquo;라틴 사각형&amp;rsquo;이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루www.acmicpc.net&lt;/p&gt;
&lt;p&gt;스도쿠를 받으면서, 공백의 위치만 따로 기억한다.&lt;/p&gt;
&lt;p&gt;이후, 첫번째 공백부터 1~9의 숫자로 채우며, 가로,세로,3*3사각형을 검사한다.&lt;/p&gt;
&lt;p&gt;이후 되는경우만 밀고나간다.&lt;/p&gt;
&lt;p&gt;##코드##&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysinput=sys.stdin.readlinedef check(a,b,value): 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for i in range(9): #가로 if arr[a][i]==value:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; return False #세로 if arr[i][b]==value:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; return False #사각형 start_a=a//3*3 start_b=b//3*3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for i in range(start_a,start_a+3): for j in range(start_b,start_b+3):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if arr[i][j]==value: return False return True
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; def dfs(cnt=0): if cnt==len(blank): for ar in arr:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(* ar) exit() for i in range(1,10):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; a,b=blank[cnt] #세로,가로 if check(a,b,i): arr[a][b]=i
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; dfs(cnt+1) arr[a][b]=0 returnarr=[] #스도쿠blank=[]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;for i in range(9): tmp=[*map(int,input().strip().split())] arr.append(tmp)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for j in range(9): if tmp[j]==0: blank.append((i,j))dfs()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;진짜 가면갈수록자괴감느낀다.&lt;/p&gt;</description></item><item><title>백준4179불!</title><link>https://log.j2234.cc/posts/2022-tistory/093-%EB%B0%B1%EC%A4%804179%EB%B6%88/</link><pubDate>Sat, 07 May 2022 15:18:44 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/093-%EB%B0%B1%EC%A4%804179%EB%B6%88/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/4179" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/4179&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;4179번: 불!입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음부터 풀이기 보였다.&lt;/p&gt;
&lt;p&gt;모르는점은 불이랑 지훈이가 동시에도착하면 사냐 죽나였는데 죽는단다.&lt;/p&gt;
&lt;p&gt;move 하나를 잘못입력해서 30여분 날렸다.&lt;/p&gt;
&lt;p&gt;동시에 도착하면 죽으므로, 모든 불의 위치를 먼져 deque에 넣는다. 이때, (i,j,-1) 마지막값을 -1로해준다&lt;/p&gt;
&lt;p&gt;그후 지훈이의 위치를 넣는다. 마지막 값에 시간을 넣을거므로 0으로 해준다.&lt;/p&gt;</description></item><item><title>백준 2023 신기한 소수</title><link>https://log.j2234.cc/posts/2022-tistory/092-%EB%B0%B1%EC%A4%80-2023-%EC%8B%A0%EA%B8%B0%ED%95%9C-%EC%86%8C%EC%88%98/</link><pubDate>Thu, 05 May 2022 11:49:47 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/092-%EB%B0%B1%EC%A4%80-2023-%EC%8B%A0%EA%B8%B0%ED%95%9C-%EC%86%8C%EC%88%98/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2023" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2023&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2023번: 신기한 소수수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수www.acmicpc.net&lt;/p&gt;
&lt;p&gt;와 이전에 풀때 포기했던 문젠데, 백트래킹을 해보고 왔더니 정말 쉬운 문제였다.&lt;/p&gt;
&lt;p&gt;먼져, 첫자리는 소수여야하므로 2,3,5,7이외의 수는 없다.&lt;/p&gt;
&lt;p&gt;2,3,5,7을 시작으로 하는 n자리의 숫자를 찾으면 되는데,&lt;/p&gt;
&lt;p&gt;한단계씩 지나갈때마다 그 단계의 신기한 소수판별을 하고, 아니면 더이상 탐색하지 않는다.&lt;/p&gt;
&lt;p&gt;신기한 소수를 판별할 때, 그 자리만 판별한다.&lt;/p&gt;</description></item><item><title>백준 1991 트리 순회</title><link>https://log.j2234.cc/posts/2022-tistory/091-%EB%B0%B1%EC%A4%80-1991-%ED%8A%B8%EB%A6%AC-%EC%88%9C%ED%9A%8C/</link><pubDate>Wed, 04 May 2022 20:26:29 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/091-%EB%B0%B1%EC%A4%80-1991-%ED%8A%B8%EB%A6%AC-%EC%88%9C%ED%9A%8C/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1991" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1991&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1991번: 트리 순회첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파www.acmicpc.net&lt;/p&gt;
&lt;p&gt;트리를 처음 접했다.&lt;/p&gt;
&lt;p&gt;유튜브에서 트리구조 강의를 보고 풀었다.&lt;/p&gt;
&lt;p&gt;처음으로 클래스를 사용했다.&lt;/p&gt;
&lt;p&gt;계속보다보니 신기하다.&lt;/p&gt;
&lt;p&gt;전위순회= 루트-왼쪽-오른쪽&lt;/p&gt;
&lt;p&gt;중위순회=왼쪽-루트-오른쪽&lt;/p&gt;
&lt;p&gt;후위순회=왼쪽-오른쪽-루트&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysinput=sys.stdin.readlineclass Node():
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; def __init__(self,current_node,left_node,right_node):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; self.current=current_node self.left=left_node
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; self.right=right_nodedef 전위순회(node): print(node.current,end=&amp;#39;&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if node.left !=&amp;#39;.&amp;#39;: 전위순회(tree[node.left]) if node.right !=&amp;#39;.&amp;#39;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 전위순회(tree[node.right])def 중위순회(node): if node.left !=&amp;#39;.&amp;#39;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 중위순회(tree[node.left]) print(node.current,end=&amp;#39;&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if node.right !=&amp;#39;.&amp;#39;: 중위순회(tree[node.right])def 후위순회(node):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if node.left !=&amp;#39;.&amp;#39;: 후위순회(tree[node.left]) if node.right !=&amp;#39;.&amp;#39;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 후위순회(tree[node.right]) print(node.current,end=&amp;#39;&amp;#39;)n=int(input())
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tree={}for _ in range(n):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; current_node,left_node,right_node=input().strip().split()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; tree[current_node]=Node(current_node,left_node,right_node)전위순회(tree[&amp;#34;A&amp;#34;])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print()중위순회(tree[&amp;#34;A&amp;#34;])print()후위순회(tree[&amp;#34;A&amp;#34;])&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 1261 알고스팟</title><link>https://log.j2234.cc/posts/2022-tistory/090-%EB%B0%B1%EC%A4%80-1261-%EC%95%8C%EA%B3%A0%EC%8A%A4%ED%8C%9F/</link><pubDate>Tue, 03 May 2022 13:35:16 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/090-%EB%B0%B1%EC%A4%80-1261-%EC%95%8C%EA%B3%A0%EC%8A%A4%ED%8C%9F/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1261" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1261&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1261번: 알고스팟첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미www.acmicpc.net&lt;/p&gt;
&lt;p&gt;이래서 사람들이 비싼돈내고 알고리즘강의를 듣는구나 싶다.&lt;/p&gt;
&lt;p&gt;&amp;lsquo;가중치가 있는 경로찾기&amp;rsquo; 이다.&lt;/p&gt;
&lt;p&gt;벽을 지나갈때는 1의 가중치가, 아니면 가중치가 없다고 생각한다. 풀이는 bfs와 거의 같다.&lt;/p&gt;
&lt;p&gt;다른점은, 최대한 벽을 부수지 않아야되므로,&lt;/p&gt;
&lt;p&gt;1의 가중치가 있는점을 탐색하기 전에, 가중치가 없는 모든 노드를 탐색해야만 한다.&lt;/p&gt;</description></item><item><title>백준 9663 n-queen</title><link>https://log.j2234.cc/posts/2022-tistory/089-%EB%B0%B1%EC%A4%80-9663-n-queen/</link><pubDate>Mon, 02 May 2022 14:26:17 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/089-%EB%B0%B1%EC%A4%80-9663-n-queen/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/9663" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/9663&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;9663번: N-QueenN-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;벽느낀다. ㅋㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;처음에는 2차원배열을 통해 풀었는데, 시간초과가 났다.&lt;/p&gt;
&lt;p&gt;다른사람의 풀이를 보고 힌트를 얻었다.&lt;/p&gt;
&lt;p&gt;dp[i]=j 의 뜻은, i번째 줄의 j번째 칸에 퀸을 놓는다는 소리이다.&lt;/p&gt;
&lt;p&gt;모든 열에는 퀸이 하나씩 들어가야 하므로, 0열부터 n가지의 경우를 모두 탐색한다.&lt;/p&gt;
&lt;p&gt;이후 그 다음 열을 순차적으로 탐색하며, 안되는 경우&lt;/p&gt;</description></item><item><title>백준 2293 동전1</title><link>https://log.j2234.cc/posts/2022-tistory/088-%EB%B0%B1%EC%A4%80-2293-%EB%8F%99%EC%A0%841/</link><pubDate>Sun, 01 May 2022 20:09:46 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/088-%EB%B0%B1%EC%A4%80-2293-%EB%8F%99%EC%A0%841/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2293" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2293&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2293번: 동전 1첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음에 ㅈ밥으로생각했는데, 예상외로 어려웠다.&lt;/p&gt;
&lt;p&gt;먼져 동전을 저장하고, dp배열을 생성한다.&lt;/p&gt;
&lt;p&gt;여기서 내가 이해가 안됬던 부분은, 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. 라는 문장이다&lt;/p&gt;
&lt;p&gt;예로 동전이 1,2 가 있다면,&lt;/p&gt;
&lt;p&gt;3을만들수 있는 경우는 1+1+1 , 1+2, 2+1 ,3 총 4가지이다.&lt;/p&gt;</description></item><item><title>백준 14226 이모티콘</title><link>https://log.j2234.cc/posts/2022-tistory/087-%EB%B0%B1%EC%A4%80-14226-%EC%9D%B4%EB%AA%A8%ED%8B%B0%EC%BD%98/</link><pubDate>Sat, 30 Apr 2022 20:59:16 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/087-%EB%B0%B1%EC%A4%80-14226-%EC%9D%B4%EB%AA%A8%ED%8B%B0%EC%BD%98/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/14226" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/14226&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;14226번: 이모티콘영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만www.acmicpc.net&lt;/p&gt;
&lt;p&gt;거의 정답보고풀었다.&lt;/p&gt;
&lt;p&gt;주의할점은 , 개수만 생각하면 안된다는 것이다.&lt;/p&gt;
&lt;p&gt;백준 질문계시판에서 본 글인데, 우리가 임의의 숫자까지 갈 수 있는 최적의 경로가, 정답까지의 최적의 경로라고는 할 수 없다.&lt;a href="https://www.acmicpc.net/board/view/30100" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/board/view/30100&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;보고 머리가 띵했다.&lt;/p&gt;
&lt;p&gt;먼져 2차원배열의방식이 있다.&lt;/p&gt;
&lt;p&gt;dp[i][j]=i를만들때 클립보드가 j인 경우까지 드는 최소시간을 뜻한다.&lt;/p&gt;
&lt;p&gt;3가지 경우로 bfs를 진행하면 된다.&lt;/p&gt;</description></item><item><title>백준 13913 숨바꼭질4</title><link>https://log.j2234.cc/posts/2022-tistory/086-%EB%B0%B1%EC%A4%80-13913-%EC%88%A8%EB%B0%94%EA%BC%AD%EC%A7%884/</link><pubDate>Fri, 29 Apr 2022 20:04:51 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/086-%EB%B0%B1%EC%A4%80-13913-%EC%88%A8%EB%B0%94%EA%BC%AD%EC%A7%884/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/13913" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/13913&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;13913번: 숨바꼭질 4수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일www.acmicpc.net&lt;/p&gt;
&lt;p&gt;dp로생각했었는데, 사실 bfs였다.&lt;/p&gt;
&lt;p&gt;먼져, -1로 채워진 빈 배열을 만들고, 현재위치를 0으로 초기화시켜준다.&lt;/p&gt;
&lt;p&gt;이후 현재위치에서 x+1,x-1,x*2로 확장하며 bfs를 진행한다.&lt;/p&gt;
&lt;p&gt;마지막 경로를 알기 위해 배열을 하나 더 만들고, 이 배열에 현재위치의 전위치를 기억시켜준다.&lt;/p&gt;
&lt;p&gt;만일 k에 도달했으면, k까지의 시간을 출력하고,&lt;/p&gt;</description></item><item><title>백준 2146 다리 만들기</title><link>https://log.j2234.cc/posts/2022-tistory/085-%EB%B0%B1%EC%A4%80-2146-%EB%8B%A4%EB%A6%AC-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><pubDate>Fri, 29 Apr 2022 19:04:15 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/085-%EB%B0%B1%EC%A4%80-2146-%EB%8B%A4%EB%A6%AC-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2146" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2146&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2146번: 다리 만들기여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다www.acmicpc.net&lt;/p&gt;
&lt;p&gt;어제 이걸못풀어서 접을까 생각했다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;일단, 모든 섬을 구분한다. (bfs1)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;섬의 가장자리(edge)좌표를 모두 구한다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;edge를 바탕으로 (bfs2) 를 진행하며, 바다를 그 섬으로 메워나간다&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;bridge배열을 만들어서, 메운 위치에 1씩 +하며 메운 점 갯수를 센다.&lt;/p&gt;
&lt;p&gt;메워나가다가, 만일 자기 섬도 아니고 바다도 아닌 다른 섬을 만나면 이제 다리가 이어진것이다.&lt;/p&gt;</description></item><item><title>백준 16947 서울 지하철 2호선 (언젠간수정예정)</title><link>https://log.j2234.cc/posts/2022-tistory/084-%EB%B0%B1%EC%A4%80-16947-%EC%84%9C%EC%9A%B8-%EC%A7%80%ED%95%98%EC%B2%A0-2%ED%98%B8%EC%84%A0-%EC%96%B8%EC%A0%A0%EA%B0%84%EC%88%98%EC%A0%95%EC%98%88%EC%A0%95/</link><pubDate>Thu, 28 Apr 2022 00:33:58 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/084-%EB%B0%B1%EC%A4%80-16947-%EC%84%9C%EC%9A%B8-%EC%A7%80%ED%95%98%EC%B2%A0-2%ED%98%B8%EC%84%A0-%EC%96%B8%EC%A0%A0%EA%B0%84%EC%88%98%EC%A0%95%EC%98%88%EC%A0%95/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/16947" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/16947&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;16947번: 서울 지하철 2호선첫째 줄에 역의 개수 N(3 ≤ N ≤ 3,000)이 주어진다. 둘째 줄부터 N개의 줄에는 역과 역을 연결하는 구간의 정보가 주어진다. 같은 구간이 여러 번 주어지는 경우는 없고, 역은 1번부터 N번까지 번호www.acmicpc.net&lt;/p&gt;
&lt;p&gt;존나열심히풀었다. 결국맞았다.&lt;/p&gt;
&lt;p&gt;근데 기분이썩는다.&lt;/p&gt;
&lt;p&gt;내 풀이방식&lt;/p&gt;
&lt;p&gt;그래프를 계속 돌면서, 시작한 위치로 돌아오는 경우(싸이클인 경우)를 찾는다.&lt;/p&gt;
&lt;p&gt;찾으면서, 만일 cycle이 아니면 방문처리를 풀고, 맞으면 모두 방문처리한다.&lt;/p&gt;
&lt;p&gt;이후, answer을 만들고&lt;/p&gt;
&lt;p&gt;순환선에서 밖이랑 연결된 정점은 간선이 3 이상일 것이므로,&lt;/p&gt;</description></item><item><title>벡준 16929 two dots</title><link>https://log.j2234.cc/posts/2022-tistory/083-%EB%B2%A1%EC%A4%80-16929-two-dots/</link><pubDate>Tue, 26 Apr 2022 13:11:51 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/083-%EB%B2%A1%EC%A4%80-16929-two-dots/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/16929" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/16929&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;16929번: Two Dots첫째 줄에 게임판의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에 게임판의 상태가 주어진다. 게임판은 모두 점으로 가득차 있고, 게임판의 상태는 점의 색을 의미한다. 점의 색은 알파벳 대문www.acmicpc.net&lt;/p&gt;
&lt;p&gt;사이클이 있는지를 확인하는 문제&lt;/p&gt;
&lt;p&gt;처음엔, 진짜 무식한 방식으로 접근했다.&lt;/p&gt;
&lt;p&gt;arr의 모든 점에 대하여 dfs 탐색을 하는데, &amp;ldquo;깊이가 2 를 넘은 상태에서, 원래의 점과 만나는 경우&amp;rdquo; 를 성공조건으로 삼았다.&lt;/p&gt;
&lt;p&gt;답은 맞게 나왔는데, 시간이 100ms넘게 걸렸다.&lt;/p&gt;
&lt;p&gt;그 후, 다시 생각을 해보니,&lt;/p&gt;</description></item><item><title>백준 14500 테트로미노</title><link>https://log.j2234.cc/posts/2022-tistory/082-%EB%B0%B1%EC%A4%80-14500-%ED%85%8C%ED%8A%B8%EB%A1%9C%EB%AF%B8%EB%85%B8/</link><pubDate>Mon, 25 Apr 2022 13:03:50 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/082-%EB%B0%B1%EC%A4%80-14500-%ED%85%8C%ED%8A%B8%EB%A1%9C%EB%AF%B8%EB%85%B8/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/14500" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/14500&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;14500번: 테트로미노폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변www.acmicpc.net&lt;/p&gt;
&lt;p&gt;머리가 나쁘면 손이 고생한다.&lt;/p&gt;
&lt;p&gt;1.가장 직관적인 풀이&lt;/p&gt;
&lt;p&gt;모든 경우의수를 다 벡터에 넣고, 이를 반복하면서 구한다.&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;조금머리쓴거&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;잘 생각해보면 엿을(ㅗ) 을 제외한 모든 경우의 수는, 깊이가 4인 dfs이다.&lt;/p&gt;
&lt;p&gt;따라서 각 점에 대하여 깊이가 4인 dfs의 최댓값을 구하고, 총 4방향의 가능한 엿에 대해 최댓값을 구한다.&lt;/p&gt;</description></item><item><title>백준 1707 이분 그래프</title><link>https://log.j2234.cc/posts/2022-tistory/081-%EB%B0%B1%EC%A4%80-1707-%EC%9D%B4%EB%B6%84-%EA%B7%B8%EB%9E%98%ED%94%84/</link><pubDate>Sat, 23 Apr 2022 21:14:34 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/081-%EB%B0%B1%EC%A4%80-1707-%EC%9D%B4%EB%B6%84-%EA%B7%B8%EB%9E%98%ED%94%84/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1707" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1707&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1707번: 이분 그래프입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에www.acmicpc.net&lt;/p&gt;
&lt;p&gt;뭔 개소린지 모르겠어서 인터넷을 찾아보았다.&lt;/p&gt;
&lt;p&gt;이분그래프는&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="889"
 height="201"
 src="https://log.j2234.cc/posts/2022-tistory/081-%EB%B0%B1%EC%A4%80-1707-%EC%9D%B4%EB%B6%84-%EA%B7%B8%EB%9E%98%ED%94%84/img/image-01_hu_4e4ee2e0b3df4d2.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/081-%EB%B0%B1%EC%A4%80-1707-%EC%9D%B4%EB%B6%84-%EA%B7%B8%EB%9E%98%ED%94%84/img/image-01_hu_4e4ee2e0b3df4d2.webp 800w, https://log.j2234.cc/posts/2022-tistory/081-%EB%B0%B1%EC%A4%80-1707-%EC%9D%B4%EB%B6%84-%EA%B7%B8%EB%9E%98%ED%94%84/img/image-01.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/081-%EB%B0%B1%EC%A4%80-1707-%EC%9D%B4%EB%B6%84-%EA%B7%B8%EB%9E%98%ED%94%84/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;p&gt;​이렇게 빨간색은 빨간색끼리 연걸 x, 검은색은 검은색끼리 연결 x 하는 그래프를 말한다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;인접한 두 점이 같은 색깔이라면, 이분그래프가 아니다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;만일 어디에도 연결되지 않은 점이라면, 이는 빨간, 검정 두개다 될 수 있다.&lt;/p&gt;</description></item><item><title>백준 12865 평범한베낭</title><link>https://log.j2234.cc/posts/2022-tistory/080-%EB%B0%B1%EC%A4%80-12865-%ED%8F%89%EB%B2%94%ED%95%9C%EB%B2%A0%EB%82%AD/</link><pubDate>Fri, 22 Apr 2022 13:41:10 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/080-%EB%B0%B1%EC%A4%80-12865-%ED%8F%89%EB%B2%94%ED%95%9C%EB%B2%A0%EB%82%AD/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/12865" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/12865&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;12865번: 평범한 배낭첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000)www.acmicpc.net&lt;/p&gt;
&lt;p&gt;첫 풀이&lt;/p&gt;
&lt;p&gt;2차원 배열을 이용해서 풀음&lt;/p&gt;
&lt;p&gt;dp[i][j]= i번째 물건까지 봤을때, 무계 j를 만족하는 가장 큰 가치&lt;/p&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysinput=sys.stdin.readlinen,k=map(int,input().split())
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wv=[[0,0]]+[[*map (int,input().split())]for _ in range(n)]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dp=[[0 for _ in range(k+1)]for _ in range(n+1)]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#dp[i][j]=i번째 물건까지 봤을때, 무계가 j인 배낭의 최대가치for i in range(1,n+1):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for j in range(1,k+1): if j-wv[i][0]&amp;gt;=0:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; dp[i][j]=max(dp[i-1][j-wv[i][0]]+wv[i][1], dp[i-1][j])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; else: dp[i][j]=dp[i-1][j]print(dp[-1][-1])&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;그런데 다른사람들 풀이를 보다 보니, 2배는 효율적인 알고리즘이 있었다.&lt;/p&gt;</description></item><item><title>백준 7562 나이트의 이동</title><link>https://log.j2234.cc/posts/2022-tistory/079-%EB%B0%B1%EC%A4%80-7562-%EB%82%98%EC%9D%B4%ED%8A%B8%EC%9D%98-%EC%9D%B4%EB%8F%99/</link><pubDate>Thu, 21 Apr 2022 21:19:24 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/079-%EB%B0%B1%EC%A4%80-7562-%EB%82%98%EC%9D%B4%ED%8A%B8%EC%9D%98-%EC%9D%B4%EB%8F%99/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/7562" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/7562&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;7562번: 나이트의 이동체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수www.acmicpc.net&lt;/p&gt;
&lt;p&gt;그냥 bfs문제임&lt;/p&gt;
&lt;p&gt;근데에러나서한참고심했음&lt;/p&gt;
&lt;p&gt;그냥 생각해야되는건, deque를 전역변수로 썼을때, deque에 아직 처리되지않은것들이 남아있다는거임&lt;/p&gt;
&lt;p&gt;그것만생각하면 쉬움&lt;/p&gt;
&lt;p&gt;##코드##&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysfrom collections import dequeinput=sys.stdin.readline
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;moves=[(-2,1),(-2,-1),(-1,2),(-1,-2),(1,2),(1,-2),(2,-1),(2,1)]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;def bfs(a,b,l,goal_i,goal_j): s.append((a,b,0)) arr[a][b]=1 while s:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; i,j,v=s.popleft() for move in moves: aa,bb=move
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ti,tj=i+aa,j+bb if ti==goal_i and tj==goal_j:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(v+1) return
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if 0&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;=ti&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;l&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;l&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;ti&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;]==&lt;/span&gt;&lt;span class="na"&gt;0:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;ti&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;]=&lt;/span&gt;&lt;span class="na"&gt;1&lt;/span&gt; &lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;((&lt;/span&gt;&lt;span class="na"&gt;ti&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;v&lt;/span&gt;&lt;span class="err"&gt;+&lt;/span&gt;&lt;span class="na"&gt;1&lt;/span&gt;&lt;span class="err"&gt;))&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;int&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="err"&gt;()))&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;deque()&lt;/span&gt; &lt;span class="na"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;int(input())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;[[0&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;l&lt;/span&gt;&lt;span class="err"&gt;)]&lt;/span&gt;&lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;l&lt;/span&gt;&lt;span class="err"&gt;)]&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;map(int,input().split())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;goal_i&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;goal_j&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;map(int,input().split())&lt;/span&gt; &lt;span class="na"&gt;if&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;=goal_i&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;=goal_j:&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="na"&gt;continue&lt;/span&gt; &lt;span class="na"&gt;bfs&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;l&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;goal_i&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;goal_j&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 14888 연산자 끼워넣기</title><link>https://log.j2234.cc/posts/2022-tistory/078-%EB%B0%B1%EC%A4%80-14888-%EC%97%B0%EC%82%B0%EC%9E%90-%EB%81%BC%EC%9B%8C%EB%84%A3%EA%B8%B0/</link><pubDate>Thu, 21 Apr 2022 15:34:43 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/078-%EB%B0%B1%EC%A4%80-14888-%EC%97%B0%EC%82%B0%EC%9E%90-%EB%81%BC%EC%9B%8C%EB%84%A3%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/14888" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/14888&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;14888번: 연산자 끼워넣기첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, &amp;hellip;, AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수,www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음에 permu어쩌구를 통해 모든 기호의 배열을 구해서 풀었다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;from itertools import permutationsimport sysinput=sys.stdin.readline
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;n=int(input())a=[*map(int,input().split())]q,w,e,r=map(int,input().split())
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmp_sign=&amp;#39;+&amp;#39;*q+&amp;#39;-&amp;#39;*w+&amp;#39;*&amp;#39;*e+&amp;#39;/&amp;#39;*rsigns=list(permutations(tmp_sign,n-1))
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;signs=list(set(signs))max_answer=-1000000000min_answer=1000000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;for sign in signs: answer=a[0] for i in range(n-1): 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if sign[i]==&amp;#39;+&amp;#39;: answer+=a[i+1] elif sign[i]==&amp;#39;-&amp;#39;: 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; answer-=a[i+1] elif sign[i]==&amp;#39;*&amp;#39;: answer*=a[i+1]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; elif sign[i]==&amp;#39;/&amp;#39;: # answer//=a[i+1]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if answer&amp;gt;=0: answer//=a[i+1] else:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; answer= -(-answer//a[i+1]) min_answer=min(min_answer,answer)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; max_answer=max(max_answer,answer)print(max_answer,min_answer,sep=&amp;#39;\n&amp;#39;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;근데 다른 풀이를 보니 그럴거없이&lt;/p&gt;</description></item><item><title>백준 17114 하이퍼 토마토</title><link>https://log.j2234.cc/posts/2022-tistory/077-%EB%B0%B1%EC%A4%80-17114-%ED%95%98%EC%9D%B4%ED%8D%BC-%ED%86%A0%EB%A7%88%ED%86%A0/</link><pubDate>Wed, 20 Apr 2022 19:30:05 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/077-%EB%B0%B1%EC%A4%80-17114-%ED%95%98%EC%9D%B4%ED%8D%BC-%ED%86%A0%EB%A7%88%ED%86%A0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/17114" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/17114&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;17114번: 하이퍼 토마토첫 줄에는 문제의 설명에서 창고의 크기를 나타내는 자연수 m, n, o, p, q, r, s, t, u, v, w가 주어진다. 단, 1 ≤ mnopqrstuvw ≤ 106 이다. 둘째 줄부터는 창고에 저장된 토마토들의 정보가 주어진다. 창www.acmicpc.net&lt;/p&gt;
&lt;p&gt;토마토3&lt;/p&gt;
&lt;p&gt;ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;오기생겨서 1시간은 쓴듯하다.&lt;/p&gt;
&lt;p&gt;다 아는 개념이여도, 변수가많아지니 헷갈린다. 변수명 아무렇게나 짓다가 변수겹처서 틀린것도 셀 수 없다.&lt;/p&gt;
&lt;p&gt;그냥 재미용&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move1=[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move2=[0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move3=[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move4=[0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move5=[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move6=[0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move7=[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move8=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move9=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move10=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;move11=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# def bfs(m, n, o, p, q, r, s, t, u, v, w):def bfs(): while que: 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ww,vv,uu,tt,ss,rr,qq,pp,oo,nn,mm,value=que.popleft()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for i in range(22): mmm= mm+move1[i]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; nnn= nn+move2[i] ooo= oo+move3[i]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ppp= pp+move4[i] qqq= qq+move5[i]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; rrr= rr+move6[i] sss= ss+move7[i]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ttt= tt+move8[i] uuu= uu+move9[i]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; vvv= vv+move10[i] www= ww+move11[i] 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if 0&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;=mmm&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;m&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;nnn&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;ooo&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;o&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;ppp&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;p&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;qqq&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;q&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;rrr&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;r&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="err"&gt;\&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;sss&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;s&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;ttt&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;t&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;uuu&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;u&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;vvv&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;v&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;www&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;w&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;www&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;vvv&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;uuu&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;ttt&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;sss&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;rrr&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;qqq&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;ppp&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;ooo&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;nnn&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;mmm&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="err"&gt;==&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;que&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;([&lt;/span&gt;&lt;span class="na"&gt;www&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;vvv&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;uuu&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;ttt&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;sss&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;rrr&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;qqq&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;ppp&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;ooo&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;nnn&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;mmm&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="err"&gt;+&lt;/span&gt;&lt;span class="na"&gt;1&lt;/span&gt;&lt;span class="err"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;www&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;vvv&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;uuu&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;ttt&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;sss&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;rrr&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;qqq&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;ppp&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;ooo&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;nnn&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;mmm&lt;/span&gt;&lt;span class="err"&gt;]=&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;-1&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;ww&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;w&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;vv&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;v&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;uu&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;u&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;tt&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;t&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;ss&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;rr&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;r&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;qq&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;q&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;pp&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;p&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;oo&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;o&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;nn&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;mm&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;m&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;if&lt;/span&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;ww&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;vv&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;uu&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tt&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;ss&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;rr&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;qq&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;pp&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;oo&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;nn&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;mm&lt;/span&gt;&lt;span class="err"&gt;]==&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;-1&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;return&lt;/span&gt; &lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;import&lt;/span&gt; &lt;span class="na"&gt;sysinput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;sys.stdin.readlinefrom&lt;/span&gt; &lt;span class="na"&gt;collections&lt;/span&gt; &lt;span class="na"&gt;import&lt;/span&gt; &lt;span class="na"&gt;deque&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;m&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;o&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;p&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;q&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;r&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;t&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;u&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;v&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;w&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;map(int,input().split())arr=[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;[[[[[[[[[&lt;/span&gt;&lt;span class="na"&gt;list&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="err"&gt;().&lt;/span&gt;&lt;span class="na"&gt;split&lt;/span&gt;&lt;span class="err"&gt;())&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;o&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;p&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;q&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;r&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;t&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;u&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;v&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;w&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="err"&gt;]&lt;/span&gt;&lt;span class="na"&gt;que&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;deque()for&lt;/span&gt; &lt;span class="na"&gt;ww&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;w&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;vv&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;v&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;uu&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;u&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;tt&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;t&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;ss&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;rr&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;r&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;qq&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;q&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;pp&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;p&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;oo&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;o&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;nn&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;mm&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;m&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;#&lt;/span&gt; &lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;test&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;,&lt;/span&gt;&lt;span class="na"&gt;ww&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;vv&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;uu&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;tt&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;ss&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;rr&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;qq&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;pp&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;oo&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;nn&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;mm&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;if&lt;/span&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;ww&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;vv&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;uu&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tt&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;ss&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;rr&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;qq&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;pp&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;oo&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;nn&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;mm&lt;/span&gt;&lt;span class="err"&gt;]==&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;1&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;que&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;([&lt;/span&gt;&lt;span class="na"&gt;ww&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;vv&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;uu&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;tt&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;ss&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;rr&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;qq&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;pp&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;oo&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;nn&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;mm&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;ww&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;vv&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;uu&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tt&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;ss&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;rr&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;qq&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;pp&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;oo&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;nn&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;mm&lt;/span&gt;&lt;span class="err"&gt;]=&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;-1&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;bfs&lt;/span&gt;&lt;span class="err"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;이렇게짜면 답은 맞지만 파이썬이 견디질 못한다.&lt;/p&gt;</description></item><item><title>백준 7569 토마토2</title><link>https://log.j2234.cc/posts/2022-tistory/076-%EB%B0%B1%EC%A4%80-7569-%ED%86%A0%EB%A7%88%ED%86%A02/</link><pubDate>Wed, 20 Apr 2022 12:26:37 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/076-%EB%B0%B1%EC%A4%80-7569-%ED%86%A0%EB%A7%88%ED%86%A02/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/7569" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/7569&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;7569번: 토마토첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100,www.acmicpc.net&lt;/p&gt;
&lt;p&gt;전의 토마토와 완전히 똑같은 방식이다.&lt;/p&gt;
&lt;p&gt;다만, 이번에는 z축이 추가됬다.&lt;/p&gt;
&lt;p&gt;i,j,k로 인덱싱하고,&lt;/p&gt;
&lt;p&gt;움직이는방향을 [[-1,0,0],[0,-1,0],[0,0,-1],[1,0,0],[0,1,0],[0,0,1]]&lt;/p&gt;
&lt;p&gt;6방향으로 bfs를 진행하면 된다.&lt;/p&gt;
&lt;p&gt;진행할때마다 얼마나 날짜가 지났는지까지 세주면 완벽&lt;/p&gt;
&lt;p&gt;마지막에, 하나씩탐색하다가 0이 있으면 -1출력하고 종료&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysinput=sys.stdin.readlinefrom collections import deque
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;moves=[[-1,0,0],[0,-1,0],[0,0,-1],[1,0,0],[0,1,0],[0,0,1]]def bfs(q): day=0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; while q: i,j,k,v=q.popleft() for move in moves:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; a,b,c=move ti=a+i tj=b+j tk=c+k
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if 0&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;=ti&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;tk&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;m&lt;/span&gt; &lt;span class="na"&gt;and&lt;/span&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;ti&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tk&lt;/span&gt;&lt;span class="err"&gt;]==&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;q&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;([&lt;/span&gt;&lt;span class="na"&gt;ti&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;tk&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;v&lt;/span&gt;&lt;span class="err"&gt;+&lt;/span&gt;&lt;span class="na"&gt;1&lt;/span&gt;&lt;span class="err"&gt;])&lt;/span&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;ti&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tj&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tk&lt;/span&gt;&lt;span class="err"&gt;]=&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;-1&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;i&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;h&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;j&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;k&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;m&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;if&lt;/span&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;j&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;k&lt;/span&gt;&lt;span class="err"&gt;]==&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;-1&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="na"&gt;return&lt;/span&gt; &lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;v&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;m&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;h&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;map(int,input().split())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;[[list(input().strip().split())for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)]&lt;/span&gt;&lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;h&lt;/span&gt;&lt;span class="err"&gt;)]&lt;/span&gt;&lt;span class="na"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;deque()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;0for&lt;/span&gt; &lt;span class="na"&gt;i&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;h&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;j&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;k&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;m&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;if&lt;/span&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;j&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;k&lt;/span&gt;&lt;span class="err"&gt;]==&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;1&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;q&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;((&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;j&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;k&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;j&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;k&lt;/span&gt;&lt;span class="err"&gt;]=&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;-1&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt; &lt;span class="na"&gt;bfs&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;q&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 2178 미로 탐색</title><link>https://log.j2234.cc/posts/2022-tistory/075-%EB%B0%B1%EC%A4%80-2178-%EB%AF%B8%EB%A1%9C-%ED%83%90%EC%83%89/</link><pubDate>Tue, 19 Apr 2022 20:32:12 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/075-%EB%B0%B1%EC%A4%80-2178-%EB%AF%B8%EB%A1%9C-%ED%83%90%EC%83%89/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2178" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2178&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2178번: 미로 탐색첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;그냥 전형적인 bfs문제&lt;/p&gt;
&lt;p&gt;bfs를 진행하면서 level까지 업데이트하고,&lt;/p&gt;
&lt;p&gt;n-1,m-1에 도달하면, level+1을 출력&lt;/p&gt;
&lt;p&gt;##코드##&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;dequeimport&lt;/span&gt; &lt;span class="n"&gt;sysinput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readlinedef&lt;/span&gt; &lt;span class="n"&gt;bfs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;0&amp;#39;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;deque&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;popleft&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;move&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;moves&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;move&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tmp_i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;tmp_j&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="n"&gt;tmp_i&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="n"&gt;tmp_j&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tmp_i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;tmp_j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# print(tmp_i,tmp_j,v)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;tmp_i&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;tmp_j&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;tmp_i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;tmp_j&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tmp_i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;tmp_j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;0&amp;#39;&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="n"&gt;moves&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;bfs&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 2667 단지번호붙이기</title><link>https://log.j2234.cc/posts/2022-tistory/074-%EB%B0%B1%EC%A4%80-2667-%EB%8B%A8%EC%A7%80%EB%B2%88%ED%98%B8%EB%B6%99%EC%9D%B4%EA%B8%B0/</link><pubDate>Tue, 19 Apr 2022 13:07:47 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/074-%EB%B0%B1%EC%A4%80-2667-%EB%8B%A8%EC%A7%80%EB%B2%88%ED%98%B8%EB%B6%99%EC%9D%B4%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2667" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2667&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2667번: 단지번호붙이기&amp;lt;그림 1&amp;gt;과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여www.acmicpc.net&lt;/p&gt;
&lt;p&gt;흔한 탐색문제&lt;/p&gt;
&lt;p&gt;bfs로풀음&lt;/p&gt;
&lt;p&gt;2차원 배열 apartment를 돌면서,&lt;/p&gt;
&lt;p&gt;만약 apartment[i][j[]가 &amp;lsquo;1&amp;rsquo;인 경우에 bfs를 실행한다.&lt;/p&gt;
&lt;p&gt;여기서 한번에 몇집이나 탐색하는지만 세어주면 된다.&lt;/p&gt;
&lt;p&gt;##코드##&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysinput=sys.stdin.readlinefrom collections import deque#bfs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;moves=[[-1,0],[1,0],[0,-1],[0,1]]def bfs(i,j): s=deque() s.append([i,j])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; apartment[i][j]=0 cnt=1 while s: i,j=s.popleft()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for move in moves: a,b=move tmp_i,tmp_j=i+a,j+b
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; # print(tmp_i,tmp_j)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if (0&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;=tmp_i&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;and&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="na"&gt;tmp_j&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;and&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;apartment&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;tmp_i&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tmp_j&lt;/span&gt;&lt;span class="err"&gt;]==&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;1&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;([&lt;/span&gt;&lt;span class="na"&gt;tmp_i&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;tmp_j&lt;/span&gt;&lt;span class="err"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;apartment&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;tmp_i&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;tmp_j&lt;/span&gt;&lt;span class="err"&gt;]=&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt; &lt;span class="na"&gt;cnt&lt;/span&gt;&lt;span class="err"&gt;+=&lt;/span&gt;&lt;span class="na"&gt;1&lt;/span&gt; &lt;span class="na"&gt;return&lt;/span&gt; &lt;span class="na"&gt;cnt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;int(input())apartment=[list(input())for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)]&lt;/span&gt;&lt;span class="na"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;i&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;j&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;if&lt;/span&gt; &lt;span class="na"&gt;apartment&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;j&lt;/span&gt;&lt;span class="err"&gt;]!=&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;l&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;bfs&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;j&lt;/span&gt;&lt;span class="err"&gt;))&lt;/span&gt;&lt;span class="na"&gt;l&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sort&lt;/span&gt;&lt;span class="err"&gt;()&lt;/span&gt;&lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;len&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;l&lt;/span&gt;&lt;span class="err"&gt;))&lt;/span&gt;&lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;ll&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;l:&lt;/span&gt; &lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;ll&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 13023 ABCDE</title><link>https://log.j2234.cc/posts/2022-tistory/073-%EB%B0%B1%EC%A4%80-13023-abcde/</link><pubDate>Mon, 18 Apr 2022 13:01:34 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/073-%EB%B0%B1%EC%A4%80-13023-abcde/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/13023" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/13023&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;13023번: ABCDE문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음 읽었을 때는 뭔 개소린진 모르겠었는데, 검색해보니 아주 간단한 문제였다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A는 B와 친구다.&lt;/li&gt;
&lt;li&gt;B는 C와 친구다.&lt;/li&gt;
&lt;li&gt;C는 D와 친구다.&lt;/li&gt;
&lt;li&gt;D는 E와 친구다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;를 만족하는지 찾는다는 뜻은,&lt;/p&gt;
&lt;p&gt;a부터 시작해서 깊이가 4 (총 5개) 인 배열이 있는지 묻는 것이다.&lt;/p&gt;
&lt;p&gt;먼져, input을 받아 그래프를 만든다. (친구비를 내지 않는이상 쌍방향그래프일거다)&lt;/p&gt;
&lt;p&gt;친구관계가없는 찐따는 당연히 포함되지 않을 것이므로,&lt;/p&gt;
&lt;p&gt;친구관계가 하나라도 존재하는 정점을 모두 돌면서, 깊이가 4인 배열을 찾는다.&lt;/p&gt;</description></item><item><title>백준 11724 연결 요소의 개수</title><link>https://log.j2234.cc/posts/2022-tistory/072-%EB%B0%B1%EC%A4%80-11724-%EC%97%B0%EA%B2%B0-%EC%9A%94%EC%86%8C%EC%9D%98-%EA%B0%9C%EC%88%98/</link><pubDate>Sun, 17 Apr 2022 19:40:30 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/072-%EB%B0%B1%EC%A4%80-11724-%EC%97%B0%EA%B2%B0-%EC%9A%94%EC%86%8C%EC%9D%98-%EA%B0%9C%EC%88%98/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11724" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11724&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11724번: 연결 요소의 개수첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주www.acmicpc.net&lt;/p&gt;
&lt;p&gt;bfs와 dfs중 하나를 선택해서 풀면 됨&lt;/p&gt;
&lt;p&gt;먼져 visited를 만든다.&lt;/p&gt;
&lt;p&gt;이후 모든 정점에 대하여 방문을 하지 않은 노드에서 탐색을 수행한다. 이때마다 1씩 정답을&lt;/p&gt;
&lt;p&gt;증가시킨다.&lt;/p&gt;
&lt;p&gt;주의할 점&lt;/p&gt;</description></item><item><title>백준 11723 집합</title><link>https://log.j2234.cc/posts/2022-tistory/071-%EB%B0%B1%EC%A4%80-11723-%EC%A7%91%ED%95%A9/</link><pubDate>Sat, 16 Apr 2022 14:08:16 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/071-%EB%B0%B1%EC%A4%80-11723-%EC%A7%91%ED%95%A9/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11723" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11723&lt;/a&gt;`&lt;/p&gt;
&lt;p&gt;11723번: 집합첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;와 이거때문에 하루종일 고민했다.&lt;/p&gt;
&lt;p&gt;간단하게 set을 이용해서 풀수도 있다. 다만 비트마스킹을 체험해보고싶었다.&lt;/p&gt;
&lt;p&gt;우리는 s를 집합이아니라, 2비트 숫자로 이용해서 풀거다.&lt;/p&gt;
&lt;p&gt;x라는 숫자가 집합에 있다는것은 , s의 x번째가 1이라는 것이다. 당연히 없으면 0&lt;/p&gt;
&lt;p&gt;만일 {1,3}이라면&lt;/p&gt;
&lt;p&gt;s=0b1010 #0없음, 1있음, 2없음, 3있음&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;그리고, 문제의조건에 따라, 0은쓸일이없다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;명령&lt;/p&gt;
&lt;p&gt;**add x:**&lt;strong&gt;집합에 x를 추가한다.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>백준 1182 부분수열의 합</title><link>https://log.j2234.cc/posts/2022-tistory/070-%EB%B0%B1%EC%A4%80-1182-%EB%B6%80%EB%B6%84%EC%88%98%EC%97%B4%EC%9D%98-%ED%95%A9/</link><pubDate>Fri, 15 Apr 2022 14:35:59 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/070-%EB%B0%B1%EC%A4%80-1182-%EB%B6%80%EB%B6%84%EC%88%98%EC%97%B4%EC%9D%98-%ED%95%A9/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1182" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1182&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1182번: 부분수열의 합첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;풀이 1:&lt;/p&gt;
&lt;p&gt;dfs로 모든 수열을 구한다음, 0이되는경우를 센다&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;n,s=map(int,input().split())nums=[* map(int,input().split())]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;visit=[False for _ in range(n)]cnt=0tmp=[]def dfs(start=0): global cnt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if tmp: if sum(tmp)==s: cnt+=1 if len(tmp)==n:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; return for i in range(start,len(nums)): if not visit[i]:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; tmp.append(nums[i]) dfs(i+1) tmp.pop()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; visitdfs()print(cnt)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;풀이2:&lt;/p&gt;</description></item><item><title>백준 2529 부등호</title><link>https://log.j2234.cc/posts/2022-tistory/069-%EB%B0%B1%EC%A4%80-2529-%EB%B6%80%EB%93%B1%ED%98%B8/</link><pubDate>Wed, 13 Apr 2022 22:25:26 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/069-%EB%B0%B1%EC%A4%80-2529-%EB%B6%80%EB%93%B1%ED%98%B8/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2529" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2529&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2529번: 부등호여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력www.acmicpc.net&lt;/p&gt;
&lt;p&gt;글작성하다가날라가서 빡친다.&lt;/p&gt;
&lt;p&gt;문자열로만비교함&lt;/p&gt;
&lt;p&gt;배열을 dfs로 확장하다가,&lt;/p&gt;
&lt;p&gt;배열이 2 이상이면:&lt;/p&gt;
&lt;p&gt;배열의[-1][-2] 가 부등호[배열수-2)와 같지 않으면 가지친다.&lt;/p&gt;
&lt;p&gt;k+1까지 살아남은 배열을 모두 리스트에 넣고,&lt;/p&gt;
&lt;p&gt;가장작은값은 [0], 가장큰값은[-1]이 된다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sysinput=sys.stdin.readlinek=int(input())sign=input().split()ans_list=[]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;str_range=[str(x) for x in range(10)]def dfs(tmp): global min_ans
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; global max_ans if len(tmp)&amp;gt;1:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if sign[len(tmp)-2]==&amp;#39;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&amp;#39; and tmp[-2] &amp;gt; tmp[-1]: return
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if sign[len(tmp)-2]==&amp;#39;&amp;gt;&amp;#39; and tmp[-2] &lt;span class="p"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nt"&gt;tmp&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;-1&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;return&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;if&lt;/span&gt; &lt;span class="na"&gt;len&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;tmp&lt;/span&gt;&lt;span class="err"&gt;)==&lt;/span&gt;&lt;span class="na"&gt;k&lt;/span&gt;&lt;span class="err"&gt;+&lt;/span&gt;&lt;span class="na"&gt;1:&lt;/span&gt; &lt;span class="na"&gt;ans_list&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;(&amp;#39;&amp;#39;.&lt;/span&gt;&lt;span class="na"&gt;join&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;tmp&lt;/span&gt;&lt;span class="err"&gt;))&lt;/span&gt; &lt;span class="na"&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;i&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;str_range:&lt;/span&gt; &lt;span class="na"&gt;if&lt;/span&gt; &lt;span class="na"&gt;i&lt;/span&gt; &lt;span class="na"&gt;not&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;tmp:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;tmp&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="na"&gt;dfs&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;tmp&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="na"&gt;tmp&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;pop&lt;/span&gt;&lt;span class="err"&gt;()&lt;/span&gt; &lt;span class="na"&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;dfs&lt;/span&gt;&lt;span class="err"&gt;([])&lt;/span&gt;&lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;ans_list&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;-1&lt;/span&gt;&lt;span class="err"&gt;],&lt;/span&gt;&lt;span class="na"&gt;ans_list&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;0&lt;/span&gt;&lt;span class="err"&gt;],&lt;/span&gt;&lt;span class="na"&gt;sep&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 14889 스타트와 링크</title><link>https://log.j2234.cc/posts/2022-tistory/068-%EB%B0%B1%EC%A4%80-14889-%EC%8A%A4%ED%83%80%ED%8A%B8%EC%99%80-%EB%A7%81%ED%81%AC/</link><pubDate>Wed, 13 Apr 2022 00:37:37 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/068-%EB%B0%B1%EC%A4%80-14889-%EC%8A%A4%ED%83%80%ED%8A%B8%EC%99%80-%EB%A7%81%ED%81%AC/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/14889" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/14889&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;14889번: 스타트와 링크예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;맨처음에 itertools로풀었다.&lt;/p&gt;
&lt;p&gt;굳이 모든 콤비에 대하여 다 구할 필요 없이,&lt;/p&gt;
&lt;p&gt;콤비의 반만 계산하면 나머지는 스타트와 링크가 바뀐 경우이므로,&lt;/p&gt;
&lt;p&gt;반만 계산한다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;from itertools import combinationsimport sysinput=sys.stdin.readline
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;n=int(input())arr=[]for _ in range(n):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; arr.append([*map(int,input().split())])all_people=[x for x in range(n)]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;start_teams=list(combinations(all_people,n//2))
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;start_teams=start_teams[:len(start_teams)//2]all_people=set(all_people)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;answer=1e+10for start in start_teams: link=list(set(start)^all_people)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; start_score=0 link_score=0 for i in range(n//2):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for j in range(n//2): start_score+=arr[start[i]][start[j]]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; link_score+=arr[link[i]][link[j]] tmp=abs(start_score-link_score)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if tmp&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;answer:&lt;/span&gt; &lt;span class="na"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;tmpprint(answer)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;del&gt;문제는 dfs로 풀 때 정답코드를 변수명만 다르게해서 배껴도 문제가 생긴다는 점이다.&lt;/del&gt;&lt;/p&gt;</description></item><item><title>백준 14051 퇴사</title><link>https://log.j2234.cc/posts/2022-tistory/067-%EB%B0%B1%EC%A4%80-14051-%ED%87%B4%EC%82%AC/</link><pubDate>Tue, 12 Apr 2022 17:45:12 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/067-%EB%B0%B1%EC%A4%80-14051-%ED%87%B4%EC%82%AC/</guid><description>&lt;p&gt;&lt;a href="https://fuckingcomputer.tistory.com/manage/newpost/?type=post&amp;amp;returnURL=%2Fmanage%2Fposts%2F" target="_blank" rel="noreferrer"&gt;https://fuckingcomputer.tistory.com/manage/newpost/?type=post&amp;amp;returnURL=%2Fmanage%2Fposts%2F&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;TISTORY나를 표현하는 블로그를 만들어보세요.www.tistory.com&lt;/p&gt;
&lt;p&gt;실버2인데 개어려움&lt;/p&gt;
&lt;p&gt;기본적으로, 마지막날+1이어도 허용이 되므로, 마지막날+1을 만드는 아이디어가 중요하다.&lt;/p&gt;
&lt;p&gt;다시풀라고해도 풀수있을지모르겠다.&lt;/p&gt;
&lt;p&gt;2가지방법으로 풀 수 있다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;dfs로, 0부터 시작해서 포함안하는 경우와,&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;만일 포함가능하다면, 포함하는경우까지 생각해서 dfs를진행하고,&lt;/p&gt;
&lt;p&gt;마지막날+1까지 탐색했을때, 모든 경우의 수를 비교해 최대인 answer을 찾는다.&lt;/p&gt;
&lt;p&gt;##dfs코드##&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;dfs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;dfs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 포함안하고 그냥 넘어가는 경우 if index+arr[index][0]&amp;lt;=n:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;dfs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;#포함하면 그다음가능한날짜##dfs 사용&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="c1"&gt;#정답값for _ in range(n):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())])&lt;/span&gt;&lt;span class="n"&gt;dfs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;2.Dp&lt;/p&gt;
&lt;p&gt;dp를 처음부터 해결해나간다는 고정관념을 버려야한다.&lt;/p&gt;
&lt;p&gt;앞서와 똑같은 이유로,마지막날을 해결하기 위해서 n+1의 dp 배열을 만든다.&lt;/p&gt;</description></item><item><title>백준 1759 암호 만들기</title><link>https://log.j2234.cc/posts/2022-tistory/066-%EB%B0%B1%EC%A4%80-1759-%EC%95%94%ED%98%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><pubDate>Mon, 11 Apr 2022 17:33:22 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/066-%EB%B0%B1%EC%A4%80-1759-%EC%95%94%ED%98%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1759" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1759&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1759번: 암호 만들기첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;알고리즘생각만했는데 알고보니 브루트포스였다.&lt;/p&gt;
&lt;p&gt;먼져, 입력으로 문자열을 정렬해서 받고, 모음의 갯수를 비교할 set(aeiou)를 만들어준다.&lt;/p&gt;
&lt;p&gt;dfs를 통하여 모든 조합을 구하고, 만일 조합과 aeiou의 set이 1 이상이고 l-1 미만인 경우만&lt;/p&gt;
&lt;p&gt;(모음이 1개 이상이고, 모음이 아닌게 2개 이상일 경우):&lt;/p&gt;
&lt;p&gt;조합을 출력한다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;aeiou&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;aeiou&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;alpha&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;dfs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;set_password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;set_password&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;aeiou&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;alpha&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alpha&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;dfs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;returndfs&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;##itertools사용코드##&lt;/p&gt;</description></item><item><title>백준 6603 로또</title><link>https://log.j2234.cc/posts/2022-tistory/065-%EB%B0%B1%EC%A4%80-6603-%EB%A1%9C%EB%98%90/</link><pubDate>Mon, 11 Apr 2022 13:49:41 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/065-%EB%B0%B1%EC%A4%80-6603-%EB%A1%9C%EB%98%90/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/6603" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/6603&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;6603번: 로또입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 &amp;lt; k &amp;lt; 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로www.acmicpc.net&lt;/p&gt;
&lt;p&gt;그냥 구현하는문제인듯&lt;/p&gt;
&lt;p&gt;처음에한 뻘짓&lt;/p&gt;
&lt;p&gt;로또번호를 먼져 구하고, 그 다음에 모든경우의수 구하기&lt;/p&gt;
&lt;p&gt;머리가 나쁘면 손이고생함&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;lotto_numbers=[]def make_lotto_numbers(start=0): if len(lotto_numbers)==k:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; make_lotto(lotto_numbers) return for i in range(start,k):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if t_case[i] not in lotto_numbers:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; lotto_numbers.append(t_case[i])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; make_lotto_numbers(start+1) lotto_numbers.pop() return
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;lotto=[]def make_lotto(lotto_numbers,start=0): if len (lotto)==6:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(* lotto) return for i in range(start,k):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if lotto_numbers[i] not in lotto:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; lotto.append(lotto_numbers[i])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; make_lotto(lotto_numbers,i+1) lotto.pop() return
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;while True: tmp=[*map(int,input().split())] if tmp[0]==0:exit()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; k,t_case=tmp[0],tmp[1:] make_lotto_numbers() print()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;간단한 풀이&lt;/p&gt;</description></item><item><title>백준 10971 외판원 순회 2</title><link>https://log.j2234.cc/posts/2022-tistory/064-%EB%B0%B1%EC%A4%80-10971-%EC%99%B8%ED%8C%90%EC%9B%90-%EC%88%9C%ED%9A%8C-2/</link><pubDate>Mon, 11 Apr 2022 11:44:57 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/064-%EB%B0%B1%EC%A4%80-10971-%EC%99%B8%ED%8C%90%EC%9B%90-%EC%88%9C%ED%9A%8C-2/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/10971" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/10971&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;10971번: 외판원 순회 2첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 jwww.acmicpc.net&lt;/p&gt;
&lt;p&gt;몇문제안풀어봐서그런가 dfs개념이 너무 어려웠다.&lt;/p&gt;
&lt;p&gt;먼져, 입력을 받는다.&lt;/p&gt;
&lt;p&gt;dfs함수를 정의하는데, 이때 {&lt;/p&gt;
&lt;p&gt;아직 방문x &amp;amp; 현재까지의 값이 answer보다 작음&amp;amp; arr[가장최근도시][갈도시]가 0이 아닌 경우에만&lt;/p&gt;
&lt;p&gt;dfs를 수행하고, 아니면 무시한다.}&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dfstmp=[]def dfs(start,next,v=0): #시작도시, 최근방문도시, 지금까지의 value
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; global answer #계속 업데이트할 정답값 if len (dfstmp)==n:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if arr[next][start]!=0: #마지막도시에서 첫도시로 못가는경우
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; answer=min(answer,v+arr[next][start]) for i in range(n):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if i not in dfstmp and arr[next][i]!=0 and v&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;answer:&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt; &lt;span class="na"&gt;방문x&lt;/span&gt; &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; &lt;span class="na"&gt;갈수있는길&lt;/span&gt; &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; &lt;span class="na"&gt;정답보다&lt;/span&gt; &lt;span class="na"&gt;현재까지의v가&lt;/span&gt; &lt;span class="na"&gt;작을때만&lt;/span&gt; &lt;span class="na"&gt;수행&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;dfstmp&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="na"&gt;dfs&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;start&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;v&lt;/span&gt;&lt;span class="err"&gt;+&lt;/span&gt;&lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;next&lt;/span&gt;&lt;span class="err"&gt;][&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;dfstmp&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;pop&lt;/span&gt;&lt;span class="err"&gt;()&lt;/span&gt; &lt;span class="na"&gt;return&lt;/span&gt; &lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;int(input())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;[[*map(int,input().split())]for&lt;/span&gt; &lt;span class="na"&gt;_&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)]&lt;/span&gt;&lt;span class="na"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;1e+10&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="na"&gt;초깃값&lt;/span&gt; &lt;span class="na"&gt;큰&lt;/span&gt; &lt;span class="na"&gt;수&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;for&lt;/span&gt; &lt;span class="na"&gt;i&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="na"&gt;:&lt;/span&gt; &lt;span class="na"&gt;dfstmp&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="na"&gt;각각의&lt;/span&gt; &lt;span class="na"&gt;도시를&lt;/span&gt; &lt;span class="na"&gt;시작으로&lt;/span&gt; &lt;span class="na"&gt;dfs수행&lt;/span&gt; &lt;span class="na"&gt;dfs&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;dfstmp&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;pop&lt;/span&gt;&lt;span class="err"&gt;()&lt;/span&gt;&lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;answer&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 7576 토마토</title><link>https://log.j2234.cc/posts/2022-tistory/063-%EB%B0%B1%EC%A4%80-7576-%ED%86%A0%EB%A7%88%ED%86%A0/</link><pubDate>Sat, 09 Apr 2022 20:08:52 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/063-%EB%B0%B1%EC%A4%80-7576-%ED%86%A0%EB%A7%88%ED%86%A0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/7576" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/7576&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;7576번: 토마토첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토www.acmicpc.net&lt;/p&gt;
&lt;p&gt;거의 처음으로풀어본 BFS문제라 좀 시행착오를 많이 겪었다.&lt;/p&gt;
&lt;p&gt;하다보면 나아지겠지&lt;/p&gt;
&lt;p&gt;먼져, 주어진 배열을 돌면서 stack에 원소가 1인 자릿값들을 넣는것부터 시작한다.&lt;/p&gt;
&lt;p&gt;토마토는 총 4방향으로 익기 시작하므로, moves=[[0,1],[0,-1],[1,0],[-1,0]] 를 선언해준다.&lt;/p&gt;
&lt;p&gt;이후 각각 BFS를 돌면서, 만일 원소가 -1이거나 1인 경우(이미 익은 경우) 를 제외하고, 계속 확장시킨다.&lt;/p&gt;</description></item><item><title>백준 1003 피보나치 함수</title><link>https://log.j2234.cc/posts/2022-tistory/062-%EB%B0%B1%EC%A4%80-1003-%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98-%ED%95%A8%EC%88%98/</link><pubDate>Fri, 08 Apr 2022 20:25:47 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/062-%EB%B0%B1%EC%A4%80-1003-%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98-%ED%95%A8%EC%88%98/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1003" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1003&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1003번: 피보나치 함수각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;dp감찾을려고 풀어본 문제&lt;/p&gt;
&lt;p&gt;공책에 한번 써보면 쉽게풀림&lt;/p&gt;
&lt;p&gt;2차원 배열로 품&lt;/p&gt;
&lt;p&gt;dp[n]=[dp[n-1][0]+dp[n-2][0],dp[n-1][1]+dp[n-2][1]]&lt;/p&gt;
&lt;p&gt;##코드&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; dp=[[0,0]for _ in range(41)]dp[0],dp[1]=[1,0],[0,1]for i in range(2,41):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; dp[i]=[dp[i-1][0]+dp[i-2][0],dp[i-1][1]+dp[i-2][1]] 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;for _ in range(int(input())): print(* dp[int(input())])&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 10819 차이를 최대로</title><link>https://log.j2234.cc/posts/2022-tistory/061-%EB%B0%B1%EC%A4%80-10819-%EC%B0%A8%EC%9D%B4%EB%A5%BC-%EC%B5%9C%EB%8C%80%EB%A1%9C/</link><pubDate>Fri, 08 Apr 2022 17:16:00 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/061-%EB%B0%B1%EC%A4%80-10819-%EC%B0%A8%EC%9D%B4%EB%A5%BC-%EC%B5%9C%EB%8C%80%EB%A1%9C/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/10819" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/10819&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;10819번: 차이를 최대로첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;오우야&lt;/p&gt;
&lt;p&gt;그냥 노가다문제이다.&lt;/p&gt;
&lt;p&gt;먼져, 배열에 들어있는 수로 만들수 있는, 길이가 n인 모든 배열을 구한다.&lt;/p&gt;
&lt;p&gt;그모든 배열에 대해서 |A[0] - A[1]| + |A[1] - A[2]| + &amp;hellip; + |A[N-2] - A[N-1]|를 구한다.&lt;/p&gt;
&lt;p&gt;최댓값을 찾는다.&lt;/p&gt;
&lt;p&gt;근데 거의 처음구현해봐서 좀 빡셌다.&lt;/p&gt;
&lt;p&gt;근데 노가다라서 어렵지는 않았다.&lt;/p&gt;</description></item><item><title>백준 10972 다음 순열</title><link>https://log.j2234.cc/posts/2022-tistory/060-%EB%B0%B1%EC%A4%80-10972-%EB%8B%A4%EC%9D%8C-%EC%88%9C%EC%97%B4/</link><pubDate>Fri, 08 Apr 2022 15:56:12 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/060-%EB%B0%B1%EC%A4%80-10972-%EB%8B%A4%EC%9D%8C-%EC%88%9C%EC%97%B4/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/10972" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/10972&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;10972번: 다음 순열첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;실버3이지만 최근에 푼 문제중에 가장 어려웠다.&lt;/p&gt;
&lt;p&gt;c++에서는 이를 함수하나로 쉽게 구할 수 있다한다.&lt;/p&gt;
&lt;p&gt;도저희 모르겠어서 구글링했다.&lt;/p&gt;
&lt;p&gt;알고리즘은 이렇다.&lt;/p&gt;
&lt;p&gt;수열의 뒤에서부터, i &amp;gt;i-1인 경우를 찾는다.&lt;/p&gt;
&lt;p&gt;i-1을 x, i-2를 y라 정하자&lt;/p&gt;
&lt;p&gt;찾은 후, 다시 뒤에서부터 x보다 큰 값을 찾아 swap해준다.&lt;/p&gt;
&lt;p&gt;이후, y전까지의 배열은 그대로 놔두고, [:i]&lt;/p&gt;
&lt;p&gt;y부터 끝까지의 배열을 정렬한다. sorted([i:])&lt;/p&gt;
&lt;p&gt;이 둘을 합치면 된다.&lt;/p&gt;</description></item><item><title>백준 2812 크게 만들기</title><link>https://log.j2234.cc/posts/2022-tistory/059-%EB%B0%B1%EC%A4%80-2812-%ED%81%AC%EA%B2%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><pubDate>Wed, 06 Apr 2022 19:37:02 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/059-%EB%B0%B1%EC%A4%80-2812-%ED%81%AC%EA%B2%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2812" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2812&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2812번: 크게 만들기N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;스택 알고리즘 강의를 들었던게 도움이 되었다.&lt;/p&gt;
&lt;p&gt;내 혼자힘으로 푼 몇안되는 골드문제중 1&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;숫자를 문자 리스트로받아 하나씩 떨어뜨려놓는다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;2.반복문을 돌면서, 앞에부터 1개씩 스택에 추가한다.&lt;/p&gt;
&lt;p&gt;!!! 만일 추가할 숫자가 스택의 마지막(-1)보다 작다면, 스택마지막이 추가할 숫자보다 클때까지, 혹은 스택이 없을때까지, 혹은 k가 0일때까지 pop()해준다.&lt;/p&gt;
&lt;p&gt;총 k개까지 제거할 수 있으므로, pop할때마다 k를 1씩 빼주고 0이 되면 종료한다.!!!&lt;/p&gt;</description></item><item><title>백준 15666 N과 M (12)</title><link>https://log.j2234.cc/posts/2022-tistory/058-%EB%B0%B1%EC%A4%80-15666-n%EA%B3%BC-m-12/</link><pubDate>Wed, 06 Apr 2022 12:17:38 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/058-%EB%B0%B1%EC%A4%80-15666-n%EA%B3%BC-m-12/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/15666" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/15666&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;15666번: N과 M (12)한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해www.acmicpc.net&lt;/p&gt;
&lt;p&gt;비슷한 문제가 너무 많아서 이것만 풀었다.&lt;/p&gt;
&lt;p&gt;지금 깨달았는데, 이것도 dfs문제인거 같다.&lt;/p&gt;
&lt;p&gt;풀이는따로안적어야지&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;answer=[]def mn12(start=0): if len(answer)==m: print(* answer)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; return for i in range(start,len(n_list)):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; answer.append(n_list[i]) mn12(i) answer.pop()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;n,m=map(int,input().split())
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;n_list=sorted(list(set([* map(int,input().split())])))mn12()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 15652 N과 M (4)</title><link>https://log.j2234.cc/posts/2022-tistory/057-%EB%B0%B1%EC%A4%80-15652-n%EA%B3%BC-m-4/</link><pubDate>Wed, 06 Apr 2022 12:05:03 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/057-%EB%B0%B1%EC%A4%80-15652-n%EA%B3%BC-m-4/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/15652" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/15652&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;15652번: N과 M (4)한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해www.acmicpc.net&lt;/p&gt;
&lt;p&gt;설명할게있나?&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;answer=[]def nm4(start=1): if len(answer)==m: print (*answer)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; return for i in range(start,n+1): answer.append(i)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; nm4(i) answer.pop()n,m=map(int,input().split())nm4()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 6064 카잉 달력</title><link>https://log.j2234.cc/posts/2022-tistory/056-%EB%B0%B1%EC%A4%80-6064-%EC%B9%B4%EC%9E%89-%EB%8B%AC%EB%A0%A5/</link><pubDate>Tue, 05 Apr 2022 13:51:34 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/056-%EB%B0%B1%EC%A4%80-6064-%EC%B9%B4%EC%9E%89-%EB%8B%AC%EB%A0%A5/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/6064" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/6064&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;6064번: 카잉 달력입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;살짝 어려웠다.&lt;/p&gt;
&lt;p&gt;x의 값을 고정시켜놓는다는 아이디어가 중요하다.&lt;/p&gt;
&lt;p&gt;x는 m%x이므로, x에 아무리 m을 더해도 x값은 같다.&lt;/p&gt;
&lt;p&gt;x에 m을 계속 더하면서, x%n이 y%n(0일경우도대비)이 되는 x값을 구한다.&lt;/p&gt;
&lt;p&gt;만일 x가 m*n보다 커진다면, 이는 무한루프이므로 -1을 출력한다.&lt;/p&gt;
&lt;p&gt;##처음코드##&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;for _ in range(int(input())): m,n,x,y=map(int,input().split()) pivot=x%m
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if pivot==0:pivot=m tmp=pivot while True: a=tmp%n
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if not a: a=n if a==y: print(tmp) break
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; tmp+=m if tmp&amp;gt;(m*n): print(-1) break&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;##함수사용 깔끔 코드##&lt;/p&gt;</description></item><item><title>백준 1260 DFS와BFS</title><link>https://log.j2234.cc/posts/2022-tistory/055-%EB%B0%B1%EC%A4%80-1260-dfs%EC%99%80bfs/</link><pubDate>Mon, 04 Apr 2022 14:41:07 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/055-%EB%B0%B1%EC%A4%80-1260-dfs%EC%99%80bfs/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1260" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1260&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1260번: DFS와 BFS첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사www.acmicpc.net&lt;/p&gt;
&lt;p&gt;문제 자체는 아무런트릭이 없지만 그래프 탐색 알고리즘을 먼져 공부해야 풀 수 있는 문제&lt;/p&gt;
&lt;p&gt;깊이 우선 탐색(BFS -Depth-First Search)&lt;/p&gt;
&lt;p&gt;은 말 그대로 깊이를 우선하는 탐색이다.&lt;/p&gt;
&lt;p&gt;재귀함수를 이용하여 구현하며, 가장 깊은곳까지 탐색한 후 더이상의 노드가 없을 때,&lt;/p&gt;</description></item><item><title>백준 2565 전깃줄</title><link>https://log.j2234.cc/posts/2022-tistory/054-%EB%B0%B1%EC%A4%80-2565-%EC%A0%84%EA%B9%83%EC%A4%84/</link><pubDate>Mon, 04 Apr 2022 12:12:42 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/054-%EB%B0%B1%EC%A4%80-2565-%EC%A0%84%EA%B9%83%EC%A4%84/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2565" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2565&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2565번: 전깃줄첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는www.acmicpc.net&lt;/p&gt;
&lt;p&gt;예전에 비슷한 문제를 읽어봐서 쉽게 풀 수 있었다.&lt;/p&gt;
&lt;p&gt;문제는 헷갈리지만, 이를 요약하면,&lt;/p&gt;
&lt;p&gt;&amp;lsquo;가장 긴 부분 증가수열을 A를 찾아라&amp;rsquo; 로 요약할 수 있다.&lt;/p&gt;
&lt;p&gt;이후 전체 전깃줄에서 A에 속하지 않은 전깃줄을 모두 잘라내면 되므로&lt;/p&gt;
&lt;p&gt;전체길이-가장 긴 부분증가수열의 길이 가 답이다&lt;/p&gt;
&lt;p&gt;%%코드%%&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;n=int(input())elect=sorted([list(map(int,input().split()))for _ in range(n)])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dp=[1 for _ in range(n)]for i in range(1,n): for j in range(i):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if elect[i][1]&amp;gt;elect[j][1]: tmp=dp[j]+1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if tmp&amp;gt;dp[i]: dp[i]=tmpmax_dp=max(dp)print(n-max_dp)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;모르는 알고리즘이면 유추하느라 고생깨나 했을거같다.&lt;/p&gt;</description></item><item><title>백준 11170 0의 개수</title><link>https://log.j2234.cc/posts/2022-tistory/053-%EB%B0%B1%EC%A4%80-11170-0%EC%9D%98-%EA%B0%9C%EC%88%98/</link><pubDate>Sun, 03 Apr 2022 16:06:04 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/053-%EB%B0%B1%EC%A4%80-11170-0%EC%9D%98-%EA%B0%9C%EC%88%98/</guid><description>&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;t=int(input())for _ in range(t): answer=0 n,m=map(int ,input().split())
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for i in range(n,m+1): for j in str(i): if j==&amp;#39;0&amp;#39;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; answer+=1 print(answer)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11170" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11170&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11170번: 0의 개수N부터 M까지의 수들을 종이에 적었을 때 종이에 적힌 0들을 세는 프로그램을 작성하라. 예를 들어, N, M이 각각 0, 10일 때 0을 세면 0에 하나, 10에 하나가 있으므로 답은 2이다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;브루트포스&lt;/p&gt;
&lt;p&gt;걍 0세서&lt;/p&gt;
&lt;p&gt;구하면됨&lt;/p&gt;
&lt;p&gt;끝&lt;/p&gt;
&lt;p&gt;##코드##&lt;/p&gt;</description></item><item><title>백준 1748 수 이어쓰기 1</title><link>https://log.j2234.cc/posts/2022-tistory/052-%EB%B0%B1%EC%A4%80-1748-%EC%88%98-%EC%9D%B4%EC%96%B4%EC%93%B0%EA%B8%B0-1/</link><pubDate>Sat, 02 Apr 2022 20:23:30 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/052-%EB%B0%B1%EC%A4%80-1748-%EC%88%98-%EC%9D%B4%EC%96%B4%EC%93%B0%EA%B8%B0-1/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1748" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1748&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1748번: 수 이어 쓰기 1첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;웬진모르겠지만 브루트포스에 섞여있어서,&lt;/p&gt;
&lt;p&gt;1부터 n까지 모든 수의 len(str())을 더해서 풀었는데, 시간초과가 났다.&lt;/p&gt;
&lt;p&gt;그래서방법을 갈구하다가,&lt;/p&gt;
&lt;p&gt;자리의 규칙을 찾아냈다.&lt;/p&gt;
&lt;p&gt;1+2+&amp;hellip;.+9=9 (10^0)&lt;em&gt;(9&lt;/em&gt;1)&lt;/p&gt;
&lt;p&gt;10+11&amp;hellip;..+9=180 (10^1)&lt;em&gt;(9&lt;/em&gt;2)&lt;/p&gt;
&lt;p&gt;101+102+&amp;hellip;..(999)=2700 (10^2)&lt;em&gt;(9&lt;/em&gt;3)&lt;/p&gt;
&lt;p&gt;예를 들어 n이 998이라면, 3자리이므로&lt;/p&gt;
&lt;p&gt;먼져 999까지의 모든 숫자를 더해준다 9+180+2700=2889&lt;/p&gt;
&lt;p&gt;여기서 999와 998의 차이를 구한다&lt;/p&gt;
&lt;p&gt;999 (10^3-1) - 998=1&lt;/p&gt;
&lt;p&gt;그후, 이 차이에 있는 숫자들은 모두 3자리이므로,&lt;/p&gt;
&lt;p&gt;999까지 모두 생각한 결과에서, 차이에 있는 숫자들의 갯수 * 3을 빼준다.&lt;/p&gt;</description></item><item><title>백준 1107 리모컨</title><link>https://log.j2234.cc/posts/2022-tistory/051-%EB%B0%B1%EC%A4%80-1107-%EB%A6%AC%EB%AA%A8%EC%BB%A8/</link><pubDate>Sat, 02 Apr 2022 15:07:44 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/051-%EB%B0%B1%EC%A4%80-1107-%EB%A6%AC%EB%AA%A8%EC%BB%A8/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1107" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1107&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1107번: 리모컨첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼www.acmicpc.net&lt;/p&gt;
&lt;p&gt;풀이방법이 도저히 생각이 안나서 힌트를 얻었더니 그냥 노가다문제였다.&lt;/p&gt;
&lt;p&gt;그냥 1부터 500000*2의 수까지 모두 돌면서, 만들수 있으면 n과의 거리를 구하고, 만들수없으면 넘어간다.&lt;/p&gt;
&lt;p&gt;앞의 조건 &amp;lsquo;고장난버튼이있는 경우에는 셋제줄에 고장난버튼이 주어진다&amp;rsquo; 때문에 고생했다.&lt;/p&gt;
&lt;p&gt;고장난버튼이 0일때 입력을 받으면 eof에러가 나므로, 이경우만 예외처리해주면 된다.&lt;/p&gt;</description></item><item><title>백준 1476 날짜 계산</title><link>https://log.j2234.cc/posts/2022-tistory/050-%EB%B0%B1%EC%A4%80-1476-%EB%82%A0%EC%A7%9C-%EA%B3%84%EC%82%B0/</link><pubDate>Sat, 02 Apr 2022 13:10:16 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/050-%EB%B0%B1%EC%A4%80-1476-%EB%82%A0%EC%A7%9C-%EA%B3%84%EC%82%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1476" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1476&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1476번: 날짜 계산준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타www.acmicpc.net&lt;/p&gt;
&lt;p&gt;문제는 긴데 요약하면 너무 간단하다.&lt;/p&gt;
&lt;p&gt;year%15가 e, year%28이 s, year%19가 m인&lt;/p&gt;
&lt;p&gt;year을 찾으면된다.&lt;/p&gt;
&lt;p&gt;만일 15의 배수이면, 0이되므로 0일때만 예외처리해주면됨&lt;/p&gt;</description></item><item><title>백준 3085 사탕 게임</title><link>https://log.j2234.cc/posts/2022-tistory/049-%EB%B0%B1%EC%A4%80-3085-%EC%82%AC%ED%83%95-%EA%B2%8C%EC%9E%84/</link><pubDate>Fri, 01 Apr 2022 14:38:25 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/049-%EB%B0%B1%EC%A4%80-3085-%EC%82%AC%ED%83%95-%EA%B2%8C%EC%9E%84/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/3085" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/3085&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3085번: 사탕 게임예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;와 나는 알고리즘생각하느라 잠을못잘뻔했는데&lt;/p&gt;
&lt;p&gt;알고보니 그딴거없이 하나씩 다 해보는게 브루트포스였다.&lt;/p&gt;
&lt;p&gt;먼져, 2차원 보드에서 연속되는 값의 최댓값을 셀 함수 check(board) 를 만든다.&lt;/p&gt;
&lt;p&gt;모든 행, 열 을 비교하며 가장 많이 연속되는 값의 개수를 리턴한다..&lt;/p&gt;
&lt;p&gt;메인에서&lt;/p&gt;
&lt;p&gt;우리는 굳이 4방향을 다 바꿀 필요 없이, 각 원소의 오른쪽과 아래만 바꾸면 모든 경우를 다 시험 가능하다.&lt;/p&gt;
&lt;p&gt;각 행, 열의 마지막 원소는 바꿀 필요 없으므로 예외처리를 한다.&lt;/p&gt;</description></item><item><title>백준 1920 수 찾기</title><link>https://log.j2234.cc/posts/2022-tistory/048-%EB%B0%B1%EC%A4%80-1920-%EC%88%98-%EC%B0%BE%EA%B8%B0/</link><pubDate>Thu, 31 Mar 2022 15:07:01 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/048-%EB%B0%B1%EC%A4%80-1920-%EC%88%98-%EC%B0%BE%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1920" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1920&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1920번: 수 찾기첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들www.acmicpc.net&lt;/p&gt;
&lt;p&gt;진짜 기초개념인 이분탐색 문제였는데, 정신없는상테해서하느라 30분은 헤멘 듯 하다.&lt;/p&gt;
&lt;p&gt;따로 설명은 안하겠다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;bs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pivot&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;pivot&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;pivot&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;bs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;pivot&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;bs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;pivot&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())])&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;mm&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;mm&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 17404 RGB거리 2</title><link>https://log.j2234.cc/posts/2022-tistory/047-%EB%B0%B1%EC%A4%80-17404-rgb%EA%B1%B0%EB%A6%AC-2/</link><pubDate>Wed, 30 Mar 2022 12:28:19 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/047-%EB%B0%B1%EC%A4%80-17404-rgb%EA%B1%B0%EB%A6%AC-2/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/17404" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/17404&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;17404번: RGB거리 2첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음에 엄청 헤멨다.&lt;/p&gt;
&lt;p&gt;처음 집을 칠하는 경우가 3가지니 3가지 경우의 수를 두고 dp를 구하는 것까진 생각했으나, 코드가 너무 복잡했다.&lt;/p&gt;
&lt;p&gt;처음 집 0을 칠하는 경우를 예로 들면&lt;/p&gt;
&lt;p&gt;두번째 집에서는 0을 칠하지 못하므로 이를 제외한경우의 수를 구하는데&amp;hellip;&amp;hellip;&amp;hellip;..&lt;/p&gt;</description></item><item><title>백준 13398 연속합 2</title><link>https://log.j2234.cc/posts/2022-tistory/046-%EB%B0%B1%EC%A4%80-13398-%EC%97%B0%EC%86%8D%ED%95%A9-2/</link><pubDate>Tue, 29 Mar 2022 13:30:41 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/046-%EB%B0%B1%EC%A4%80-13398-%EC%97%B0%EC%86%8D%ED%95%A9-2/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/13398" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/13398&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;13398번: 연속합 2첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;도저히 나의 편협한 사고방식으로는 이해되지 않아&lt;/p&gt;
&lt;p&gt;힌트를 얻었다. 생각보다 간단하다.&lt;/p&gt;
&lt;p&gt;먼져,수열 a를 받는다.&lt;/p&gt;
&lt;p&gt;그후, 2차원 dp배열을 생성한다.&lt;/p&gt;
&lt;p&gt;dp[i][0]은 i를 포함하는 수열 중 가장 큰 수열의 합이다.&lt;/p&gt;
&lt;p&gt;dp[i][1]은 i를 포함하는 수열에서 하나를 뺐을 때 가장 큰 수열의 합이다.&lt;/p&gt;
&lt;p&gt;dp[i][0]은 그냥 그 전의값이 0보다 클 때만 더하고, 아니면 a[i]를 반환하면 된다.&lt;/p&gt;</description></item><item><title>백준 11054 가장 긴 바이토닉 부분 수열</title><link>https://log.j2234.cc/posts/2022-tistory/045-%EB%B0%B1%EC%A4%80-11054-%EA%B0%80%EC%9E%A5-%EA%B8%B4-%EB%B0%94%EC%9D%B4%ED%86%A0%EB%8B%89-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4/</link><pubDate>Mon, 28 Mar 2022 12:56:02 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/045-%EB%B0%B1%EC%A4%80-11054-%EA%B0%80%EC%9E%A5-%EA%B8%B4-%EB%B0%94%EC%9D%B4%ED%86%A0%EB%8B%89-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11054" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11054&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11054번: 가장 긴 바이토닉 부분 수열첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000)www.acmicpc.net&lt;/p&gt;
&lt;p&gt;엄청끙끙대다가 접근방식을 봤는데 생각보다 너무 간단했다.&lt;/p&gt;
&lt;p&gt;수열 a의 모든 원소 i에 대해서,&lt;/p&gt;
&lt;p&gt;a[i]까지의 증가하는 수열과a[j]까지의 감소하는 수열을 구한다.&lt;/p&gt;
&lt;p&gt;이후 이 둘을 더하고 1을빼주면 된다.(a가 중복되므로)&lt;/p&gt;
&lt;p&gt;나는 그냥 반복을 2번돌려서 풀었다.&lt;/p&gt;
&lt;p&gt;증가하는 수열을 모두 구한 후에, 감소하는 수열을 모두 구했다.&lt;/p&gt;</description></item><item><title>백준 4358 생태학</title><link>https://log.j2234.cc/posts/2022-tistory/044-%EB%B0%B1%EC%A4%80-4358-%EC%83%9D%ED%83%9C%ED%95%99/</link><pubDate>Mon, 28 Mar 2022 00:58:24 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/044-%EB%B0%B1%EC%A4%80-4358-%EC%83%9D%ED%83%9C%ED%95%99/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/4358" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/4358&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;4358번: 생태학프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어www.acmicpc.net&lt;/p&gt;
&lt;p&gt;이전에 이럴때 dict를활용하는 문제를 풀어서 쉬웠다.&lt;/p&gt;
&lt;p&gt;각각의 입력을 받고, dict에있으면 값에 1을 더해주고, 없으면 값을 1로 생성한다.&lt;/p&gt;
&lt;p&gt;입력이없으면 멈춘다.&lt;/p&gt;
&lt;p&gt;사전순을 위해 dict를 정렬해주고, print하면된다. (value는 모든 value의 합으로 나눠주고 100을 곱해준다)&lt;/p&gt;
&lt;p&gt;단하나까다로웠던게, 파이썬에서는 round가 정확하지 않다.&lt;/p&gt;
&lt;p&gt;따라서 :.4f를 이용해서 출력해야한다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysd&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readline&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;break&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;all&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nb"&gt;all&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.4f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 11047 동전 0</title><link>https://log.j2234.cc/posts/2022-tistory/043-%EB%B0%B1%EC%A4%80-11047-%EB%8F%99%EC%A0%84-0/</link><pubDate>Sun, 27 Mar 2022 20:13:15 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/043-%EB%B0%B1%EC%A4%80-11047-%EB%8F%99%EC%A0%84-0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11047" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11047&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11047번: 동전 0첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)www.acmicpc.net&lt;/p&gt;
&lt;p&gt;dp만풀다가 푸니깐 힐링된다.&lt;/p&gt;
&lt;p&gt;k=돈&lt;/p&gt;
&lt;p&gt;cnt=횟수&lt;/p&gt;
&lt;p&gt;먼져, 동전의 가치를 리스트로 저장해준다.&lt;/p&gt;
&lt;p&gt;그리고, 가장 큰 동전이 k보다 작을때까지 pop해준다.&lt;/p&gt;
&lt;p&gt;그후, (k//가장큰 동전) 을 cnt에 추가해주고 (동전을 몇번사용했는가)&lt;/p&gt;
&lt;p&gt;(k%가장큰동전)을 k로 선언한다. (동전을 최대한 쓰고 남은 돈)&lt;/p&gt;</description></item><item><title>백준 2156 포도주 시식</title><link>https://log.j2234.cc/posts/2022-tistory/042-%EB%B0%B1%EC%A4%80-2156-%ED%8F%AC%EB%8F%84%EC%A3%BC-%EC%8B%9C%EC%8B%9D/</link><pubDate>Sun, 27 Mar 2022 18:20:28 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/042-%EB%B0%B1%EC%A4%80-2156-%ED%8F%AC%EB%8F%84%EC%A3%BC-%EC%8B%9C%EC%8B%9D/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2156" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2156&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2156번: 포도주 시식효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규www.acmicpc.net&lt;/p&gt;
&lt;p&gt;어려웠다.&lt;/p&gt;
&lt;p&gt;g[i]는 포도주의 양&lt;/p&gt;
&lt;p&gt;dp[i] 는 i를 마지막으로 마셨을 때 최대인 포도주값이다.&lt;/p&gt;
&lt;p&gt;맨 처음에 당연히 i-3+i-1과 i-2를 비교하면 된다고 생각했지만,&lt;/p&gt;
&lt;p&gt;사실 i-4+i-1이 i-3+i-1보다 클 수 있다.&lt;/p&gt;
&lt;p&gt;ex)&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Column 1&lt;/th&gt;
 &lt;th&gt;Column 2&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;7 2 2 1 1 2 2 1 &lt;em&gt;(마지막 잔을 안 마시는 경우)&lt;/em&gt;&lt;/td&gt;
 &lt;td&gt;8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;질문을 찾아보다가 &lt;a href="https://raejoonee.tistory.com/15" target="_blank" rel="noreferrer"&gt;https://raejoonee.tistory.com/15&lt;/a&gt;를 보고 반례를 찾을 수 있었다.&lt;/p&gt;</description></item><item><title>백준 12096 (넌센스)</title><link>https://log.j2234.cc/posts/2022-tistory/041-%EB%B0%B1%EC%A4%80-12096-%EB%84%8C%EC%84%BC%EC%8A%A4/</link><pubDate>Sat, 26 Mar 2022 20:33:23 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/041-%EB%B0%B1%EC%A4%80-12096-%EB%84%8C%EC%84%BC%EC%8A%A4/</guid><description>&lt;p&gt;ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;html을 열면 링크를 통해 들어갈 수 있다.&lt;/p&gt;
&lt;p&gt;그 후 문제의 html을 분석해보면&lt;/p&gt;
&lt;!-- 66y47KCc7J2YIOygleuLteydgA== --&gt;
&lt;!-- 7JWM66Ck7KSEIOyImCDsl4bri6Q= --&gt;
&lt;!-- 7ZWY7KeA66eMIO2ejO2KuOuKlCDsnojri6Q= --&gt;
&lt;!-- 7Z6M7Yq464qUIGh0dHBzOi8vc3RhcnRsaW5rLmlvLyDsl5Ag7J6I64qUIOOFiOOFjuOFguOFjg== --&gt;
&lt;p&gt;의 주석을을 발결할 수 있고&lt;/p&gt;
&lt;p&gt;각각 base64로 디코딩하면&lt;/p&gt;
&lt;p&gt;문제의정답은&lt;/p&gt;
&lt;p&gt;알려줄수없다.&lt;/p&gt;
&lt;p&gt;하지만 힌트는 있다.&lt;/p&gt;
&lt;p&gt;힌트는 &lt;a href="https://startlink.io/" target="_blank" rel="noreferrer"&gt;https://startlink.io/&lt;/a&gt; 에 있는 ㅈㅎㅂㅎ&lt;/p&gt;
&lt;p&gt;가 된다.&lt;/p&gt;
&lt;p&gt;ㅈㅎㅂㅎ는 전화번호였다.&lt;/p&gt;
&lt;p&gt;맨밑에전화번호를입력하면된다.&lt;/p&gt;</description></item><item><title>백준 1990 소수인펠린드롬</title><link>https://log.j2234.cc/posts/2022-tistory/040-%EB%B0%B1%EC%A4%80-1990-%EC%86%8C%EC%88%98%EC%9D%B8%ED%8E%A0%EB%A6%B0%EB%93%9C%EB%A1%AC/</link><pubDate>Sat, 26 Mar 2022 13:46:46 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/040-%EB%B0%B1%EC%A4%80-1990-%EC%86%8C%EC%88%98%EC%9D%B8%ED%8E%A0%EB%A6%B0%EB%93%9C%EB%A1%AC/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1990" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1990&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1990번: 소수인팰린드롬151은 소수이면서 동시에 팰린드롬이기 때문에 소수인 팰린드롬이다. 팰린드롬이란 앞으로 읽어나 뒤로 읽으나 같은 수를 말한다. 예를 들어 1234는 앞으로 읽으면 1234지만, 뒤로 읽으면 4321이 되www.acmicpc.net&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;진짜 씨발 ㅈ같은 문제였다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;처음에는 &amp;lsquo;골드치고 웰케 쉽지&amp;rsquo; 했는데 역시나 함정이 숨어있었다.&lt;/p&gt;
&lt;p&gt;가장 먼저, 체로 풀었는데 시간초과가 났다.&lt;/p&gt;
&lt;p&gt;그래서 a부터 b까지의 모든 펠린드롬을 n 구하고, 이를 int(n**0.5)+1 까지의 모든 수로 나눠서 판별했다.&lt;/p&gt;
&lt;p&gt;역시 시간초과가 났다.&lt;/p&gt;
&lt;p&gt;여기서부터 별짓을 다해봤다.&lt;/p&gt;
&lt;p&gt;짝수중에 소수는 2밖에 없으므로, 2로 먼져 나눠보고 3부터 2씩 증가시켜서 나눠보고,&lt;/p&gt;</description></item><item><title>백준 11722 가장 긴 감소하는 부분 수열</title><link>https://log.j2234.cc/posts/2022-tistory/039-%EB%B0%B1%EC%A4%80-11722-%EA%B0%80%EC%9E%A5-%EA%B8%B4-%EA%B0%90%EC%86%8C%ED%95%98%EB%8A%94-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4/</link><pubDate>Fri, 25 Mar 2022 18:33:56 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/039-%EB%B0%B1%EC%A4%80-11722-%EA%B0%80%EC%9E%A5-%EA%B8%B4-%EA%B0%90%EC%86%8C%ED%95%98%EB%8A%94-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11722" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11722&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11722번: 가장 긴 감소하는 부분 수열수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10}www.acmicpc.net&lt;/p&gt;
&lt;p&gt;&amp;lsquo;가장 긴 증가하는 부분 수열&amp;rsquo; 의 반대로만 하면 된다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())]&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt; &lt;span class="n"&gt;max_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="n"&gt;max_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_len&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="n"&gt;max_len&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 11055 가장 큰 증가 부분 수열</title><link>https://log.j2234.cc/posts/2022-tistory/038-%EB%B0%B1%EC%A4%80-11055-%EA%B0%80%EC%9E%A5-%ED%81%B0-%EC%A6%9D%EA%B0%80-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4/</link><pubDate>Fri, 25 Mar 2022 18:05:05 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/038-%EB%B0%B1%EC%A4%80-11055-%EA%B0%80%EC%9E%A5-%ED%81%B0-%EC%A6%9D%EA%B0%80-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11055" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11055&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11055번: 가장 큰 증가 부분 수열수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수www.acmicpc.net&lt;/p&gt;
&lt;p&gt;역시 dp&lt;/p&gt;
&lt;p&gt;수열 A를 받는다.&lt;/p&gt;
&lt;p&gt;A를 베껴 dp를 만든다.&lt;/p&gt;
&lt;p&gt;dp[i]=A[i]를 끝으로 하는 수열의 가장 긴 길이이다.&lt;/p&gt;
&lt;p&gt;A[i]부터 왼쪽으로 탐색하면서&lt;/p&gt;
&lt;p&gt;A[i]보다 작은 값들중 가장 큰 A[?]를 구하고&lt;/p&gt;</description></item><item><title>백준 1932 정수 삼각형</title><link>https://log.j2234.cc/posts/2022-tistory/037-%EB%B0%B1%EC%A4%80-1932-%EC%A0%95%EC%88%98-%EC%82%BC%EA%B0%81%ED%98%95/</link><pubDate>Fri, 25 Mar 2022 17:35:33 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/037-%EB%B0%B1%EC%A4%80-1932-%EC%A0%95%EC%88%98-%EC%82%BC%EA%B0%81%ED%98%95/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1932" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1932&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1932번: 정수 삼각형첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음보는 구조라 당황했는데 dp개념만 알면 간단하다&lt;/p&gt;
&lt;p&gt;좀만 들여다보면 규칙이 나온다&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;점화식&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;dp[i][j]=&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;j가 0이라면: dp[i][j]+=&lt;strong&gt;dp[i-1][j]&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;j가 마지막수라면 : dp[i][j] += dp[i-1][j-1]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;else: dp[i][j] += max(dp[i-1][j-1]. dp[i-1][j])&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;마지막에 최댓값만 구해주면 된다&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())]&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;])):&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 9465 스티커</title><link>https://log.j2234.cc/posts/2022-tistory/036-%EB%B0%B1%EC%A4%80-9465-%EC%8A%A4%ED%8B%B0%EC%BB%A4/</link><pubDate>Fri, 25 Mar 2022 14:22:24 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/036-%EB%B0%B1%EC%A4%80-9465-%EC%8A%A4%ED%8B%B0%EC%BB%A4/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/9465" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/9465&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;9465번: 스티커첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의www.acmicpc.net&lt;/p&gt;
&lt;p&gt;이번엔 세로로 dp를 돌려봤다.&lt;/p&gt;
&lt;p&gt;dp[0][i]=i번째의 위에 있는 스티커를 뗄 때의 최댓값&lt;/p&gt;
&lt;p&gt;dp[0][i]=i번째의 아래 있는 스티커를 뗄 때의 최댓값&lt;/p&gt;
&lt;p&gt;여기서 dp[0][i]를 뗄러면 dp[1][i-1]의 스티커를 뗐거나, dp[?][j-1]을 아예안 똈거나 둘 중하나이다.&lt;/p&gt;
&lt;p&gt;그럼 dp[?][i-2]의 최댓값과, dp[1][i-1]을 비교하여 이중 최댓값에 스티커의 값을 더해주면 된다.&lt;/p&gt;</description></item><item><title>백준 1309 동물원</title><link>https://log.j2234.cc/posts/2022-tistory/035-%EB%B0%B1%EC%A4%80-1309-%EB%8F%99%EB%AC%BC%EC%9B%90/</link><pubDate>Thu, 24 Mar 2022 16:36:55 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/035-%EB%B0%B1%EC%A4%80-1309-%EB%8F%99%EB%AC%BC%EC%9B%90/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1309" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1309&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1309번: 동물원첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;역시 식만 잘 잡으면 됨&lt;/p&gt;
&lt;p&gt;칸이 2개 있으므로, 총 3가지 경우가 있음&lt;/p&gt;
&lt;p&gt;안넣는경우, 왼쪽, 오른쪽&lt;/p&gt;
&lt;p&gt;이를 dp[?][0],dp[?][0],dp[?][0] 로 정의함&lt;/p&gt;
&lt;p&gt;맨 첫줄은 다 한가지 경우만 있으므로 1임&lt;/p&gt;
&lt;p&gt;여서생각을 해보면&lt;/p&gt;
&lt;p&gt;맨 마지막줄에 아무것도 안넣을려면, 그 전에 어케됬든 상관 x&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;dp[i][0]=sum(dp[i-1])&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;왼쪽에 넣을려면, 그 전줄에 안넣거나 오른쪽에 넣어야됨&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;dp[i][0]=dp[i-1][0]+dp[i-1][2]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;오른쪽에 넣을러면, 안넣거나 왼쪽&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;dp[i][0]=dp[i-1][0]+dp[i-1][1]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;메손실을 방지하기위해 더할때마다 %9901을 하고,&lt;/p&gt;
&lt;p&gt;dp[i]를 모두 더해주면 됨&lt;/p&gt;
&lt;p&gt;여기서 dp[i][1]과 dp[i][2]는 모두 같으므로&lt;/p&gt;</description></item><item><title>백준 15998 1,2,3 더하기 3</title><link>https://log.j2234.cc/posts/2022-tistory/034-%EB%B0%B1%EC%A4%80-15998-123-%EB%8D%94%ED%95%98%EA%B8%B0-3/</link><pubDate>Thu, 24 Mar 2022 14:36:43 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/034-%EB%B0%B1%EC%A4%80-15998-123-%EB%8D%94%ED%95%98%EA%B8%B0-3/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/15988" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/15988&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;15988번: 1, 2, 3 더하기 3각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;이전의 1,2,3더하기와 완전히 같은 문제다.&lt;/p&gt;
&lt;p&gt;다른점이 있다면 dp의 길이가 1000001이라는 건데,&lt;/p&gt;
&lt;p&gt;짜피 계산은 컴퓨터가하니 알 바 아니고&lt;/p&gt;
&lt;p&gt;dp를 구할때마다 %m (문제조건)&lt;/p&gt;
&lt;p&gt;만 해주면 쉽게 풀린다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1000000009&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000001&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#dp[i]=i자리 수를 1,2,3의 합으로 나타내는 방법dp[1]=1dp[2]=2dp[3]=4for i in range(4,len(dp)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;mfor&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 1149 RGB거리</title><link>https://log.j2234.cc/posts/2022-tistory/033-%EB%B0%B1%EC%A4%80-1149-rgb%EA%B1%B0%EB%A6%AC/</link><pubDate>Thu, 24 Mar 2022 14:19:07 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/033-%EB%B0%B1%EC%A4%80-1149-rgb%EA%B1%B0%EB%A6%AC/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1149" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1149&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1149번: RGB거리첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나www.acmicpc.net&lt;/p&gt;
&lt;p&gt;dp 문제는 일단 식만 세우면 해결되는듯하다. 식세우기가어렵지만..&lt;/p&gt;
&lt;p&gt;먼져 cost로 각 집을 칠하는 값을 구해놓는다.&lt;/p&gt;
&lt;p&gt;그후 dp를 돌릴 배열을 선언한다.&lt;/p&gt;
&lt;p&gt;dp[1]은 아무 제약이 없으므로, cost[1]과 같다.&lt;/p&gt;
&lt;p&gt;dp[i][j]는 i번째의 집을 j색(0,1,2)으로 칠할 때의 최소비용을 뜻한다.&lt;/p&gt;
&lt;p&gt;우리는 두 집을 같은 색으로 칠할 수 없으므로,&lt;/p&gt;</description></item><item><title>백준 2225 합분해</title><link>https://log.j2234.cc/posts/2022-tistory/032-%EB%B0%B1%EC%A4%80-2225-%ED%95%A9%EB%B6%84%ED%95%B4/</link><pubDate>Thu, 24 Mar 2022 11:50:47 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/032-%EB%B0%B1%EC%A4%80-2225-%ED%95%A9%EB%B6%84%ED%95%B4/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2225" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2225&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2225번: 합분해첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;살짝 꼬아서 낸 dp문제 원리는 오르막수와 같음&lt;/p&gt;
&lt;p&gt;dp[i][j]는 i개의 정수를 더해서 j가 되는 경우의 수로 정의한다.&lt;/p&gt;
&lt;p&gt;먼져, 직관적으로 0은 제외히고&lt;/p&gt;
&lt;p&gt;모든 dp[1][j]와 dp[i][0]는 모두 1이라는걸 알 수 있다. (한가지경우박에 없음)&lt;/p&gt;
&lt;p&gt;3,5를 예로 들면,&lt;/p&gt;
&lt;p&gt;dp[3][5]는 3개를 더해서 5가 되는 경우의 수이다.&lt;/p&gt;
&lt;p&gt;이는 dp[2][0] (마지막에 5를 더하는 경우)&lt;/p&gt;
&lt;p&gt;dp[2][1](마지막에 5-1을 더하는 경우)&lt;/p&gt;
&lt;p&gt;dp[2][2](마지막에 5-2를 더하는 경우)&lt;/p&gt;
&lt;p&gt;dp[2][3](마지막에 5-3을더하는 경우)&lt;/p&gt;
&lt;p&gt;dp[2][4])마지막에 5-4를 더하는 경우)&lt;/p&gt;</description></item><item><title>백준 11057 오르막 수</title><link>https://log.j2234.cc/posts/2022-tistory/031-%EB%B0%B1%EC%A4%80-11057-%EC%98%A4%EB%A5%B4%EB%A7%89-%EC%88%98/</link><pubDate>Thu, 24 Mar 2022 10:25:51 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/031-%EB%B0%B1%EC%A4%80-11057-%EC%98%A4%EB%A5%B4%EB%A7%89-%EC%88%98/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11057" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11057&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11057번: 오르막 수오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수www.acmicpc.net&lt;/p&gt;
&lt;p&gt;10884 쉬운 계단수에서 한단계 진화한 문제다.&lt;/p&gt;
&lt;p&gt;2차원 배열을 생성하여 풀었다.&lt;/p&gt;
&lt;p&gt;dp[i][j]는 길이가 i인 끝자리가 j로 끝나는 오르막 수의 개수를 의미한다.&lt;/p&gt;
&lt;p&gt;첫번째는 0이니깐 비워놓고,&lt;/p&gt;
&lt;p&gt;모든 한자리수는 오르막수이기 때문에 dp[1][0~9] 는 모두 1이다.&lt;/p&gt;
&lt;p&gt;2자리수부터가 문제인데,&lt;/p&gt;
&lt;p&gt;dp[2][0]은 00 하나밖에 존재할 수 없다.&lt;/p&gt;</description></item><item><title>백준 1699 제곱수의 합</title><link>https://log.j2234.cc/posts/2022-tistory/030-%EB%B0%B1%EC%A4%80-1699-%EC%A0%9C%EA%B3%B1%EC%88%98%EC%9D%98-%ED%95%A9/</link><pubDate>Tue, 22 Mar 2022 21:40:30 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/030-%EB%B0%B1%EC%A4%80-1699-%EC%A0%9C%EA%B3%B1%EC%88%98%EC%9D%98-%ED%95%A9/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1699" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1699&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1699번: 제곱수의 합어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다www.acmicpc.net&lt;/p&gt;
&lt;p&gt;의외로 정말 어려웠던 문제였다.&lt;/p&gt;
&lt;p&gt;푼 방법&lt;/p&gt;
&lt;p&gt;먼저, n까지의 제곱수를 구현해 놓는다.&lt;/p&gt;
&lt;p&gt;그다음 n까지의 리스트를 선언한다.&lt;/p&gt;
&lt;p&gt;반복문을 통해 리스트를 돌면서,&lt;/p&gt;
&lt;p&gt;만일 i가 제곱수이면, 값에 1을 넣는다.&lt;/p&gt;
&lt;p&gt;만일 i가 제곱수가 아니면, i보다 작은 모든 제곱수에 대하여&lt;/p&gt;
&lt;p&gt;(i-제곱수) + 1 을 구하고, ## 제곱수j에서 i를 만드는 최솟값 + 제곱수는 항상 1&lt;/p&gt;</description></item><item><title>백준 1912 연속합</title><link>https://log.j2234.cc/posts/2022-tistory/029-%EB%B0%B1%EC%A4%80-1912-%EC%97%B0%EC%86%8D%ED%95%A9/</link><pubDate>Tue, 22 Mar 2022 16:48:38 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/029-%EB%B0%B1%EC%A4%80-1912-%EC%97%B0%EC%86%8D%ED%95%A9/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1912" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1912&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1912번: 연속합첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;그냥 평범한 dp&lt;/p&gt;
&lt;p&gt;n[i]는 n[i]를 끝값으로 하는 가장 큰 수&lt;/p&gt;
&lt;p&gt;%%점화식%%&lt;/p&gt;
&lt;p&gt;n[i]={&lt;/p&gt;
&lt;p&gt;n[i-1]&amp;lt;=0 -&amp;gt; n[i]&lt;/p&gt;
&lt;p&gt;n[i-1]&amp;gt;0 -&amp;gt; n[i]+n[i-1]&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;만약 그전수가 0보다 작다면, 더해봤자 손해이므로 그냥 n[i]반환&lt;/p&gt;
&lt;p&gt;0보다 크다면, 그전에수에n[i]를 더한값 반환&lt;/p&gt;
&lt;p&gt;배열을 1개만 써도 상관없음&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;num_list&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;max_list&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;num_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;last_cnt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;max_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;#이전의 숫자 if last_cnt&amp;lt;=0:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;max_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;num_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;max_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;num_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;last_cnt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_list&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;골드찍었다!&lt;/p&gt;</description></item><item><title>백준 14002 가장 긴 증가하는 부분 수열 4</title><link>https://log.j2234.cc/posts/2022-tistory/028-%EB%B0%B1%EC%A4%80-14002-%EA%B0%80%EC%9E%A5-%EA%B8%B4-%EC%A6%9D%EA%B0%80%ED%95%98%EB%8A%94-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4-4/</link><pubDate>Tue, 22 Mar 2022 12:35:43 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/028-%EB%B0%B1%EC%A4%80-14002-%EA%B0%80%EC%9E%A5-%EA%B8%B4-%EC%A6%9D%EA%B0%80%ED%95%98%EB%8A%94-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4-4/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/14002" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/14002&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;14002번: 가장 긴 증가하는 부분 수열 4수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이www.acmicpc.net&lt;/p&gt;
&lt;p&gt;바로 전에 풀었던 가장 긴 증가하는 부분 수열처럼, 길이는 걍 DP돌려서 풀면 된다.&lt;/p&gt;
&lt;p&gt;근데 어떻게 수열을 하나씩 출력할까?&lt;/p&gt;
&lt;p&gt;나는 b를 각각 입력값에 대해[0,1]로 만들었다.&lt;/p&gt;</description></item><item><title>백준 11053 가장 긴 증가하는 부분 수열</title><link>https://log.j2234.cc/posts/2022-tistory/027-%EB%B0%B1%EC%A4%80-11053-%EA%B0%80%EC%9E%A5-%EA%B8%B4-%EC%A6%9D%EA%B0%80%ED%95%98%EB%8A%94-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4/</link><pubDate>Mon, 21 Mar 2022 19:50:51 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/027-%EB%B0%B1%EC%A4%80-11053-%EA%B0%80%EC%9E%A5-%EA%B8%B4-%EC%A6%9D%EA%B0%80%ED%95%98%EB%8A%94-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11053" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11053&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11053번: 가장 긴 증가하는 부분 수열수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이www.acmicpc.net&lt;/p&gt;
&lt;p&gt;%%풀이%%&lt;/p&gt;
&lt;p&gt;a는 입력받은 값을 저장하는 배열,&lt;/p&gt;
&lt;p&gt;b는&lt;/p&gt;
&lt;p&gt;a[i]&lt;/p&gt;
&lt;p&gt;n[i]를 구하려면 n[0]부터 n[i-1] 중 n[i]보다 작은 수 중의 최댓값+=1이다.&lt;/p&gt;
&lt;p&gt;즉, n[i]의 왼쪽에있는 수를 비교하여 n[i]보다 작은 수를 찾고,&lt;/p&gt;</description></item><item><title>백준 2193 이친수</title><link>https://log.j2234.cc/posts/2022-tistory/026-%EB%B0%B1%EC%A4%80-2193-%EC%9D%B4%EC%B9%9C%EC%88%98/</link><pubDate>Sun, 20 Mar 2022 22:01:30 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/026-%EB%B0%B1%EC%A4%80-2193-%EC%9D%B4%EC%B9%9C%EC%88%98/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/2193" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/2193&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2193번: 이친수0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않www.acmicpc.net&lt;/p&gt;
&lt;p&gt;dp문제를 풀다보면 해결방안이 보인다.&lt;/p&gt;
&lt;p&gt;이친수는 2가지 경우가 있다. 0로끝나는경우, 1으로끝나는 경우&lt;/p&gt;
&lt;p&gt;0으로 끝나는 경우에는, 뒤에 0이오던 1이오던 상관없다&lt;/p&gt;
&lt;p&gt;1로 끝나는 경우에는, 뒤에 0만 와야한다.&lt;/p&gt;
&lt;p&gt;이를 식으로 표현하면&lt;/p&gt;
&lt;p&gt;(배열은 각각 2개의원소를 가지고 있는 2차원 배열)&lt;/p&gt;
&lt;p&gt;l[i][0]=i번쩨 자릿수가 0으로끝나는경우&lt;/p&gt;
&lt;p&gt;l[i][1]=i번째 자릿수가 1로 끝나는 경우&lt;/p&gt;</description></item><item><title>백준 15990 1,2,3 더하기5</title><link>https://log.j2234.cc/posts/2022-tistory/025-%EB%B0%B1%EC%A4%80-15990-123-%EB%8D%94%ED%95%98%EA%B8%B05/</link><pubDate>Sun, 20 Mar 2022 20:49:03 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/025-%EB%B0%B1%EC%A4%80-15990-123-%EB%8D%94%ED%95%98%EA%B8%B05/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/15990" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/15990&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;15990번: 1, 2, 3 더하기 5각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음에 보자마자 너무 막막했다.&lt;/p&gt;
&lt;p&gt;살짝 힌트를 얻어서 풀었다.&lt;/p&gt;
&lt;p&gt;이전 dp문제와는 달리, 배열을 [0,0,0,0]이 들어있는 2차원 배열로 만든다&lt;/p&gt;
&lt;p&gt;[[0,0,0,0],[0,0,0,0]&amp;hellip;&amp;hellip;&amp;hellip;&amp;hellip;.]&lt;/p&gt;
&lt;p&gt;여기서 l[i][0]은 i를 만드는 경우의 수(정답),&lt;/p&gt;
&lt;p&gt;l[i][1] 마지막이 1일때 i를 만드는 경우의수&lt;/p&gt;
&lt;p&gt;l[i][2]마지막이 2일때 i를 만드는 경우의수&lt;/p&gt;
&lt;p&gt;l[i][3]마지막이 3일때 i를 만드는 경우의수&lt;/p&gt;
&lt;p&gt;를 뜻한다.&lt;/p&gt;
&lt;p&gt;만일 l[i][1]을 구하고 싶다면, 마지막에 1을 더해야 하므로 l[i-1]에서 1을 더해야 한다.&lt;/p&gt;</description></item><item><title>백준 16194 카드 구매하기 2</title><link>https://log.j2234.cc/posts/2022-tistory/024-%EB%B0%B1%EC%A4%80-16194-%EC%B9%B4%EB%93%9C-%EA%B5%AC%EB%A7%A4%ED%95%98%EA%B8%B0-2/</link><pubDate>Sun, 20 Mar 2022 19:06:24 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/024-%EB%B0%B1%EC%A4%80-16194-%EC%B9%B4%EB%93%9C-%EA%B5%AC%EB%A7%A4%ED%95%98%EA%B8%B0-2/</guid><description>&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()))&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;카드 구매하기 정확히 반대로하면됨&lt;/p&gt;</description></item><item><title>백준 11052 카드 구매하기</title><link>https://log.j2234.cc/posts/2022-tistory/023-%EB%B0%B1%EC%A4%80-11052-%EC%B9%B4%EB%93%9C-%EA%B5%AC%EB%A7%A4%ED%95%98%EA%B8%B0/</link><pubDate>Sat, 19 Mar 2022 16:15:12 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/023-%EB%B0%B1%EC%A4%80-11052-%EC%B9%B4%EB%93%9C-%EA%B5%AC%EB%A7%A4%ED%95%98%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11052" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11052&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11052번: 카드 구매하기첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000)www.acmicpc.net&lt;/p&gt;
&lt;p&gt;1.0번째 인덱스를 제외하고 n+1길이의 배열에 각각 p[i]값을 입력한다&lt;/p&gt;
&lt;p&gt;l[4]를 예로 들자면&lt;/p&gt;
&lt;p&gt;l[4] 현재 p[4]이므로&lt;/p&gt;
&lt;p&gt;현재의 l[4]와 (l[3]+l[1]), (l[2]+l[2]), (l[1]+l[3]) 중의 최댓값이 l[4]가 된다.&lt;/p&gt;
&lt;p&gt;이를 점화식으로 쓰면&lt;/p&gt;
&lt;p&gt;l[i]=max( l[i],(l[i-1]+l[i]),(l[i-2]+l[2]),&amp;hellip;..(l[i-n]+l[0]) ) 이다.&lt;/p&gt;
&lt;p&gt;조금더 생각해보면&lt;/p&gt;
&lt;p&gt;l[i-n]+l[n]은 l[n]+l[i]와 같은 결과를 가지므로&lt;/p&gt;
&lt;p&gt;l//2+1 까지만 비교해줘도 답을 알수 있다.&lt;/p&gt;</description></item><item><title>백준 9095 1,2,3더하기</title><link>https://log.j2234.cc/posts/2022-tistory/022-%EB%B0%B1%EC%A4%80-9095-123%EB%8D%94%ED%95%98%EA%B8%B0/</link><pubDate>Sat, 19 Mar 2022 14:56:19 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/022-%EB%B0%B1%EC%A4%80-9095-123%EB%8D%94%ED%95%98%EA%B8%B0/</guid><description>&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/9095" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/9095&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;9095번: 1, 2, 3 더하기각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;일단 규칙을찾는다&lt;/p&gt;
&lt;p&gt;(n)=n을 만드는 경우의 수&lt;/p&gt;
&lt;p&gt;(1)= (1)&lt;/p&gt;
&lt;p&gt;(2)=2 (1+1,2)&lt;/p&gt;
&lt;p&gt;(3)=4 (1+1+1,1+2,2+1,3)&lt;/p&gt;
&lt;p&gt;(4)=7 (1+1+1+1,1+1+2,1+2+1,2+2+1,2+2,1+3,3+1)&lt;/p&gt;
&lt;p&gt;n이 4일때&lt;/p&gt;
&lt;p&gt;n(1)에서 3을만들어야되므로 n(3), 4가지&lt;/p&gt;
&lt;p&gt;n(2)에서 2를만들어야되므로 n(2) 2가지&lt;/p&gt;
&lt;p&gt;n(3)에서 1을만들어야되므로 n(1)1가지&lt;/p&gt;
&lt;p&gt;경우의수가 있다.&lt;/p&gt;
&lt;p&gt;그러므로, n[i]=n[i-1]+n[i-2]+n[i-3] n[1]=1, n[2]=2, n[3]=3&lt;/p&gt;
&lt;p&gt;의 점화식이 생긴다.&lt;/p&gt;
&lt;p&gt;이를 배열에 넣고 dp돌리면 된다.&lt;/p&gt;</description></item><item><title>백준 11727 2xn타일링 2</title><link>https://log.j2234.cc/posts/2022-tistory/021-%EB%B0%B1%EC%A4%80-11727-2xn%ED%83%80%EC%9D%BC%EB%A7%81-2/</link><pubDate>Sat, 19 Mar 2022 14:19:39 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/021-%EB%B0%B1%EC%A4%80-11727-2xn%ED%83%80%EC%9D%BC%EB%A7%81-2/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11727" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11727&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11727번: 2×n 타일링 22×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;2xn 타일링 1과 비슷한 문제이다.&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="240"
 height="320"
 src="https://log.j2234.cc/posts/2022-tistory/021-%EB%B0%B1%EC%A4%80-11727-2xn%ED%83%80%EC%9D%BC%EB%A7%81-2/img/image-01.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/021-%EB%B0%B1%EC%A4%80-11727-2xn%ED%83%80%EC%9D%BC%EB%A7%81-2/img/image-01.webp 800w, https://log.j2234.cc/posts/2022-tistory/021-%EB%B0%B1%EC%A4%80-11727-2xn%ED%83%80%EC%9D%BC%EB%A7%81-2/img/image-01.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/021-%EB%B0%B1%EC%A4%80-11727-2xn%ED%83%80%EC%9D%BC%EB%A7%81-2/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;p&gt;n[i]=n[i-2]*2+n[i-1]이라는 점화식을 세울 수 있다.&lt;/p&gt;
&lt;p&gt;왜?&lt;/p&gt;
&lt;p&gt;i번째를 채우기 위해서는&lt;/p&gt;
&lt;p&gt;i-1번째의 경우에서 2*1 타일 1개를 채우는 방법과,&lt;/p&gt;
&lt;p&gt;i-2번째의 경우에서 1&lt;em&gt;2 2개로채우는 방법, 2&lt;/em&gt;2 1개로 채우는 2가지 방법이 있기 때문이다.&lt;/p&gt;
&lt;p&gt;i-1번째의 경우는 그대로, i-2경우에는 각각 2개의 경우이므로 *2를 해주면 된다.&lt;/p&gt;</description></item><item><title>백준 11726 2xn 타일링</title><link>https://log.j2234.cc/posts/2022-tistory/020-%EB%B0%B1%EC%A4%80-11726-2xn-%ED%83%80%EC%9D%BC%EB%A7%81/</link><pubDate>Fri, 18 Mar 2022 23:24:45 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/020-%EB%B0%B1%EC%A4%80-11726-2xn-%ED%83%80%EC%9D%BC%EB%A7%81/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/11726" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/11726&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11726번: 2×n 타일링2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;원리만 알면 구현하기 매우 쉽다.&lt;/p&gt;
&lt;p&gt;맨 처음 손으로 써보았다.&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="240"
 height="320"
 src="https://log.j2234.cc/posts/2022-tistory/020-%EB%B0%B1%EC%A4%80-11726-2xn-%ED%83%80%EC%9D%BC%EB%A7%81/img/image-01.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/020-%EB%B0%B1%EC%A4%80-11726-2xn-%ED%83%80%EC%9D%BC%EB%A7%81/img/image-01.webp 800w, https://log.j2234.cc/posts/2022-tistory/020-%EB%B0%B1%EC%A4%80-11726-2xn-%ED%83%80%EC%9D%BC%EB%A7%81/img/image-01.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/020-%EB%B0%B1%EC%A4%80-11726-2xn-%ED%83%80%EC%9D%BC%EB%A7%81/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;p&gt;간단하게 n[i]=n[i-1]+n[i-2] 의 점화식 즉 피보나치 수열이 나온다.&lt;/p&gt;
&lt;p&gt;중요한건 왜 그런가이다&lt;/p&gt;
&lt;p&gt;!!!!!!!!!!!!!&lt;/p&gt;
&lt;p&gt;n[4]를 예로 들겠다.&lt;/p&gt;
&lt;p&gt;n[4]를 만드는 방법은&lt;/p&gt;
&lt;p&gt;n[3]의 모든 경우의 수에서 2*1블럭 1개를 가장 오른쪽에 채우는 방법과,&lt;/p&gt;</description></item><item><title>백준 10884 쉬운 계단수</title><link>https://log.j2234.cc/posts/2022-tistory/019-%EB%B0%B1%EC%A4%80-10884-%EC%89%AC%EC%9A%B4-%EA%B3%84%EB%8B%A8%EC%88%98/</link><pubDate>Fri, 18 Mar 2022 22:41:38 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/019-%EB%B0%B1%EC%A4%80-10884-%EC%89%AC%EC%9A%B4-%EA%B3%84%EB%8B%A8%EC%88%98/</guid><description>&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;1000000000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/10844" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/10844&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;10844번: 쉬운 계단 수첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;하나씩 손으로&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="320"
 height="240"
 src="https://log.j2234.cc/posts/2022-tistory/019-%EB%B0%B1%EC%A4%80-10884-%EC%89%AC%EC%9A%B4-%EA%B3%84%EB%8B%A8%EC%88%98/img/image-01.webp"
 srcset="https://log.j2234.cc/posts/2022-tistory/019-%EB%B0%B1%EC%A4%80-10884-%EC%89%AC%EC%9A%B4-%EA%B3%84%EB%8B%A8%EC%88%98/img/image-01.webp 800w, https://log.j2234.cc/posts/2022-tistory/019-%EB%B0%B1%EC%A4%80-10884-%EC%89%AC%EC%9A%B4-%EA%B3%84%EB%8B%A8%EC%88%98/img/image-01.webp 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://log.j2234.cc/posts/2022-tistory/019-%EB%B0%B1%EC%A4%80-10884-%EC%89%AC%EC%9A%B4-%EA%B3%84%EB%8B%A8%EC%88%98/img/image-01.webp"&gt;&lt;/figure&gt;
&lt;p&gt;써보다보면 규칙이 보인다.&lt;/p&gt;
&lt;p&gt;arr[i][j]는 [i]자리의 끝이[j]인 계단수의 개수이다.&lt;/p&gt;
&lt;p&gt;처음엔 0을 제외한 모든수가 계단수이므로&lt;/p&gt;
&lt;p&gt;[0.1.1.1.1.1.1.1.1.1]이다.&lt;/p&gt;
&lt;p&gt;두번째에는[1,1,2,2,2,2,2,2,1]이다.&lt;/p&gt;
&lt;p&gt;이를 반복하면&lt;/p&gt;
&lt;p&gt;arr[i][j]=arr[i-1][j-1] + arr[i-1][j+1]이라는 식을 찾을 수 있다.&lt;/p&gt;
&lt;p&gt;파이썬에서 indexerror방지를 위해서 j가 0 또는 9일때만 예외를 설정하여&lt;/p&gt;
&lt;p&gt;0일때는 그 전의 1의값만, 9일때는 그 전의 8의값만 더해주면&lt;/p&gt;</description></item><item><title>백 준 1764 듣보잡</title><link>https://log.j2234.cc/posts/2022-tistory/018-%EB%B0%B1-%EC%A4%80-1764-%EB%93%A3%EB%B3%B4%EC%9E%A1/</link><pubDate>Thu, 17 Mar 2022 12:07:43 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/018-%EB%B0%B1-%EC%A4%80-1764-%EB%93%A3%EB%B3%B4%EC%9E%A1/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1764" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1764&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1764번: 듣보잡첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;그냥 리스트에서 하나씩 비교하면 시간때문에 못 풀고,&lt;/p&gt;
&lt;p&gt;dict으로 검색하거나&lt;/p&gt;
&lt;p&gt;set로 바꿔 공집합을 이용하면된다&lt;/p&gt;
&lt;p&gt;풀이1 (dict)&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;awn&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;awn&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;풀이2(set)&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sysinput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readlinen&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;awn&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;awn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 17087 숨바꼭질6</title><link>https://log.j2234.cc/posts/2022-tistory/017-%EB%B0%B1%EC%A4%80-17087-%EC%88%A8%EB%B0%94%EA%BC%AD%EC%A7%886/</link><pubDate>Mon, 14 Mar 2022 19:29:54 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/017-%EB%B0%B1%EC%A4%80-17087-%EC%88%A8%EB%B0%94%EA%BC%AD%EC%A7%886/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/17087" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/17087&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;17087번: 숨바꼭질 6수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, &amp;hellip;, AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이www.acmicpc.net&lt;/p&gt;
&lt;p&gt;gcd함수 선언&lt;/p&gt;
&lt;p&gt;동생위치를 동생위치-형위치의 절댓값으로 바꾼다&lt;/p&gt;
&lt;p&gt;동생위치를 2개씩 계속 gcd를 돌린다&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;gcd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;gcd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()))&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;gcd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 1463 1로 만들기</title><link>https://log.j2234.cc/posts/2022-tistory/016-%EB%B0%B1%EC%A4%80-1463-1%EB%A1%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><pubDate>Mon, 14 Mar 2022 16:43:58 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/016-%EB%B0%B1%EC%A4%80-1463-1%EB%A1%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1463" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1463&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1463번: 1로 만들기첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;처음 구현해본 dp라 처음에는 헤멨는데&lt;/p&gt;
&lt;p&gt;원리만 알고 나니깐 너무 간단하다.&lt;/p&gt;
&lt;p&gt;상향식 접근?&lt;/p&gt;
&lt;p&gt;처음부터 1씩 더해가며 각각의 값을 업데이트하면 된다.&lt;/p&gt;
&lt;p&gt;사실 2,3을 업데이트할 필요도 없음&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;cnt_list&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;##첫번째는 안쓸거니깐 x+1개의 리스트 만들기&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cnt_list&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt; &lt;span class="c1"&gt;###0,1,2,3을 제외하고 dp&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cnt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;cnt_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;#1을 빼서 바로 전 수로 만드는 경우 if i%3==0: &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cnt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cnt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;cnt_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;## 3으로 나누었을때의 경우의 수는, 이를 3으로 나눴을때의 경우의 수 +1 if i%2==0:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cnt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cnt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;cnt_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;##위와 동 ##최솟값만 남기고&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cnt_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;cnt&lt;/span&gt; &lt;span class="c1"&gt;#최솟값 업데이트print(cnt_list[x])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>9613. GCD 합</title><link>https://log.j2234.cc/posts/2022-tistory/015-9613.-gcd-%ED%95%A9/</link><pubDate>Sun, 13 Mar 2022 20:04:59 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/015-9613.-gcd-%ED%95%A9/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/9613" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/9613&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;9613번: GCD 합첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 &amp;lt; n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진www.acmicpc.net&lt;/p&gt;
&lt;p&gt;진짜 쉬운 문제인데 각 줄의 첫번째가 n이라는걸 간과해서 시간을 오래 잡아먹었다.&lt;/p&gt;
&lt;p&gt;배열에 2가지를 넣는 경우의 수를 구하고, 이의 최소공배수를 각각 구한다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;itertools&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;combinationsdef&lt;/span&gt; &lt;span class="n"&gt;gcd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()))&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;combinations&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="n"&gt;gcd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 6588 골드바흐의 추측</title><link>https://log.j2234.cc/posts/2022-tistory/014-%EB%B0%B1%EC%A4%80-6588-%EA%B3%A8%EB%93%9C%EB%B0%94%ED%9D%90%EC%9D%98-%EC%B6%94%EC%B8%A1/</link><pubDate>Sat, 12 Mar 2022 21:39:39 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/014-%EB%B0%B1%EC%A4%80-6588-%EA%B3%A8%EB%93%9C%EB%B0%94%ED%9D%90%EC%9D%98-%EC%B6%94%EC%B8%A1/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/6588" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/6588&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;6588번: 골드바흐의 추측각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰www.acmicpc.net&lt;/p&gt;
&lt;p&gt;간단한문제&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;소수를 구한다(체로구현)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;n을 1과 n-1부터 시작해서, 각각1 씩 올려가며확인&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;둘다소수이면 종료&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;sosu&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sosu&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;sosu&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sosu&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;sosu&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt; &lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;break&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;sosu&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;sosu&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt; = &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt; + &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;break&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 1918 후위 표기식</title><link>https://log.j2234.cc/posts/2022-tistory/013-%EB%B0%B1%EC%A4%80-1918-%ED%9B%84%EC%9C%84-%ED%91%9C%EA%B8%B0%EC%8B%9D/</link><pubDate>Sat, 12 Mar 2022 18:20:25 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/013-%EB%B0%B1%EC%A4%80-1918-%ED%9B%84%EC%9C%84-%ED%91%9C%EA%B8%B0%EC%8B%9D/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1918" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1918&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1918번: 후위 표기식첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의www.acmicpc.net&lt;/p&gt;
&lt;p&gt;진짜 ㅈ 같은 문제다.&lt;/p&gt;
&lt;p&gt;애초에 후위표기식 개념이 헷갈려서 한참 해멨다.&lt;/p&gt;
&lt;p&gt;%%주의%%&lt;/p&gt;
&lt;p&gt;만일 곱하기나 나누기면, stack의 출구가 곱하기나 나누기가 아닐때까지 pop해주고(answer에 추가)&lt;/p&gt;
&lt;p&gt;부호를 더해준다.&lt;/p&gt;
&lt;p&gt;여기서 한참해멧는데, 예제에는 이런식이 없어서 생각도 못했었다.&lt;/p&gt;
&lt;p&gt;!! 더하기나 빼기는 곱하기나 나누기를 모두 계산한 후에 계산하기 때문에, 스택에 남아있어야 한다.!!!&lt;/p&gt;</description></item><item><title>백준 1935 후위 표기식 2</title><link>https://log.j2234.cc/posts/2022-tistory/012-%EB%B0%B1%EC%A4%80-1935-%ED%9B%84%EC%9C%84-%ED%91%9C%EA%B8%B0%EC%8B%9D-2/</link><pubDate>Fri, 11 Mar 2022 21:03:15 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/012-%EB%B0%B1%EC%A4%80-1935-%ED%9B%84%EC%9C%84-%ED%91%9C%EA%B8%B0%EC%8B%9D-2/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1935" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1935&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1935번: 후위 표기식2첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이www.acmicpc.net&lt;/p&gt;
&lt;p&gt;진짜 후위표기식이 뭔지만 찾아보고 혼자 푼 문제라 쾌감이 째진다 ㅎㅎ&lt;/p&gt;
&lt;p&gt;단어열이 표현되는 abc_list를 통해 num_list에 접근해서 진짜 값을 알아내는 식으로 숫자를 넣었고,&lt;/p&gt;
&lt;p&gt;그다음부터는 그냥 연산자가 나올때까지 stack에 넣고&lt;/p&gt;
&lt;p&gt;연산자가 나올때마다 stack에서 2개를 pop해주고&lt;/p&gt;
&lt;p&gt;두번째를 a, 첫번째를 b로 정한뒤 연산을 수행하고&lt;/p&gt;
&lt;p&gt;결과를 다시 스택에 넣는다.&lt;/p&gt;</description></item><item><title>백준 17299 오등큰수 G3</title><link>https://log.j2234.cc/posts/2022-tistory/011-%EB%B0%B1%EC%A4%80-17299-%EC%98%A4%EB%93%B1%ED%81%B0%EC%88%98-g3/</link><pubDate>Fri, 11 Mar 2022 14:46:45 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/011-%EB%B0%B1%EC%A4%80-17299-%EC%98%A4%EB%93%B1%ED%81%B0%EC%88%98-g3/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/17299" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/17299&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;17298 오큰수와 매우 비슷한 문제다. 오큰수는 그냥 원소의크기만 비교했다면, 오등큰수는 Counter[원소] 의 크기를 비교하면 된다.&lt;/p&gt;
&lt;p&gt;첫풀이&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Countern&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="c1"&gt;#정답c=Counter(a) #카운터로 빈도수 세기s=list()for i in range(n):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]]:&lt;/span&gt; &lt;span class="c1"&gt;##만약 스택의 마지막의 빈도수가 새로운 빈도수보다 적을때까지&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;#싹다처내고 b[r]=a[i] #정답인덱스에 오동큰수 업데이트 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;#원소값과 원소자릿값 묶어서 넣기 print(* b) #정답싹다꺼내기&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;좀더 깔끔하게 바꾼거&lt;/p&gt;
&lt;p&gt;굳이 원소가 들어가지않고, c[원소] 즉 빈도수가 들어있어도 상관없다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Countern&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="c1"&gt;#정답c=Counter(a) #카운터로 빈도수 세기s=list()for i in range(n):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cnt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt; &lt;span class="c1"&gt;#a[i]의 빈도수&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;cnt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;##만약 스택의 마지막의 빈도수가 새로운 빈도수보다 적을때까지&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;#싹다처내고 b[r]=a[i] #정답인덱스에 오동큰수 업데이트 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;cnt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;#원소의 빈도수와 원소자릿값 묶어서 넣기 print(* b) #정답싹다꺼내기&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 17298 오큰수</title><link>https://log.j2234.cc/posts/2022-tistory/010-%EB%B0%B1%EC%A4%80-17298-%EC%98%A4%ED%81%B0%EC%88%98/</link><pubDate>Fri, 11 Mar 2022 13:22:22 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/010-%EB%B0%B1%EC%A4%80-17298-%EC%98%A4%ED%81%B0%EC%88%98/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/17298" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/17298&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;17298번: 오큰수첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, &amp;hellip;, AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.www.acmicpc.net&lt;/p&gt;
&lt;p&gt;골드치고 쉽다고 생각했는데 역시나였다.&lt;/p&gt;
&lt;p&gt;처음에 값이 중복될수 있다는 생각을 못하고 삽질을 많이 했다.&lt;/p&gt;

&lt;h3 class="relative group"&gt;
 &lt;div id="" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;기본값 -1이 n개 들어있는 정답을 만들어 준다.&lt;/p&gt;
&lt;p&gt;stack에 처음숫자를 넣고 (스택에 추가할때 속도를 위해 원소값과 원소의 자릿값을 같이 묶어 넣는다)&lt;/p&gt;</description></item><item><title>백준 10799 쇠막대기</title><link>https://log.j2234.cc/posts/2022-tistory/009-%EB%B0%B1%EC%A4%80-10799-%EC%87%A0%EB%A7%89%EB%8C%80%EA%B8%B0/</link><pubDate>Thu, 10 Mar 2022 23:02:28 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/009-%EB%B0%B1%EC%A4%80-10799-%EC%87%A0%EB%A7%89%EB%8C%80%EA%B8%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/10799" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/10799&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;10799번: 쇠막대기여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저www.acmicpc.net&lt;/p&gt;
&lt;p&gt;문제는 간단한데 문제가 뭔소린지 이해하기가 어려웠다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="n"&gt;stack&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;(&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;stack&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;(&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;(&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#레이저일경우&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;stack&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;#레이저의시작을 제거하고&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stack&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;#잘린막대기의 갯수를 더한다 else: #막대기일경우&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;#막대기의 끝을 더하고 stack.pop() #막대기를빼줌print(answer)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 17413. 단어뒤집기2</title><link>https://log.j2234.cc/posts/2022-tistory/008-%EB%B0%B1%EC%A4%80-17413.-%EB%8B%A8%EC%96%B4%EB%92%A4%EC%A7%91%EA%B8%B02/</link><pubDate>Thu, 10 Mar 2022 11:48:01 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/008-%EB%B0%B1%EC%A4%80-17413.-%EB%8B%A8%EC%96%B4%EB%92%A4%EC%A7%91%EA%B8%B02/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/17413" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/17413&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="c1"&gt;##정답모을거stack1=[] ## 그냥단어모을거stack2=[] ## 태그모을거for i in s:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;lt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;##태그가시작되면 while stack1: ##그전에 있던 단어를 거꾸로 정답에 입력&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stack1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="n"&gt;stack2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;##태그 입력&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;##태그가끝나면 stack2.append(i)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;stack2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;##태그를 하나씩 정답에 입력 answer.append(stack2.pop(0))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;stack2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="c1"&gt;#초기화 elif stack2: #태그가진행중이면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;stack2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;#태그에 계속입력 elif i!=&amp;#39; &amp;#39;: #태그가 없고 단어가들어오면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;stack1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#만일 단어의 끝이면 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;stack1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#단어를 거꾸로입력하고 answer.append(stack1.pop())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;#공백하나추가while stack1: #남은단어있으면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stack1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="c1"&gt;#거꾸로해서 추가print(&amp;#39;&amp;#39;.join(answer))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;생각해보니깐 꼭 리스트를 안말들어도&lt;/p&gt;
&lt;p&gt;단어더하기식으로해도됨!&lt;/p&gt;</description></item><item><title>백준 1158: 요세프스 문제</title><link>https://log.j2234.cc/posts/2022-tistory/007-%EB%B0%B1%EC%A4%80-1158-%EC%9A%94%EC%84%B8%ED%94%84%EC%8A%A4-%EB%AC%B8%EC%A0%9C/</link><pubDate>Tue, 08 Mar 2022 23:44:01 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/007-%EB%B0%B1%EC%A4%80-1158-%EC%9A%94%EC%84%B8%ED%94%84%EC%8A%A4-%EB%AC%B8%EC%A0%9C/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1158" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1158&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1158번: 요세푸스 문제첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)www.acmicpc.net&lt;/p&gt;
&lt;p&gt;진짜 쉬운 문제인데 그래도 집중안하면 답이 안나온다.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;#처음에 리스트가 0부터 시작하니깐 빠지고, 그 다음부턴 리스트가 1개씩 없어지니깐 빠짐&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;lt;&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;, &amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;파이썬의 deque를 이용한 방법&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;dequen&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;deque&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)])&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rotate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;#음수이므로 앞의값들을 잘라내고 뒤에 붙여넣는다. answer.append(l.popleft())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;lt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sep&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;, &amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>백준 1406. 에디터</title><link>https://log.j2234.cc/posts/2022-tistory/006-%EB%B0%B1%EC%A4%80-1406.-%EC%97%90%EB%94%94%ED%84%B0/</link><pubDate>Mon, 07 Mar 2022 14:37:55 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/006-%EB%B0%B1%EC%A4%80-1406.-%EC%97%90%EB%94%94%ED%84%B0/</guid><description>&lt;p&gt;&lt;a href="https://www.acmicpc.net/problem/1406" target="_blank" rel="noreferrer"&gt;https://www.acmicpc.net/problem/1406&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;처음에는 하나하나 노가다로 풀었는데, 그러면 무조건 시간초과가 나오게 된다.&lt;/p&gt;
&lt;p&gt;해결방법은 스택이 2개있고 그 사이에 커서가 있다고 생각하는 것이다.&lt;/p&gt;
&lt;p&gt;만일 L이라면, 스택 1의 출력을 스택 2에 입력하면 된다 (스택 1이 비었으면 무시)&lt;/p&gt;
&lt;p&gt;만일 D라면, 스택 2의 출력을 스택 1에 입력하면 된다(스택2가 비었으면 무시)&lt;/p&gt;
&lt;p&gt;만일 B라면, 스택 1의 맨 위를 날리면 된다. (역시 비면 무시)&lt;/p&gt;
&lt;p&gt;만일 p라면, 스택 1에 새 문자를 추가하면 된다.&lt;/p&gt;
&lt;p&gt;풀이를 알고 나면 정말 간단한데 풀이가 떠올르지 않는다.&lt;/p&gt;</description></item><item><title>백준 1874. 스택 수열</title><link>https://log.j2234.cc/posts/2022-tistory/005-%EB%B0%B1%EC%A4%80-1874.-%EC%8A%A4%ED%83%9D-%EC%88%98%EC%97%B4/</link><pubDate>Mon, 07 Mar 2022 12:38:40 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/005-%EB%B0%B1%EC%A4%80-1874.-%EC%8A%A4%ED%83%9D-%EC%88%98%EC%97%B4/</guid><description>&lt;p&gt;스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다.&lt;/p&gt;
&lt;p&gt;1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. 이를 계산하는 프로그램을 작성하라.&lt;/p&gt;</description></item><item><title>백준 9012 괄호</title><link>https://log.j2234.cc/posts/2022-tistory/004-%EB%B0%B1%EC%A4%80-9012-%EA%B4%84%ED%98%B8/</link><pubDate>Sun, 06 Mar 2022 22:12:24 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/004-%EB%B0%B1%EC%A4%80-9012-%EA%B4%84%ED%98%B8/</guid><description>&lt;p&gt;스택의 개념을 이용해서 &amp;lsquo;(&amp;lsquo;면 스택에 넣고 &amp;lsquo;)&amp;lsquo;면 스택에서 꺼내며, 꺼낼 &amp;lsquo;(&amp;lsquo;가 없거나 만일 끝났는데 &amp;lsquo;)가 있으면 vps가 아니다&lt;/p&gt;
&lt;p&gt;T=&lt;/p&gt;
&lt;p&gt;int&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;input&lt;/p&gt;
&lt;p&gt;())&lt;/p&gt;
&lt;p&gt;for&lt;/p&gt;
&lt;p&gt;_&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;range&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;T&lt;/p&gt;
&lt;p&gt;):&lt;/p&gt;
&lt;p&gt;l=&lt;/p&gt;
&lt;p&gt;[]&lt;/p&gt;
&lt;p&gt;a=&lt;/p&gt;
&lt;p&gt;input&lt;/p&gt;
&lt;p&gt;()&lt;/p&gt;
&lt;p&gt;answer=&lt;/p&gt;
&lt;p&gt;&amp;lsquo;YES&amp;rsquo;&lt;/p&gt;
&lt;p&gt;for&lt;/p&gt;
&lt;p&gt;i&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;a&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;if&lt;/p&gt;
&lt;p&gt;i==&lt;/p&gt;
&lt;p&gt;&amp;lsquo;(&amp;rsquo;&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;l.append&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;i&lt;/p&gt;
&lt;p&gt;)&lt;/p&gt;
&lt;p&gt;if&lt;/p&gt;
&lt;p&gt;i==&lt;/p&gt;
&lt;p&gt;&amp;lsquo;)&amp;rsquo;&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;try&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;l.pop&lt;/p&gt;
&lt;p&gt;()&lt;/p&gt;
&lt;p&gt;except&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;answer=&lt;/p&gt;
&lt;p&gt;&amp;lsquo;NO&amp;rsquo;&lt;/p&gt;
&lt;p&gt;break&lt;/p&gt;
&lt;p&gt;print&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;answer&lt;/p&gt;
&lt;p&gt;if&lt;/p&gt;
&lt;p&gt;not&lt;/p&gt;
&lt;p&gt;l&lt;/p&gt;
&lt;p&gt;else&lt;/p&gt;
&lt;p&gt;&amp;lsquo;NO&amp;rsquo;&lt;/p&gt;
&lt;p&gt;)&lt;/p&gt;</description></item><item><title>백준 10828: 스택</title><link>https://log.j2234.cc/posts/2022-tistory/003-%EB%B0%B1%EC%A4%80-10828-%EC%8A%A4%ED%83%9D/</link><pubDate>Sun, 06 Mar 2022 16:32:50 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/003-%EB%B0%B1%EC%A4%80-10828-%EC%8A%A4%ED%83%9D/</guid><description>&lt;p&gt;n=&lt;/p&gt;
&lt;p&gt;int&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;input&lt;/p&gt;
&lt;p&gt;())&lt;/p&gt;
&lt;p&gt;l=&lt;/p&gt;
&lt;p&gt;[]&lt;/p&gt;
&lt;p&gt;for&lt;/p&gt;
&lt;p&gt;_&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;range&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;n&lt;/p&gt;
&lt;p&gt;):&lt;/p&gt;
&lt;p&gt;order=&lt;/p&gt;
&lt;p&gt;input&lt;/p&gt;
&lt;p&gt;()&lt;/p&gt;
&lt;p&gt;if&lt;/p&gt;
&lt;p&gt;&amp;lsquo;push&amp;rsquo;&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;order&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;a&lt;/p&gt;
&lt;p&gt;,&lt;/p&gt;
&lt;p&gt;b=order.split&lt;/p&gt;
&lt;p&gt;()&lt;/p&gt;
&lt;p&gt;l.append&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;b&lt;/p&gt;
&lt;p&gt;)&lt;/p&gt;
&lt;p&gt;elif&lt;/p&gt;
&lt;p&gt;&amp;lsquo;pop&amp;rsquo;&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;order&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;if&lt;/p&gt;
&lt;p&gt;l&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;print&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;l&lt;/p&gt;
&lt;p&gt;[&lt;/p&gt;
&lt;p&gt;-1&lt;/p&gt;
&lt;p&gt;])&lt;/p&gt;
&lt;p&gt;del&lt;/p&gt;
&lt;p&gt;l&lt;/p&gt;
&lt;p&gt;[&lt;/p&gt;
&lt;p&gt;-1&lt;/p&gt;
&lt;p&gt;]&lt;/p&gt;
&lt;p&gt;else&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;print&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;-1&lt;/p&gt;
&lt;p&gt;)&lt;/p&gt;
&lt;p&gt;elif&lt;/p&gt;
&lt;p&gt;&amp;lsquo;size&amp;rsquo;&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;order&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;print&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;len&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;l&lt;/p&gt;
&lt;p&gt;))&lt;/p&gt;
&lt;p&gt;elif&lt;/p&gt;
&lt;p&gt;&amp;rsquo;empty'&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;order&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;if&lt;/p&gt;
&lt;p&gt;l&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;print&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;0&lt;/p&gt;
&lt;p&gt;)&lt;/p&gt;
&lt;p&gt;else&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;print&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;1&lt;/p&gt;
&lt;p&gt;)&lt;/p&gt;
&lt;p&gt;elif&lt;/p&gt;
&lt;p&gt;&amp;rsquo;top'&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;order&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;if&lt;/p&gt;
&lt;p&gt;l&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;print&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;l&lt;/p&gt;
&lt;p&gt;[&lt;/p&gt;
&lt;p&gt;-1&lt;/p&gt;
&lt;p&gt;])&lt;/p&gt;
&lt;p&gt;else&lt;/p&gt;
&lt;p&gt;:&lt;/p&gt;
&lt;p&gt;print&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;-1&lt;/p&gt;
&lt;p&gt;)&lt;/p&gt;</description></item><item><title>백준 1018</title><link>https://log.j2234.cc/posts/2022-tistory/002-%EB%B0%B1%EC%A4%80-1018/</link><pubDate>Sat, 05 Mar 2022 21:59:05 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/002-%EB%B0%B1%EC%A4%80-1018/</guid><description>&lt;p&gt;풀이 1&lt;/p&gt;
&lt;p&gt;n&lt;/p&gt;
&lt;p&gt;,&lt;/p&gt;
&lt;p&gt;m=&lt;/p&gt;
&lt;p&gt;map&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;int&lt;/p&gt;
&lt;p&gt;,&lt;/p&gt;
&lt;p&gt;input&lt;/p&gt;
&lt;p&gt;()&lt;/p&gt;
&lt;p&gt;.split&lt;/p&gt;
&lt;p&gt;())&lt;/p&gt;
&lt;p&gt;board=&lt;/p&gt;
&lt;p&gt;list&lt;/p&gt;
&lt;p&gt;()&lt;/p&gt;
&lt;p&gt;for&lt;/p&gt;
&lt;p&gt;i&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;range&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;n&lt;/p&gt;
&lt;p&gt;):&lt;/p&gt;
&lt;p&gt;board.append&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;input&lt;/p&gt;
&lt;p&gt;())&lt;/p&gt;
&lt;p&gt;min_numbers=&lt;/p&gt;
&lt;p&gt;[]&lt;/p&gt;
&lt;p&gt;for&lt;/p&gt;
&lt;p&gt;i&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;range&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;n&lt;/p&gt;
&lt;p&gt;-7&lt;/p&gt;
&lt;p&gt;):&lt;/p&gt;
&lt;p&gt;for&lt;/p&gt;
&lt;p&gt;j&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;range&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;m&lt;/p&gt;
&lt;p&gt;-7&lt;/p&gt;
&lt;p&gt;):&lt;/p&gt;
&lt;p&gt;cnt1 =&lt;/p&gt;
&lt;p&gt;0&lt;/p&gt;
&lt;p&gt;cnt2 =&lt;/p&gt;
&lt;p&gt;0&lt;/p&gt;
&lt;p&gt;for&lt;/p&gt;
&lt;p&gt;k&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;range&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;i&lt;/p&gt;
&lt;p&gt;,&lt;/p&gt;
&lt;p&gt;i+&lt;/p&gt;
&lt;p&gt;8&lt;/p&gt;
&lt;p&gt;):&lt;/p&gt;
&lt;p&gt;for&lt;/p&gt;
&lt;p&gt;l&lt;/p&gt;
&lt;p&gt;in&lt;/p&gt;
&lt;p&gt;range&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;j&lt;/p&gt;
&lt;p&gt;,&lt;/p&gt;
&lt;p&gt;j +&lt;/p&gt;
&lt;p&gt;8&lt;/p&gt;
&lt;p&gt;):&lt;/p&gt;

&lt;h2 class="relative group"&gt;체스판 규칙에 따라서
 &lt;div id="체스판-규칙에-따라서" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ec%b2%b4%ec%8a%a4%ed%8c%90-%ea%b7%9c%ec%b9%99%ec%97%90-%eb%94%b0%eb%9d%bc%ec%84%9c" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h2 class="relative group"&gt;(k+ㅣ)%2가 0인 board[k][j]는 모두 a색이어야 하고
 &lt;div id="kㅣ2가-0인-boardkj는-모두-a색이어야-하고" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#k%e3%85%a32%ea%b0%80-0%ec%9d%b8-boardkj%eb%8a%94-%eb%aa%a8%eb%91%90-a%ec%83%89%ec%9d%b4%ec%96%b4%ec%95%bc-%ed%95%98%ea%b3%a0" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h2 class="relative group"&gt;(k+ㅣ)%2가 1인 board[k][j]는 모두 b색이어야 한다.
 &lt;div id="kㅣ2가-1인-boardkj는-모두-b색이어야-한다" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#k%e3%85%a32%ea%b0%80-1%ec%9d%b8-boardkj%eb%8a%94-%eb%aa%a8%eb%91%90-b%ec%83%89%ec%9d%b4%ec%96%b4%ec%95%bc-%ed%95%9c%eb%8b%a4" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;if&lt;/p&gt;</description></item><item><title>환영합니다!</title><link>https://log.j2234.cc/posts/2022-tistory/001-%ED%99%98%EC%98%81%ED%95%A9%EB%8B%88%EB%8B%A4/</link><pubDate>Sat, 05 Mar 2022 21:45:45 +0000</pubDate><guid>https://log.j2234.cc/posts/2022-tistory/001-%ED%99%98%EC%98%81%ED%95%A9%EB%8B%88%EB%8B%A4/</guid><description>&lt;h1 class="relative group"&gt;블로그 시작
 &lt;div id="블로그-시작" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%eb%b8%94%eb%a1%9c%ea%b7%b8-%ec%8b%9c%ec%9e%91" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;</description></item></channel></rss>