<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>코딩 연구소</title>
    <link>https://apple-forest.tistory.com/</link>
    <description>코딩 일기장</description>
    <language>ko</language>
    <pubDate>Wed, 1 Jul 2026 12:30:06 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>코딩의 숲</managingEditor>
    <item>
      <title>CH1 개론</title>
      <link>https://apple-forest.tistory.com/193</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;629&quot; data-origin-height=&quot;590&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhq6oe/btsFFPE3IFc/1uJnyXZgyNRbgBDCBV04A1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhq6oe/btsFFPE3IFc/1uJnyXZgyNRbgBDCBV04A1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhq6oe/btsFFPE3IFc/1uJnyXZgyNRbgBDCBV04A1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdhq6oe%2FbtsFFPE3IFc%2F1uJnyXZgyNRbgBDCBV04A1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;629&quot; height=&quot;590&quot; data-origin-width=&quot;629&quot; data-origin-height=&quot;590&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완전변태:번데기있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>2024년도 3학년1학기/인간과 곤충</category>
      <author>코딩의 숲</author>
      <guid isPermaLink="true">https://apple-forest.tistory.com/193</guid>
      <comments>https://apple-forest.tistory.com/193#entry193comment</comments>
      <pubDate>Mon, 11 Mar 2024 13:30:44 +0900</pubDate>
    </item>
    <item>
      <title>Could not resolve all files for configuration ':classpath'.</title>
      <link>https://apple-forest.tistory.com/192</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;JDK버전을 아마존1.7로 변경할것&lt;/p&gt;</description>
      <category>TIL(today i learned)/SpringBoot</category>
      <author>코딩의 숲</author>
      <guid isPermaLink="true">https://apple-forest.tistory.com/192</guid>
      <comments>https://apple-forest.tistory.com/192#entry192comment</comments>
      <pubDate>Wed, 6 Mar 2024 13:54:08 +0900</pubDate>
    </item>
    <item>
      <title>Google Auth</title>
      <link>https://apple-forest.tistory.com/191</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=xg1yWvlzzpk&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=xg1yWvlzzpk&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=xg1yWvlzzpk&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/3km10/hyVf6JLz8L/VtTpDbre3Os9atMyK8fEl1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;장고(Django) 사용자관리 - 소셜 로그인 Google&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/xg1yWvlzzpk&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Groom Ide/DJANGO</category>
      <author>코딩의 숲</author>
      <guid isPermaLink="true">https://apple-forest.tistory.com/191</guid>
      <comments>https://apple-forest.tistory.com/191#entry191comment</comments>
      <pubDate>Sat, 3 Feb 2024 15:50:19 +0900</pubDate>
    </item>
    <item>
      <title>모델생성 명령어</title>
      <link>https://apple-forest.tistory.com/190</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;python&amp;nbsp;manage.py&amp;nbsp;inspectdb&amp;nbsp;&amp;gt;&amp;nbsp;models.py &lt;/p&gt;</description>
      <category>Groom Ide/DJANGO</category>
      <author>코딩의 숲</author>
      <guid isPermaLink="true">https://apple-forest.tistory.com/190</guid>
      <comments>https://apple-forest.tistory.com/190#entry190comment</comments>
      <pubDate>Tue, 16 Jan 2024 20:43:50 +0900</pubDate>
    </item>
    <item>
      <title>관리자 계정 추가</title>
      <link>https://apple-forest.tistory.com/189</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #f8f8f8; color: #000000; text-align: left;&quot;&gt;python manage.py createsuperuser&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;</description>
      <category>Groom Ide/DJANGO</category>
      <author>코딩의 숲</author>
      <guid isPermaLink="true">https://apple-forest.tistory.com/189</guid>
      <comments>https://apple-forest.tistory.com/189#entry189comment</comments>
      <pubDate>Tue, 16 Jan 2024 19:29:55 +0900</pubDate>
    </item>
    <item>
      <title>TemplateDoesNotExist</title>
      <link>https://apple-forest.tistory.com/188</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;326&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I9jP3/btsDxxeV47k/gcFDDCkEKB01T9iW8B9PE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I9jP3/btsDxxeV47k/gcFDDCkEKB01T9iW8B9PE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I9jP3/btsDxxeV47k/gcFDDCkEKB01T9iW8B9PE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI9jP3%2FbtsDxxeV47k%2FgcFDDCkEKB01T9iW8B9PE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;326&quot; height=&quot;168&quot; data-origin-width=&quot;326&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Groom Ide/DJANGO</category>
      <author>코딩의 숲</author>
      <guid isPermaLink="true">https://apple-forest.tistory.com/188</guid>
      <comments>https://apple-forest.tistory.com/188#entry188comment</comments>
      <pubDate>Tue, 16 Jan 2024 16:07:09 +0900</pubDate>
    </item>
    <item>
      <title>MYSQL 시작</title>
      <link>https://apple-forest.tistory.com/187</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1705135175020&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;MySQL 접속 명령어&quot; data-og-description=&quot;1.데이터 베이스 접속하기 mysql -u 사용자명 -p 데이터베이스이름 mysql -u root (계정과 비번을 만들지 않았을때) mysql -u root -p(루트 비번이 있을때) 2.데이터베이스 추가 mysqladmin -u root -p create 데이터&quot; data-og-host=&quot;vkein.tistory.com&quot; data-og-source-url=&quot;https://vkein.tistory.com/entry/MySQL-%EC%A0%91%EC%86%8D-%EB%AA%85%EB%A0%B9%EC%96%B4&quot; data-og-url=&quot;https://vkein.tistory.com/entry/MySQL-%EC%A0%91%EC%86%8D-%EB%AA%85%EB%A0%B9%EC%96%B4&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cBYdNt/hyU2qJVcm3/9nhAkAqC7Nu5IkNHj2pD8K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/gBD66/hyU2l2WhZc/1H1QOuKkVCRkuDOgTw0PS0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://vkein.tistory.com/entry/MySQL-%EC%A0%91%EC%86%8D-%EB%AA%85%EB%A0%B9%EC%96%B4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://vkein.tistory.com/entry/MySQL-%EC%A0%91%EC%86%8D-%EB%AA%85%EB%A0%B9%EC%96%B4&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cBYdNt/hyU2qJVcm3/9nhAkAqC7Nu5IkNHj2pD8K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/gBD66/hyU2l2WhZc/1H1QOuKkVCRkuDOgTw0PS0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;MySQL 접속 명령어&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1.데이터 베이스 접속하기 mysql -u 사용자명 -p 데이터베이스이름 mysql -u root (계정과 비번을 만들지 않았을때) mysql -u root -p(루트 비번이 있을때) 2.데이터베이스 추가 mysqladmin -u root -p create 데이터&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;vkein.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;권한및 생성&lt;/p&gt;
&lt;figure id=&quot;og_1705134615050&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Django Error loading MySQLdb module 해결법&quot; data-og-description=&quot;안녕하세요 기트리입니다.블로그가 서버 마이그레이션을 하지 않아 죽은지도 모르고 보다가 이제야 살려 놓습니다.그리고 다시 기억을 되짚어 살리기엔&amp;hellip;&quot; data-og-host=&quot;kitle.xyz&quot; data-og-source-url=&quot;https://kitle.xyz/post/174/&quot; data-og-url=&quot;https://kitle.xyz/post/174/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://kitle.xyz/post/174/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kitle.xyz/post/174/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Django Error loading MySQLdb module 해결법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;안녕하세요 기트리입니다.블로그가 서버 마이그레이션을 하지 않아 죽은지도 모르고 보다가 이제야 살려 놓습니다.그리고 다시 기억을 되짚어 살리기엔&amp;hellip;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kitle.xyz&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오류 제어&lt;/p&gt;
&lt;figure id=&quot;og_1705132992340&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;구름IDE에 MYSQL 설치/활용&quot; data-og-description=&quot;코틀린으로 앱개발 공부를 하면서 외부 서버 연동을 준비중입니다. 보통 안드로이드에서는 구글 파이어베이스 연동을 다루는 예제가 많은데요. 속도가 느린 문제가 있다고 하고 No-SQL 이 아닌 SQ&quot; data-og-host=&quot;itadventure.tistory.com&quot; data-og-source-url=&quot;https://itadventure.tistory.com/598&quot; data-og-url=&quot;https://itadventure.tistory.com/598&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/duDHgf/hyU2oyAgBS/nQJ9ICcl31WKz9hoWyPshk/img.png?width=557&amp;amp;height=449&amp;amp;face=0_0_557_449,https://scrap.kakaocdn.net/dn/bkcBv6/hyU5KGLxOl/G2d89lnfY8EX0Eag3BDask/img.png?width=557&amp;amp;height=449&amp;amp;face=0_0_557_449,https://scrap.kakaocdn.net/dn/ZtFpr/hyU2mtYOld/Vlt9REWNA4oOP1Y9m2r5W0/img.png?width=1150&amp;amp;height=241&amp;amp;face=0_0_1150_241&quot;&gt;&lt;a href=&quot;https://itadventure.tistory.com/598&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://itadventure.tistory.com/598&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/duDHgf/hyU2oyAgBS/nQJ9ICcl31WKz9hoWyPshk/img.png?width=557&amp;amp;height=449&amp;amp;face=0_0_557_449,https://scrap.kakaocdn.net/dn/bkcBv6/hyU5KGLxOl/G2d89lnfY8EX0Eag3BDask/img.png?width=557&amp;amp;height=449&amp;amp;face=0_0_557_449,https://scrap.kakaocdn.net/dn/ZtFpr/hyU2mtYOld/Vlt9REWNA4oOP1Y9m2r5W0/img.png?width=1150&amp;amp;height=241&amp;amp;face=0_0_1150_241');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;구름IDE에 MYSQL 설치/활용&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코틀린으로 앱개발 공부를 하면서 외부 서버 연동을 준비중입니다. 보통 안드로이드에서는 구글 파이어베이스 연동을 다루는 예제가 많은데요. 속도가 느린 문제가 있다고 하고 No-SQL 이 아닌 SQ&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;itadventure.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;mysql -u root -p&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;루트 로그인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '패스워드';&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;root계정 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;flush privileges; &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;변경된 사용자 권한을 즉시 적용하기 위해 사용하는 명령어&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;create database 데이터베이스 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테이블 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;create user user@localhost identified by '패스워드';&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반계정 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;grant all privileges on mydb.* to 'user'@'localhost' identified by '패스워드';&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;권한부여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Groom Ide/MYSQL</category>
      <author>코딩의 숲</author>
      <guid isPermaLink="true">https://apple-forest.tistory.com/187</guid>
      <comments>https://apple-forest.tistory.com/187#entry187comment</comments>
      <pubDate>Sat, 13 Jan 2024 17:03:19 +0900</pubDate>
    </item>
    <item>
      <title>에러 [To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.]</title>
      <link>https://apple-forest.tistory.com/165</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://we-always-fight-with-code.tistory.com/99&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://we-always-fight-with-code.tistory.com/99&lt;/a&gt;&lt;/p&gt;</description>
      <category>프로젝트</category>
      <author>코딩의 숲</author>
      <guid isPermaLink="true">https://apple-forest.tistory.com/165</guid>
      <comments>https://apple-forest.tistory.com/165#entry165comment</comments>
      <pubDate>Fri, 15 Sep 2023 15:23:30 +0900</pubDate>
    </item>
    <item>
      <title>LCS(Longest Common Subsequence - 최장 공통 수열) 알고리즘</title>
      <link>https://apple-forest.tistory.com/160</link>
      <description>&lt;h2 id=&quot;longest-common-subsequence-substring&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;Longest Common Subsequence 그리고 Longest Common Substring&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;LCS에는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;최장 공통부분수열(Longest Common Subsequence)&lt;/b&gt;과&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;최장 공통 문자열(Longest Common Substring)&lt;/b&gt;을 말한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;문자열&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;ABCDEF&lt;/b&gt;와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;GBCDFE&lt;/b&gt;를 이용하여 차이점을 예시로 들어보면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;366&quot;&gt;&lt;a href=&quot;https://velog.io/@emplam27/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-LCS-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Longest-Common-Substring%EC%99%80-Longest-Common-Subsequence&quot; target=&quot;_blank&quot; title=&quot;출처&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MOlrp/btso5XsGXtf/N2GcUyUaq4J07KMekt1KVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMOlrp%2Fbtso5XsGXtf%2FN2GcUyUaq4J07KMekt1KVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1125&quot; height=&quot;366&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;366&quot;/&gt;&lt;/a&gt;&lt;figcaption&gt;출처:emplam27(사진에 링크 첨부함)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;위 그림처럼&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;longest-common-subsequence-substring&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&amp;nbsp;Subsequence은 연속적일 필요 없이 문자를 뛰어넘어도 되지만 Substring 같은 경우에는 문자가 아예 일치해야만 한다.&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 토대로 각각 점화식을 만들어보면 다음과 같다.&lt;/p&gt;
&lt;h2 id=&quot;longest-common-subsequence-substring&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Substring&lt;/b&gt;&lt;/h2&gt;
&lt;pre class=&quot;java&quot; style=&quot;color: #000000; text-align: left;&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;if (A[i] == B[j])
	dp[i][j] = dp[i - 1][j - 1] + 1;
else
	dp[i][j] = 0;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;longest-common-subsequence-substring&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&amp;nbsp;Subsequence&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1690435389005&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if (A[i] == B[j])
	dp[i][j] = dp[i - 1][j - 1] + 1;
else
	dp[b][a] = Math.max(dp[a-1][b],dp[a][b-1]);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해당점화식으로 푼 간단한 dp문제)&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690435650136&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;9251번: LCS&quot; data-og-description=&quot;LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/9251&quot; data-og-url=&quot;https://www.acmicpc.net/problem/9251&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hSynF/hyTrJ4eqTz/Brwa0WUMRrfxI10XcwcCqK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/9251&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/9251&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hSynF/hyTrJ4eqTz/Brwa0WUMRrfxI10XcwcCqK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;9251번: LCS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1690435679093&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class V9251 {
    public static char[] A,B;
    public static Integer dp[][]= new Integer[1000][1000];
    public static int lsc(int a,int b){
        if(a&amp;lt;0 || b&amp;lt;0 )
            return 0;
        if(dp[b][a]==null){
            dp[b][a]=0;
            if(A[a]==B[b])
                dp[b][a]=lsc(a-1,b-1)+1;
            else
                dp[b][a]=Math.max(lsc(a-1,b),lsc(a,b-1));

        }
        return dp[b][a];
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
        A= br.readLine().toCharArray();
        B= br.readLine().toCharArray();
        System.out.println(lsc(A.length-1,B.length-1));




    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>TIL(today i learned)</category>
      <author>코딩의 숲</author>
      <guid isPermaLink="true">https://apple-forest.tistory.com/160</guid>
      <comments>https://apple-forest.tistory.com/160#entry160comment</comments>
      <pubDate>Thu, 27 Jul 2023 14:28:25 +0900</pubDate>
    </item>
    <item>
      <title>LIS(Longest Increasing Subsequence - 최장 증가 수열) 알고리즘</title>
      <link>https://apple-forest.tistory.com/159</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;해당 알고리즘은 배열중 가장 긴 증가수열을 찾는 알고리즘이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 17px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라는 배열이 있다고 가정해 보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 51px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; height: 17px;&quot;&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;{1,2,3}, {4,5}, {2}중에서 가장 긴 증가수열을 찾으면 {1,2,3}이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 문제를 해결하고자 나온 것이 &lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #505567; text-align: justify;&quot;&gt;LIS(Longest Increasing Subsequence - 최장 증가수열) 알고리즘이다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot;&gt;기본적으로 DP를 사용하면 N^2이 걸리고 이분탐색사용 시 NlogN의 시간이 걸린다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot;&gt;예시 코드)&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1690275379038&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for (int k = 0; k &amp;lt; n; k++){
	length[k] = 1;
    for (int i = 0; i &amp;lt; k; i++){
        if(arr[i] &amp;lt; arr[k]){
            length[k] = max(length[k], length[i] + 1);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;length [i]는 i번째 인덱스에서 끝나는 최장 증가 부분 수열의 길이&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot;&gt;를 의미한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot;&gt;ex) length[4]=3&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot;&gt;ex)length[3]=2&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운용 문제)&lt;/p&gt;
&lt;figure id=&quot;og_1690275295864&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;2565번: 전깃줄&quot; data-og-description=&quot;첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2565&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2565&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/OLP16/hyTqyIK26C/BAS3F5n6y1HUK5ScCPzKSk/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480,https://scrap.kakaocdn.net/dn/bwxyxF/hyTqpSzRjw/qBbiJzTLMSr8pN53FZTjMK/img.png?width=366&amp;amp;height=576&amp;amp;face=0_0_366_576&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2565&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2565&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/OLP16/hyTqyIK26C/BAS3F5n6y1HUK5ScCPzKSk/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480,https://scrap.kakaocdn.net/dn/bwxyxF/hyTqpSzRjw/qBbiJzTLMSr8pN53FZTjMK/img.png?width=366&amp;amp;height=576&amp;amp;face=0_0_366_576');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;2565번: 전깃줄&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1690275259676&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static int N;
    public static int[][] Line;
    public static int dp[];
    public static void solve(){
        Arrays.fill(dp,1);
        for(int i=0;i&amp;lt;N;i++)
            for(int j=0;j&amp;lt;i;j++)
                if(Line[i][1]&amp;gt;Line[j][1])
                    dp[i]=Math.max(dp[i], dp[j]+1);

        Arrays.sort(dp);
        System.out.println(N-dp[dp.length-1]);
    }


    public static void main(String[] args) throws IOException {
        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
        N=Integer.parseInt(br.readLine());
        dp= new int[N];
        Line=new int[N][2];
        StringTokenizer st;
        for(int i=0;i&amp;lt;N;i++){
            st= new StringTokenizer(br.readLine());
            Line[i][0]=Integer.parseInt(st.nextToken());
            Line[i][1]=Integer.parseInt(st.nextToken());
        }
        Arrays.sort(Line, new Comparator&amp;lt;int[]&amp;gt;() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[0] - o2[0];
            }
        });

        solve();


    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 적은 전선제거=전체 전선-최대한 많이 설치할 수 있는 전선의 개수&lt;/p&gt;</description>
      <category>TIL(today i learned)</category>
      <author>코딩의 숲</author>
      <guid isPermaLink="true">https://apple-forest.tistory.com/159</guid>
      <comments>https://apple-forest.tistory.com/159#entry159comment</comments>
      <pubDate>Tue, 25 Jul 2023 17:02:55 +0900</pubDate>
    </item>
  </channel>
</rss>