<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>나의 개발자 일기</title>
    <link>https://mydevjourney.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 5 Jul 2026 06:12:33 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>easysheep</managingEditor>
    <image>
      <title>나의 개발자 일기</title>
      <url>https://tistory1.daumcdn.net/tistory/5385806/attach/6f33f94a5f304dcbbf86b772e2aa3de3</url>
      <link>https://mydevjourney.tistory.com</link>
    </image>
    <item>
      <title>백준-1912-연속합</title>
      <link>https://mydevjourney.tistory.com/108</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 문제 출처&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1912&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/1912&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1712133871138&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;1912번: 연속합&quot; data-og-description=&quot;첫째 줄에 정수 n(1 &amp;le; n &amp;le; 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1912&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1912&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bJwNZz/hyVJX6Kcx7/PJQKp7Tx6YbrkoWoudXh60/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/1912&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1912&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bJwNZz/hyVJX6Kcx7/PJQKp7Tx6YbrkoWoudXh60/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;1912번: 연속합&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 정수 n(1 &amp;le; n &amp;le; 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 풀이&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;DP방법중 BottomUp 방법을 이용하여 문제를 해결하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675258461336&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys

n = int(sys.stdin.readline())

nums = list(map(int , sys.stdin.readline().split(&quot; &quot;)))

dp =nums.copy()

for i in range(1, n):
    dp[i] = max(dp[i-1]+dp[i],dp[i])
    
print(max(dp))&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;</description>
      <category>알고리즘/동적 계획법(Dynamic Programming)</category>
      <category>1912</category>
      <category>백준</category>
      <author>easysheep</author>
      <guid isPermaLink="true">https://mydevjourney.tistory.com/108</guid>
      <comments>https://mydevjourney.tistory.com/108#entry108comment</comments>
      <pubDate>Wed, 3 Apr 2024 17:46:03 +0900</pubDate>
    </item>
    <item>
      <title>[Ubuntu]MySql-server 설치 오류? Cannot stat file /proc/528/fd/0: Permission denied</title>
      <link>https://mydevjourney.tistory.com/107</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 발생&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;docker에서 ubuntu 컨테이너를 생성한 후 Mysql-server 를 설치하는 과정에서 다음과 같은 불안한 permission denied가 발생한 것을 보았다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1711704301844&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;update-alternatives: using /var/lib/mecab/dic/ipadic-utf8 to provide /var/lib/mecab/dic/debian (mecab-dictionary) in auto mode
Setting up libhtml-parser-perl:amd64 (3.76-1build2) ...
Setting up libhttp-message-perl (6.36-1) ...
Setting up mysql-server-8.0 (8.0.36-0ubuntu0.22.04.1) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of stop.
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode       
Renaming removed key_buffer and myisam-recover options (if present)
Cannot stat file /proc/528/fd/0: Permission denied
Cannot stat file /proc/528/fd/1: Permission denied
Cannot stat file /proc/528/fd/2: Permission denied
Cannot stat file /proc/528/fd/255: Permission denied
Cannot stat file /proc/20526/fd/0: Permission denied
Cannot stat file /proc/20526/fd/1: Permission denied
Cannot stat file /proc/20526/fd/2: Permission denied
Cannot stat file /proc/20526/fd/255: Permission denied
Cannot stat file /proc/21232/fd/0: Permission denied
Cannot stat file /proc/21232/fd/1: Permission denied
Cannot stat file /proc/21232/fd/2: Permission denied
Cannot stat file /proc/21232/fd/3: Permission denied
Cannot stat file /proc/21232/fd/4: Permission denied
Cannot stat file /proc/21232/fd/5: Permission denied
Cannot stat file /proc/21232/fd/6: Permission denied
Cannot stat file /proc/21232/fd/7: Permission denied
Cannot stat file /proc/21232/fd/8: Permission denied
Cannot stat file /proc/21232/fd/10: Permission denied
Cannot stat file /proc/21233/fd/0: Permission denied
Cannot stat file /proc/21233/fd/1: Permission denied
Cannot stat file /proc/21233/fd/2: Permission denied
Cannot stat file /proc/21233/fd/3: Permission denied
Cannot stat file /proc/21233/fd/4: Permission denied
Cannot stat file /proc/21233/fd/5: Permission denied
Cannot stat file /proc/21233/fd/6: Permission denied
Cannot stat file /proc/21233/fd/7: Permission denied
Cannot stat file /proc/21233/fd/9: Permission denied
Cannot stat file /proc/21233/fd/10: Permission denied
Cannot stat file /proc/21233/fd/11: Permission denied
Cannot stat file /proc/21233/fd/12: Permission denied
Cannot stat file /proc/21234/fd/0: Permission denied
Cannot stat file /proc/21234/fd/1: Permission denied
Cannot stat file /proc/21234/fd/2: Permission denied
Cannot stat file /proc/21234/fd/3: Permission denied
Cannot stat file /proc/21234/fd/4: Permission denied
Cannot stat file /proc/21234/fd/5: Permission denied
Cannot stat file /proc/21234/fd/6: Permission denied
Cannot stat file /proc/21234/fd/7: Permission denied
Cannot stat file /proc/21234/fd/8: Permission denied
Cannot stat file /proc/21234/fd/9: Permission denied
Cannot stat file /proc/21234/fd/10: Permission denied
Cannot stat file /proc/21234/fd/11: Permission denied
Cannot stat file /proc/21234/fd/12: Permission denied
Cannot stat file /proc/21234/fd/13: Permission denied
Cannot stat file /proc/21234/fd/14: Permission denied
Cannot stat file /proc/21234/fd/15: Permission denied
Cannot stat file /proc/21234/fd/16: Permission denied
Cannot stat file /proc/21234/fd/17: Permission denied
Cannot stat file /proc/21234/fd/18: Permission denied
Cannot stat file /proc/21234/fd/19: Permission denied
Cannot stat file /proc/21234/fd/20: Permission denied
Cannot stat file /proc/21234/fd/21: Permission denied
Cannot stat file /proc/21234/fd/22: Permission denied
Cannot stat file /proc/21234/fd/23: Permission denied
Cannot stat file /proc/21234/fd/24: Permission denied
Cannot stat file /proc/21234/fd/25: Permission denied
mysqld will log errors to /var/log/mysql/error.log
mysqld is running as pid 21763&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 /var/log/mysql 경로에 있는&amp;nbsp; error.log를 살펴 보면 다음과 같았다...&lt;/p&gt;
&lt;pre id=&quot;code_1711704501831&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;2024-03-29T09:11:47.791514Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.36-0ubuntu0.22.04.1) initializing of server in progress as process 21714
2024-03-29T09:11:47.801009Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-03-29T09:11:48.610977Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-03-29T09:11:51.996262Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
2024-03-29T09:11:54.523547Z 6 [System] [MY-013172] [Server] Received SHUTDOWN from user boot. Shutting down mysqld (Version: 8.0.36-0ubuntu0.22.04.1).
2024-03-29T09:11:59.788048Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.36-0ubuntu0.22.04.1) starting as process 21761
2024-03-29T09:11:59.799174Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-03-29T09:11:59.908373Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-03-29T09:12:00.169069Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2024-03-29T09:12:00.169124Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2024-03-29T09:12:00.179121Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/tmp' in the path is accessible to all OS users. Consider choosing a different directory.
2024-03-29T09:12:00.194932Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock
2024-03-29T09:12:00.194994Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.36-0ubuntu0.22.04.1'  socket: '/tmp/tmp.BZzYMLXgRv/mysqld.sock'  port: 0  (Ubuntu).
2024-03-29T09:12:00.214386Z 0 [System] [MY-013172] [Server] Received SHUTDOWN from user &amp;lt;via user signal&amp;gt;. Shutting down mysqld (Version: 8.0.36-0ubuntu0.22.04.1).
2024-03-29T09:12:01.733331Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.36-0ubuntu0.22.04.1)  (Ubuntu).
2024-03-29T09:12:02.498245Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.36-0ubuntu0.22.04.1) starting as process 21833
2024-03-29T09:12:02.504079Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-03-29T09:12:02.616685Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-03-29T09:12:02.845675Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2024-03-29T09:12:02.845707Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2024-03-29T09:12:02.854028Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/tmp' in the path is accessible to all OS users. Consider choosing a different directory.
2024-03-29T09:12:02.885383Z 7 [System] [MY-013172] [Server] Received SHUTDOWN from user boot. Shutting down mysqld (Version: 8.0.36-0ubuntu0.22.04.1).
2024-03-29T09:12:02.888748Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '127.0.0.1' port: 33060, socket: /var/run/mysqld/mysqlx.sock
2024-03-29T09:12:04.463645Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.36-0ubuntu0.22.04.1)  (Ubuntu).&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 거의 마지막줄에 &amp;nbsp;Bind-address: '127.0.0.1' port: 33060, socket: /var/run/mysqld/mysqlx.sock 보면 33060포트에 연결이 되었다가 종료 되었다.&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2.해결&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://askubuntu.com/questions/1129029/getting-strange-errors-while-downloading-mysql&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://askubuntu.com/questions/1129029/getting-strange-errors-while-downloading-mysql&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1711704875738&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;Getting strange errors while downloading mysql&quot; data-og-description=&quot;I'm trying to install mysql to my new laptop and I'm getting these funny errors. Renaming removed key_buffer and myisam-recover options (if present) Cannot stat file /proc/2801/fd/1023: Permission&quot; data-og-host=&quot;askubuntu.com&quot; data-og-source-url=&quot;https://askubuntu.com/questions/1129029/getting-strange-errors-while-downloading-mysql&quot; data-og-url=&quot;https://askubuntu.com/questions/1129029/getting-strange-errors-while-downloading-mysql&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/rqBVb/hyVGQ1fyrp/KztYmhi4ZlXYnAEOOt0jl0/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316,https://scrap.kakaocdn.net/dn/bJmK35/hyVGK01LWi/XUNgYo6kMPsdOmXgbv9Jr1/img.png?width=1347&amp;amp;height=297&amp;amp;face=0_0_1347_297,https://scrap.kakaocdn.net/dn/crdKRc/hyVGG5ojko/oJVcl5chiy9oOzm30j9dh0/img.png?width=592&amp;amp;height=542&amp;amp;face=0_0_592_542&quot;&gt;&lt;a href=&quot;https://askubuntu.com/questions/1129029/getting-strange-errors-while-downloading-mysql&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://askubuntu.com/questions/1129029/getting-strange-errors-while-downloading-mysql&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/rqBVb/hyVGQ1fyrp/KztYmhi4ZlXYnAEOOt0jl0/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316,https://scrap.kakaocdn.net/dn/bJmK35/hyVGK01LWi/XUNgYo6kMPsdOmXgbv9Jr1/img.png?width=1347&amp;amp;height=297&amp;amp;face=0_0_1347_297,https://scrap.kakaocdn.net/dn/crdKRc/hyVGG5ojko/oJVcl5chiy9oOzm30j9dh0/img.png?width=592&amp;amp;height=542&amp;amp;face=0_0_592_542');&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;Getting strange errors while downloading mysql&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I'm trying to install mysql to my new laptop and I'm getting these funny errors. Renaming removed key_buffer and myisam-recover options (if present) Cannot stat file /proc/2801/fd/1023: Permission&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;askubuntu.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;p data-ke-size=&quot;size16&quot;&gt;일단&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.&amp;nbsp; libaio가 설치되어 있는지 다음 명령어를 통해 확인한다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0c0d0e; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;b&gt;&lt;span style=&quot;background-color: #e3e6e8; color: #0c0d0e; text-align: left;&quot;&gt;apt-cache policy libaio1&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0c0d0e; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1-1. 다음 명령어를 통해 버전이 나오지 않는 다면 다음 명령어를 통해 설치 있다면 스킵&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0c0d0e; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;background-color: #e3e6e8; color: #0c0d0e; text-align: left;&quot;&gt;sudo apt-get install libaio1 libaio-dev&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0c0d0e; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0c0d0e; text-align: left;&quot;&gt;2. aptitude 설치 후 &lt;b&gt;&lt;span style=&quot;color: #0c0d0e; text-align: left;&quot;&gt;aptitude&lt;span&gt;&amp;nbsp;통해서&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;update (설치 되어 있으면 update만)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0c0d0e; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0c0d0e; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;background-color: #dddddd;&quot;&gt;sudo apt-get install aptitude&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0c0d0e; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;sudo&amp;nbsp;aptitude&amp;nbsp;update&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0c0d0e; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;sudo&amp;nbsp;aptitude&amp;nbsp;upgrade&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0c0d0e; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;여기까지 하고 다시 mysql설치 하니 위의 오류가 발생하지 않았다. 위의 링크에 다른 방법도 있으니 이 방법이 안되면 시도해 보자!!&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #0c0d0e; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;3. 번외&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;libaio란?(페도라에서의 libaio의 기능을 설명하는 글이다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://pagure.io/libaio&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://pagure.io/libaio&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1711707230265&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;Overview - libaio - Pagure.io&quot; data-og-description=&quot;&quot; data-og-host=&quot;pagure.io&quot; data-og-source-url=&quot;https://pagure.io/libaio&quot; data-og-url=&quot;https://pagure.io/libaio&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://pagure.io/libaio&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://pagure.io/libaio&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;Overview - libaio - Pagure.io&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;pagure.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;aptitude란?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요약: apt-get보다 강력한 패키지 매니저이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.debian.org/doc/manuals/aptitude/rn01re01.en.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.debian.org/doc/manuals/aptitude/rn01re01.en.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1711707340246&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;aptitude&quot; data-og-description=&quot;--show-summary used with -v to display all the reasons a package is installed: $ aptitude -v --show-summary why foomatic-db Packages requiring foomatic-db: cupsys-driver-gutenprint foomatic-db-engine foomatic-db-gutenprint foomatic-db-hpijs foomatic-filter&quot; data-og-host=&quot;www.debian.org&quot; data-og-source-url=&quot;https://www.debian.org/doc/manuals/aptitude/rn01re01.en.html&quot; data-og-url=&quot;https://www.debian.org/doc/manuals/aptitude/rn01re01.en.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.debian.org/doc/manuals/aptitude/rn01re01.en.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.debian.org/doc/manuals/aptitude/rn01re01.en.html&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;aptitude&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;--show-summary used with -v to display all the reasons a package is installed: $ aptitude -v --show-summary why foomatic-db Packages requiring foomatic-db: cupsys-driver-gutenprint foomatic-db-engine foomatic-db-gutenprint foomatic-db-hpijs foomatic-filter&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.debian.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Ubuntu</category>
      <category>Cannot stat file /proc/528/fd/0: Permission denied</category>
      <category>Docker</category>
      <category>Linux</category>
      <category>mysql</category>
      <category>ubuntu</category>
      <author>easysheep</author>
      <guid isPermaLink="true">https://mydevjourney.tistory.com/107</guid>
      <comments>https://mydevjourney.tistory.com/107#entry107comment</comments>
      <pubDate>Fri, 29 Mar 2024 19:17:09 +0900</pubDate>
    </item>
    <item>
      <title>백준-11726-2Xn 타일링</title>
      <link>https://mydevjourney.tistory.com/106</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 문제 출처&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11726&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/11726&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1711602811776&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;11726번: 2&amp;times;n 타일링&quot; data-og-description=&quot;2&amp;times;n 크기의 직사각형을 1&amp;times;2, 2&amp;times;1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2&amp;times;5 크기의 직사각형을 채운 한 가지 방법의 예이다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/11726&quot; data-og-url=&quot;https://www.acmicpc.net/problem/11726&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bc9qW7/hyVDw321JU/sawF38yxfKjeijR2hN1ka0/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480,https://scrap.kakaocdn.net/dn/bteh5q/hyVDs8n412/kAWrPVs69ajkfj74eYGn4k/img.png?width=1381&amp;amp;height=554&amp;amp;face=0_0_1381_554&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11726&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/11726&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bc9qW7/hyVDw321JU/sawF38yxfKjeijR2hN1ka0/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480,https://scrap.kakaocdn.net/dn/bteh5q/hyVDs8n412/kAWrPVs69ajkfj74eYGn4k/img.png?width=1381&amp;amp;height=554&amp;amp;face=0_0_1381_554');&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;11726번: 2&amp;times;n 타일링&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;2&amp;times;n 크기의 직사각형을 1&amp;times;2, 2&amp;times;1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2&amp;times;5 크기의 직사각형을 채운 한 가지 방법의 예이다.&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 풀이&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;맨 앞의 사각 형이 &quot;|&quot; 로 시작하거나 &quot;=&quot; 로 시작하는 경우 2개로 생각하면 된다. &lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1675258461336&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 입력
import sys

n = int(sys.stdin.readline())



if n &amp;lt;=3:
    print(n)

else:
    dp = [1] * (n+1)
    dp[1] = 1
    dp[2] = 2
    for i in range(2 ,  n+1):
        # dp[i-1] 는  &quot;|&quot; 로 시작할 경우 
        # dp[i-2]는  &quot;=&quot;로 시작할 경우
        dp[i] = (dp[i-1] +dp[i-2])%10007
    print(dp[n])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;</description>
      <category>알고리즘/동적 계획법(Dynamic Programming)</category>
      <category>11726</category>
      <category>2*n 타일링</category>
      <category>다이나믹 프로그래밍</category>
      <category>백준</category>
      <author>easysheep</author>
      <guid isPermaLink="true">https://mydevjourney.tistory.com/106</guid>
      <comments>https://mydevjourney.tistory.com/106#entry106comment</comments>
      <pubDate>Thu, 28 Mar 2024 14:16:56 +0900</pubDate>
    </item>
    <item>
      <title>백준-1931-회의실 배정</title>
      <link>https://mydevjourney.tistory.com/105</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 문제 출처&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1931&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/1931&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1711517052650&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;1931번: 회의실 배정&quot; data-og-description=&quot;(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1931&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1931&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/BSHdl/hyVGGX4VkR/Jvr29kNPAvkXSzjaYVXWZK/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/1931&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1931&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/BSHdl/hyVGGX4VkR/Jvr29kNPAvkXSzjaYVXWZK/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;1931번: 회의실 배정&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 풀이&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;제일 회의가&amp;nbsp; 빨리 끝나는 순으로 생각해주는 그리디 알고리즘 문제이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675258461336&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys
# 입력받기
n = int(sys.stdin.readline())
greedy_list = []
for _ in range(n):
    start , end = map(int,sys.stdin.readline().split(&quot; &quot;))
    greedy_list.append((start,end))

# 끝나는 시간을 기준으로 정렬
# 이때 끝나는 시간이 같ㅇ을 경우 시작하는 시간으로 정렬해야 한다.
# 왜냐하면 2 4 와 4 4 의 경우 4 4 가 먼저와 2 4가 스킵될 때와 같이
# 끝나는 시간이 같아 넘어가는 경우가 있기 때문이다.
greedy_list.sort(key = lambda x : (x[1],x[0]) )
count = 1
start,end = greedy_list[0]

if n &amp;gt; 1:
    # 전 회의 끝나는 시간 보다 같거나 뒤인 시작 시간이 있는 경우
    # 해당 회의 시간을 전회의 시간으로 업데이트 한다. 
    for s,e in greedy_list[1:]:
        if s &amp;lt; end:
            continue
        if s &amp;gt;=end:
            count+=1
            end = e
            
print(count)&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;</description>
      <category>알고리즘/그리드 알고리즘</category>
      <category>1931</category>
      <category>그리디 알고리즘</category>
      <category>백준</category>
      <category>회의실 배정</category>
      <author>easysheep</author>
      <guid isPermaLink="true">https://mydevjourney.tistory.com/105</guid>
      <comments>https://mydevjourney.tistory.com/105#entry105comment</comments>
      <pubDate>Wed, 27 Mar 2024 14:32:57 +0900</pubDate>
    </item>
    <item>
      <title>백준-1003-피보나치 함수</title>
      <link>https://mydevjourney.tistory.com/104</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 문제 출처&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1003&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/1003&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1711445273749&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;1003번: 피보나치 함수&quot; data-og-description=&quot;각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1003&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1003&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/l7uZz/hyVGTbTQLO/PEKH8i29t0oSzM73RiMBVk/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/1003&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1003&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/l7uZz/hyVGTbTQLO/PEKH8i29t0oSzM73RiMBVk/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;1003번: 피보나치 함수&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 풀이&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;&quot;&gt;Dynamic Programming &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;botton up 방법을 사용하여 입력 받은 값 중 최대값의 0,1의 개수를 구하면 그 밑의 값은 dp배열에 저장되어 있다. 그것을 이용하여 풀면 다음과 같은 코드가 나온다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1675258461336&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;## 입력 받는 부분
import sys
t = int(sys.stdin.readline())
input_list = []
for i in range(t):
    input_list.append(int(sys.stdin.readline()))
    

## 입력받은 값중 최대의 값
max_test_case = max(input_list)

##  botton up에서 사용할 배열
dp = [[0 , 0] for _ in range(max_test_case+2)]

## 반복문을 사용하기 위해 0과 1은 미리 정해놓는다.
dp[0] = [1,0]
dp[1] = [0,1]

## dp[i] 는 dp[i-2], dp[i-1] 의 0,1 개수의 합과 같다. 
for i in range(2,max_test_case+1):
    dp[i] = [dp[i-2][0]+dp[i-1][0] , dp[i-2][1] + dp[i-1][1]]

## 입력받은 값에 따라 0,1 개수를 출력해준다. 
for input_num in input_list:
    print(dp[input_num][0],dp[input_num][1] )&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;</description>
      <category>알고리즘/동적 계획법(Dynamic Programming)</category>
      <category>1003</category>
      <category>dynamic programming</category>
      <category>백준</category>
      <category>피보나치 함수</category>
      <author>easysheep</author>
      <guid isPermaLink="true">https://mydevjourney.tistory.com/104</guid>
      <comments>https://mydevjourney.tistory.com/104#entry104comment</comments>
      <pubDate>Tue, 26 Mar 2024 18:38:00 +0900</pubDate>
    </item>
    <item>
      <title>백준-1463-1로 만들기</title>
      <link>https://mydevjourney.tistory.com/103</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 문제 출처&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1463&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/1463&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1711351463192&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;1463번: 1로 만들기&quot; data-og-description=&quot;첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1463&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1463&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/8nR9y/hyVGIVxpZ0/BSSHwyvUWf8sNfHc6NWBj1/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/1463&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1463&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/8nR9y/hyVGIVxpZ0/BSSHwyvUWf8sNfHc6NWBj1/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;1463번: 1로 만들기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 풀이&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Dynamic Programming 방법 중 botton&amp;nbsp; up 방법을 사용하여 문제를 해결하였다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1675258461336&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 입력받기
import sys
n = int(sys.stdin.readline())
# 미리값을 저장할 배열
dp = [0] * (n+2)

# 1~3까지는 바로 출력한다.
if n==1:
    print(0)
elif n==2 | n==3:
    print(1)
else:
    dp[2] = 1
    dp[3] = 1
    for i in range(4, n+1):
        # 숫자가 i일 때 
        # 3가지 방법 중 최소 횟수인 방법을 사용하여 저장한다.
        dp[i] = min(
            dp[i-1],
            dp[int(i/2)] if i%2 == 0 else 1000001,
            dp[int(i/3)] if i%3 == 0 else 1000001
        ) + 1
    print(dp[n])&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;</description>
      <category>알고리즘/동적 계획법(Dynamic Programming)</category>
      <category>1463</category>
      <category>1로 만들기</category>
      <category>dynamic programming</category>
      <category>Python</category>
      <category>백준</category>
      <category>파이썬</category>
      <author>easysheep</author>
      <guid isPermaLink="true">https://mydevjourney.tistory.com/103</guid>
      <comments>https://mydevjourney.tistory.com/103#entry103comment</comments>
      <pubDate>Mon, 25 Mar 2024 16:28:53 +0900</pubDate>
    </item>
    <item>
      <title>백준-2579-계단 오르기</title>
      <link>https://mydevjourney.tistory.com/102</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 문제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2579&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/2579&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1710847407468&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;2579번: 계단 오르기&quot; data-og-description=&quot;계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. &amp;lt;그림 1&amp;gt;과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2579&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2579&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bzlg6w/hyVDw11gU6/i4TVqpKJReHTLQAoBm9LqK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480,https://scrap.kakaocdn.net/dn/eXCFM/hyVALmdGc6/n6z1UKEiFT2GhMOMOC4jT1/img.png?width=962&amp;amp;height=610&amp;amp;face=0_0_962_610,https://scrap.kakaocdn.net/dn/d9J1zW/hyVDxzQ5oG/l7ky5U0I6bd3uXK0jM8Ag1/img.png?width=962&amp;amp;height=514&amp;amp;face=0_0_962_514&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2579&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2579&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bzlg6w/hyVDw11gU6/i4TVqpKJReHTLQAoBm9LqK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480,https://scrap.kakaocdn.net/dn/eXCFM/hyVALmdGc6/n6z1UKEiFT2GhMOMOC4jT1/img.png?width=962&amp;amp;height=610&amp;amp;face=0_0_962_610,https://scrap.kakaocdn.net/dn/d9J1zW/hyVDxzQ5oG/l7ky5U0I6bd3uXK0jM8Ag1/img.png?width=962&amp;amp;height=514&amp;amp;face=0_0_962_514');&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;2579번: 계단 오르기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. &amp;lt;그림 1&amp;gt;과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점&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;h2 data-ke-size=&quot;size26&quot;&gt;2. 해결법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;n번째 계단으로 마무리 해야 하므로&lt;/b&gt;&lt;/u&gt; 각 계단에 도착했을 때 나올 수 있는 경우는 2가지이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;i&gt;1. n-2 번째 계단을 들린 후 오는 경우&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;i&gt;2. n-3 , n-1번째 계단을 들린 후 오는 경우&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두가지중&lt;b&gt; 최대값&lt;/b&gt;을 선택하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 코드로 나타내면 다음과 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1710847674989&quot; class=&quot;inform7&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;# dp = 지난 계단의 정수 합을 저장하는 배열
# stairs = 각 계단에 적힌 정수값
dp[i] = (stairs[i]+ max((stairs[i-1] + dp[i-3]) ,dp[i-2]))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때 n이 1 또는2일 때는 다 지나는 것이 최대값이기 때문에&amp;nbsp; 따로 if문을 통해 계산해 주어야한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위를 토대로 작성한 전체 코드는 다음과 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1710847941990&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import sys
# 계단의 수
n = int(sys.stdin.readline())
# 시작계단을 0으로 둔다.
stairs = [0]

for _ in range(n):
    stairs.append(int(sys.stdin.readline()))
# 시작 계단을 포함해서 n+1개 이다. 
dp = [0] * (n+1)

# n = 1,2일때는 바로 출력한다.
if n == 1 : 
    print(stairs[1])
elif n==2:
    print(stairs[2] + stairs[1])
# n=3일 때 부터 다음과 같은 규칙이 적용된다.
else:
    dp[1] = stairs[1]
    dp[2] = stairs[1] + stairs[2]
    dp[3] = stairs[3] + max(stairs[1],stairs[2])

    for i in range(4 , n+1):
    	# i번째 계단에 도착할 때 최대값은 해당 계단값에 2칸 전의 최대값 또는 1칸 전의
        # 최대값+ 전칸값 중 더 큰값이 된다.
        dp[i] = (stairs[i]+ max((stairs[i-1] + dp[i-3]) ,dp[i-2]))     
    print(dp[n])&lt;/code&gt;&lt;/pre&gt;</description>
      <category>알고리즘/동적 계획법(Dynamic Programming)</category>
      <category>2579</category>
      <category>dynamic programming</category>
      <category>계단 오르기</category>
      <category>백준</category>
      <author>easysheep</author>
      <guid isPermaLink="true">https://mydevjourney.tistory.com/102</guid>
      <comments>https://mydevjourney.tistory.com/102#entry102comment</comments>
      <pubDate>Tue, 19 Mar 2024 20:33:44 +0900</pubDate>
    </item>
    <item>
      <title>[Python]1655-백준-가운데를 말해요</title>
      <link>https://mydevjourney.tistory.com/101</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 문제 출처&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1655&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/1655&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1710484913831&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;1655번: 가운데를 말해요&quot; data-og-description=&quot;첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1655&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1655&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/MQESw/hyVxr2OMe3/zO1GC4gN2qIZ1XoEfXqwK1/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/1655&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1655&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/MQESw/hyVxr2OMe3/zO1GC4gN2qIZ1XoEfXqwK1/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;1655번: 가운데를 말해요&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 문제 풀이&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 막무가내로 풀었을 때는 정상적으로 답이 나왔으나 시간이 초과되었다.&lt;/p&gt;
&lt;pre id=&quot;code_1710484963239&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;n = int(input())

nums = []
nums.append(int(input()))
print(nums[0])

if n &amp;gt;=2:
    for i in range(1,n):
        temp = int(input())
        nums.append(temp)
        nums.sort()
        if len(nums)%2 == 0:
            middle_idx = int(len(nums)/2)
            print(min(nums[middle_idx-1] , nums[middle_idx]))
        else:
            print(nums[int((len(nums)-1)/2)])

n = int(input())
shouts_count = 1
nums = [10001] * n
nums[0] = int(input())
print(nums[0])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 생각한 첫번째 해결책은 가운데 값을 기준으로 작은 값 큰 값 리스트들을 만들어서 sort를 나누어서 하였지만 역시나 안되었다.&lt;/p&gt;
&lt;pre id=&quot;code_1710485083250&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;n = int(input())

middle_list = [int(input()),int(input())]
print(middle_list[0])
middle_list.sort()
print(min(middle_list))
small_list = []
large_list = []

for i in range(2,n):
    temp = int(input())
    if (i+1) % 2 ==0:
        if temp&amp;lt;=middle_list[0]:
            if small_list[-1]&amp;lt;=temp:
                middle_list = [temp , middle_list[0]]
            else:
                middle_list = [small_list.pop() , middle_list[0]]
                small_list.append(temp)
        else:
            if large_list[-1]&amp;gt;=temp:
                middle_list = [ middle_list[0],temp]
            else:
                middle_list = [ middle_list[0],large_list.pop()]
                large_list.append(temp)
                
    else:
        if temp &amp;lt;middle_list[0]:
            small_list.append(temp)
            large_list.append(middle_list[1])
            
        elif middle_list[0]&amp;lt;=temp &amp;lt; middle_list[1]:
            small_list.append(middle_list[0])
            large_list.append(middle_list[1])
            middle_list[0] = temp
        else:
            large_list.append(temp)
            small_list.append(middle_list[0])
            middle_list[0] = middle_list[1]
    small_list.sort()
    large_list.sort(reverse=True)
    print(middle_list[0])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 찬찬히 살펴보니 sort하는 것보다는 &lt;b&gt;우선순위 큐&lt;/b&gt;로 Max Heap , Min Heap을 구현하여 정렬 하는 것이 O(logn) 의 시간 복잡도를 가지고 있는 것을 생각 하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 파이썬의 내장 함수인 Heapq에는 max heap 이 구현되어 있지 않기 때문에 min heap에 값을 넣을 때 -1을 곱해서 넣는 방식으로 구현하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 중간을 기준으로 좌측은 max heap , 우측은 min Heap으로 구현한 코드이다.&lt;/p&gt;
&lt;pre id=&quot;code_1710485618867&quot; class=&quot;livecodeserver&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;import heapq
import sys
## input 보다 sys.stdin.readline() 더 빠르다.
## input 사용했을 때는 시간 초과 됨
n = int(sys.stdin.readline())

# 가운데값
middle = int(sys.stdin.readline())
print(middle)
# 각각 우측(min_heap) 좌측(max_heap) 이다
# 이름에 헷갈리지 말자.
min_heap = []
max_heap = []

# 돌아가는 것을 보고 싶으면 밑에 print문 주석을 풀어주자..
for i in range(1,n):
    # print(&quot;input:&quot; , end = &quot; &quot;)
    temp = int(sys.stdin.readline())
    # 만약 입력값이 중앙값보다 크면
    if temp &amp;gt; middle:
        heapq.heappush(min_heap,temp)
        # 좌측 값들의 수가 우측값들의 수보다 2개 적으면 중앙값 갱신
        ## 중간이 2개일 때 큰값은 우측에 넣주기 때문에 2개이다.
        if len(min_heap) &amp;gt; (len(max_heap)+1):
            # max heap 이기 때문에 -1을 곱해서 넣어주어야 한다.
            heapq.heappush(max_heap , -middle)
            middle = heapq.heappop(min_heap)
            
    # 만약 입력값이 중앙값보다 작으면
    else:
        heapq.heappush(max_heap,-temp)
        # 우측값들의 수가 좌측값보다 작으면 중앙값 갱신
        if len(min_heap) &amp;lt; len(max_heap):
            heapq.heappush(min_heap , middle)
            middle = -(heapq.heappop(max_heap))
        
    # print(&quot;right:&quot;,min_heap)
    # print(&quot;left:&quot;,max_heap)
    # print(&quot;mid:&quot;,middle)
    print(middle)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>알고리즘</category>
      <category>1655</category>
      <category>heap</category>
      <category>Python</category>
      <category>가운데를 말해요</category>
      <category>백준</category>
      <author>easysheep</author>
      <guid isPermaLink="true">https://mydevjourney.tistory.com/101</guid>
      <comments>https://mydevjourney.tistory.com/101#entry101comment</comments>
      <pubDate>Fri, 15 Mar 2024 15:54:27 +0900</pubDate>
    </item>
    <item>
      <title>[Docker]error: version in &amp;quot;./docker-compose.yaml&amp;quot; is unsupported. you might be seeing this error because you're using the wrong compose file version. either specify a supported version (e.g &amp;quot;2.2&amp;quot; or &amp;quot;3.3&amp;quot;) and place your service definitions under the `s..</title>
      <link>https://mydevjourney.tistory.com/100</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;0. 발생&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;airflow docker-compose를 진행 중에 다음과 같은 오류가 발생 하였다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;error:&amp;nbsp;version&amp;nbsp;in&amp;nbsp;&quot;./docker-compose.yaml&quot;&amp;nbsp;is&amp;nbsp;unsupported.&amp;nbsp;you&amp;nbsp;might&amp;nbsp;be&amp;nbsp;seeing&amp;nbsp;this&amp;nbsp;error&amp;nbsp;because&amp;nbsp;you're&amp;nbsp;using&amp;nbsp;the&amp;nbsp;wrong&amp;nbsp;compose&amp;nbsp;file&amp;nbsp;version.&amp;nbsp;either&amp;nbsp;specify&amp;nbsp;a&amp;nbsp;supported&amp;nbsp;version&amp;nbsp;(e.g&amp;nbsp;&quot;2.2&quot;&amp;nbsp;or&amp;nbsp;&quot;3.3&quot;)&amp;nbsp;and&amp;nbsp;place&amp;nbsp;your&amp;nbsp;service&amp;nbsp;definitions&amp;nbsp;under&amp;nbsp;the&amp;nbsp;`services`&amp;nbsp;key,&amp;nbsp;or&amp;nbsp;omit&amp;nbsp;the&amp;nbsp;`version`&amp;nbsp;key&amp;nbsp;and&amp;nbsp;place&amp;nbsp;your&amp;nbsp;service&amp;nbsp;definitions&amp;nbsp;at&amp;nbsp;the&amp;nbsp;root&amp;nbsp;of&amp;nbsp;the&amp;nbsp;file&amp;nbsp;to&amp;nbsp;use&amp;nbsp;version&amp;nbsp;1.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/49839028/how-to-upgrade-docker-compose-to-latest-version&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://stackoverflow.com/questions/49839028/how-to-upgrade-docker-compose-to-latest-version&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1700799885987&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;How to upgrade docker-compose to latest version&quot; data-og-description=&quot;I have installed docker-compose using the command sudo apt install docker-compose It installed docker-compose version 1.8.0 and build unknown I need the latest version of docker-compose or at le...&quot; data-og-host=&quot;stackoverflow.com&quot; data-og-source-url=&quot;https://stackoverflow.com/questions/49839028/how-to-upgrade-docker-compose-to-latest-version&quot; data-og-url=&quot;https://stackoverflow.com/questions/49839028/how-to-upgrade-docker-compose-to-latest-version&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/BfkFZ/hyUB9gBIkt/xnHqFKYlrR4zBc5h1oCSL1/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/49839028/how-to-upgrade-docker-compose-to-latest-version&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://stackoverflow.com/questions/49839028/how-to-upgrade-docker-compose-to-latest-version&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/BfkFZ/hyUB9gBIkt/xnHqFKYlrR4zBc5h1oCSL1/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316');&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;How to upgrade docker-compose to latest version&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I have installed docker-compose using the command sudo apt install docker-compose It installed docker-compose version 1.8.0 and build unknown I need the latest version of docker-compose or at le...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;stackoverflow.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 원인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;docker-compose version이 1.23으로 해당 컴포즈 파일을 지원하지 않았고 최신 도커 컴포즈를 설치 해야 했다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 구 버전 제거&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 했던 방법에 맞추어 제거&lt;/p&gt;
&lt;pre id=&quot;code_1700803671264&quot; class=&quot;bash&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# apt-get docker-compose 설치시
sudo apt-get remove docker-compose

# curl
sudo rm /usr/local/bin/docker-compose

# pip
pip uninstall docker-compose&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 새로운 버전 설치&amp;nbsp;&lt;/h3&gt;
&lt;pre id=&quot;code_1700803880136&quot; class=&quot;elixir&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;#최신 버전 저장
VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | grep -Po '&quot;tag_name&quot;: &quot;\K.*\d')
#설치 경로 지정
DESTINATION=/usr/local/bin/docker-compose
# 설치
sudo curl -L https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m) -o $DESTINATION
# 설치 경로의 권한 설정
sudo chmod 755 $DESTINATION
# 버전 확인 
docker-compose -v&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Docker</category>
      <category>Airflow</category>
      <category>Docker</category>
      <category>docker-compose</category>
      <category>error</category>
      <category>error: version in &amp;quot;./docker-compose.yaml&amp;quot; is unsupported.</category>
      <author>easysheep</author>
      <guid isPermaLink="true">https://mydevjourney.tistory.com/100</guid>
      <comments>https://mydevjourney.tistory.com/100#entry100comment</comments>
      <pubDate>Fri, 24 Nov 2023 14:32:14 +0900</pubDate>
    </item>
    <item>
      <title>[Gradio]그라디오를 이용한 간단한 이미지 필터 웹</title>
      <link>https://mydevjourney.tistory.com/99</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;0. 목적&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;1.코드&lt;/p&gt;
&lt;pre id=&quot;code_1700725585296&quot; class=&quot;reasonml&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;import numpy as np
import gradio as gr

# 이미지 생성 하는 함수 아직 API가 구현이 되지 않았으므로 세피아 필터로 구현
def predict_image(img , select_model , gender):
    sepia_filter = np.array([
        [0.393, 0.769, 0.189],
        [0.349, 0.686, 0.168],
        [0.272, 0.534, 0.131]
    ])
    sepia_img = img.dot(sepia_filter.T)
    sepia_img /= sepia_img.max()
    print(gender,select_model)
    print(img)
    return sepia_img

# gradio blocks layout사용
with gr.Blocks() as demo:
    gr.Markdown(&quot;Profile Image demo&quot;)

    # 이미지 탭 추후에 다른 탭을 추가 가능
    with gr.Tab(&quot;Image&quot;):
        with gr.Row():
            image_input = gr.Image()
            image_output = gr.Image()
        image_button = gr.Button(&quot;Create&quot;)
    # 세부 옵션
    with gr.Accordion(&quot;Option&quot; ,open = False):
        select_model = gr.Dropdown([&quot;first&quot;, &quot;second&quot;, &quot;third&quot;], type=&quot;value&quot;,value=&quot;second&quot;,label = &quot;model&quot;,interactive =True)
        gender = gr.Radio([&quot;man&quot;, &quot;woman&quot;], type=&quot;value&quot; , value=&quot;woman&quot;,label=&quot;gender&quot;,interactive=True)


    image_button.click(predict_image, inputs=[image_input,select_model,gender], outputs=image_output)

# 로그인창을 거쳐가게 한다.
if __name__ == &quot;__main__&quot;:
    demo.launch(auth=(&quot;admin&quot;,&quot;admin&quot;))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.결과&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5KTSE/btsANudUU07/405rzkK6dZbJiTyPAXFX9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5KTSE/btsANudUU07/405rzkK6dZbJiTyPAXFX9k/img.png&quot; data-alt=&quot;로그인 창&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5KTSE/btsANudUU07/405rzkK6dZbJiTyPAXFX9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5KTSE%2FbtsANudUU07%2F405rzkK6dZbJiTyPAXFX9k%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;566&quot; height=&quot;351&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;351&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;로그인 창&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1517&quot; data-origin-height=&quot;909&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c24Zsu/btsALVjgepH/Dk9Q8h3vmWDFTWXaffADf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c24Zsu/btsALVjgepH/Dk9Q8h3vmWDFTWXaffADf1/img.png&quot; data-alt=&quot;실행 후&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c24Zsu/btsALVjgepH/Dk9Q8h3vmWDFTWXaffADf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc24Zsu%2FbtsALVjgepH%2FDk9Q8h3vmWDFTWXaffADf1%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;1517&quot; height=&quot;909&quot; data-origin-width=&quot;1517&quot; data-origin-height=&quot;909&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행 후&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>장난감  프로젝트</category>
      <category>gradio</category>
      <author>easysheep</author>
      <guid isPermaLink="true">https://mydevjourney.tistory.com/99</guid>
      <comments>https://mydevjourney.tistory.com/99#entry99comment</comments>
      <pubDate>Thu, 23 Nov 2023 16:51:29 +0900</pubDate>
    </item>
  </channel>
</rss>