<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Stanase</title>
    <link>https://stanase.tistory.com/</link>
    <description>Forging, For Love</description>
    <language>ko</language>
    <pubDate>Sun, 6 Sep 2026 10:02:32 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>7IHIN</managingEditor>
    <image>
      <title>Stanase</title>
      <url>https://tistory1.daumcdn.net/tistory/7064868/attach/9f33bac23bff442cb9c8d8c876e9f8db</url>
      <link>https://stanase.tistory.com</link>
    </image>
    <item>
      <title>자율주행을 위한 OpenCV 기능분석</title>
      <link>https://stanase.tistory.com/23</link>
      <description>&lt;h2 id=&quot;%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%20%EA%B0%9C%EC%9A%94-1&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;지난 이야기&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;지난 과정에서는 L298N 모터 드라이버와 DC 모터 4개를 구동하는 하드웨어를 구축하였습니다.&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;프로젝트 개요&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이번 과정은 OpenCV의 기능을 확인하고 다양한 프로젝트에서 어떠한 차선인식 방법이 사용되는지,&lt;br /&gt;어떠한 방법으로 자율주행을 구현하는 것이 적합한지에 관해 알아보겠습니다.&lt;br /&gt;&lt;br /&gt;학부생수준에서 정리하는 것이기 때문에.. 원리를 깊게 알아본다기보다 이러한 기능이 있구나~ 정도로 정리하겠습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h2 id=&quot;%ED%95%98%EB%93%9C%EC%9B%A8%EC%96%B4%20%EA%B5%AC%EC%84%B1-1-1&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;주요 기능&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;HSV 색상/채도/명도 방식 변환&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;Grayscale Conversion&amp;nbsp; 흑백 이미지 변환&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;Canny Edge Detection 경계선 검출&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;Region of Interest 관심영역 지정&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;Hough Transformation 직선검출&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;Gaussian Blur 노이즈제거&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;각 주요기능에 대해 하나씩 알아보도록 하겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;1. HSV 색상/채도/명도&amp;nbsp;방식&amp;nbsp;변환&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HSV는 색상/채도/명도로 색인식을 하는 방식입니다. 보통 RGB방식을 잘 아실텐데요, &lt;br /&gt;RGB방식은 Red, Green, Blue 3색으로 색상의 색을 인식합니다.&lt;br /&gt;이러한 방법 중 HSV를 사용하는 이유는 첫째, 조명변화에 둔감합니다. RGB방식의 경우 조명이 변화하면&lt;br /&gt;세가지의 값들이 모두 흔들리기 시작합니다. 하지만 HSV는 밝기(V)와 색상(H)을 분리해두기때문에&amp;nbsp;&lt;br /&gt;같은색이여도 더 안정적인 출력이 가능합니다.실제로 코드를 제작하여 테스트를 해보면서 확인해본결과,&lt;br /&gt;RGB 방식에서 흰색에 그림자가 드리워지면 흰색으로 인식을 못하는 반면, HSV는 흰색으로 잘 인식하는것을 알 수 있습니다.&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;1024&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vLEBE/btsNo1YAduO/CDmlbDXGi2FOKvlPE24CTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vLEBE/btsNo1YAduO/CDmlbDXGi2FOKvlPE24CTK/img.png&quot; data-alt=&quot;HSV&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vLEBE/btsNo1YAduO/CDmlbDXGi2FOKvlPE24CTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvLEBE%2FbtsNo1YAduO%2FCDmlbDXGi2FOKvlPE24CTK%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;542&quot; height=&quot;407&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;HSV&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;2. &lt;span style=&quot;text-align: left;&quot;&gt;Grayscale Conversion 흑백 이미지 변환&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Graysacle 변환은 RGB 방식에서 사용가능한 변환방법으로, RGB 3가지로 변환된 값을 흑백이미지로 바꾸는 방법입니다.&lt;br /&gt;이렇게 흑백으로 변환하는 이유는 연산처리를 빠르게 하여 주행라인을 찾아내는 속도를 빠르게 하기 위해 &lt;br /&gt;사용하는 경우가 많습니다. HSV에서는 따로 처리를 더 거칠수록 느려지기떄문에 기본 HSV만 사용합니다.&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;437&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/skFF9/btsNsGsenzY/YxRXgGZz7eJSRNz02XGny0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/skFF9/btsNsGsenzY/YxRXgGZz7eJSRNz02XGny0/img.png&quot; data-alt=&quot;RGB to Grayscale&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/skFF9/btsNsGsenzY/YxRXgGZz7eJSRNz02XGny0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FskFF9%2FbtsNsGsenzY%2FYxRXgGZz7eJSRNz02XGny0%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;832&quot; height=&quot;437&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;437&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;RGB to Grayscale&lt;/figcaption&gt;
&lt;/figure&gt;
&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;3. Canny&amp;nbsp;Edge&amp;nbsp;Detection&amp;nbsp;경계선&amp;nbsp;검출&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Canny Edge Deyection은 그림의 경계선을 검출해내는 기능입니다.&lt;br /&gt;이렇게 경계면을 찾는 원리는 급격하게 색이 변화하는 부분을 검출해내어 그림의 경계면만 검출 해낼 수 있습니다.&lt;br /&gt;마찬가지로 연산처리속도가 좋아진다는 장점이 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;451&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZoT7p/btsNtkoVhGr/kBKXjr2rF4p2HBufvGb4vK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZoT7p/btsNtkoVhGr/kBKXjr2rF4p2HBufvGb4vK/img.png&quot; data-alt=&quot;Canny Edge Detection&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZoT7p/btsNtkoVhGr/kBKXjr2rF4p2HBufvGb4vK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZoT7p%2FbtsNtkoVhGr%2FkBKXjr2rF4p2HBufvGb4vK%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;1280&quot; height=&quot;451&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;451&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Canny Edge Detection&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4.&lt;span&gt; Region&amp;nbsp;of&amp;nbsp;Interest&amp;nbsp;관심영역&amp;nbsp;지정&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Region of Interest, ROI라고도 하는 관심영역 지정은 특정 부분만을 지정하여 연산범위에 넣는 기능입니다.&lt;br /&gt;사실 자율주행에서 연산속도가 가장중요하지않을까 싶습니다. 따라서 해당 기능도 원하는 특정 부분, &lt;br /&gt;보통 중앙하단을 ROI로 지정하여 해당 부분의 차선이나 어디로 차선이 꺾이는지에 대해 검출하고,&lt;br /&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;전체를 영역을 지정하는 것보다&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;더 빠르게 검출해낼 수 있다는 장점이 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;459&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YeARM/btsNsjrcIv7/uygilMN6jbj6JdyeSK90Kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YeARM/btsNsjrcIv7/uygilMN6jbj6JdyeSK90Kk/img.png&quot; data-alt=&quot;ROI&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YeARM/btsNsjrcIv7/uygilMN6jbj6JdyeSK90Kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYeARM%2FbtsNsjrcIv7%2FuygilMN6jbj6JdyeSK90Kk%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;459&quot; height=&quot;272&quot; data-origin-width=&quot;459&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ROI&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5.&lt;span&gt;&lt;span&gt; Hough&amp;nbsp;Transformation&amp;nbsp;직선검출&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;허프변환이라고 하는 이 기능은, 이미지에서 직선을 검출해내는 기능입니다. &lt;br /&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;1920&quot; data-origin-height=&quot;1260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbovAt/btsNpVc7vPv/QC4TCpXlcRFOkRJbrgAMkk/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbovAt/btsNpVc7vPv/QC4TCpXlcRFOkRJbrgAMkk/img.webp&quot; data-alt=&quot;Hough Transformation&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbovAt/btsNpVc7vPv/QC4TCpXlcRFOkRJbrgAMkk/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbovAt%2FbtsNpVc7vPv%2FQC4TCpXlcRFOkRJbrgAMkk%2Fimg.webp&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;1920&quot; height=&quot;1260&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1260&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Hough Transformation&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;6.&lt;span&gt;&lt;span&gt;&lt;span&gt; Gaussian&amp;nbsp;Blur&amp;nbsp;노이즈제거&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가우시안 블러는 이미지에 환경적이유나 카메라 스펙에 의해 노이즈가 발생하게 되는데 이를 먼저 말한 케니 엣지 디텍션, &lt;br /&gt;경계면을 검출하는 과정에서 일일히 다 점으로 인식을하기 때문에! 연산이 또 느려지거나 &lt;br /&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;1096&quot; data-origin-height=&quot;554&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWrnJ7/btsNsNL5EBf/qBkBbcS1p6dNFaMdF2eZi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWrnJ7/btsNsNL5EBf/qBkBbcS1p6dNFaMdF2eZi0/img.png&quot; data-alt=&quot;Gaussian Blur&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWrnJ7/btsNsNL5EBf/qBkBbcS1p6dNFaMdF2eZi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWrnJ7%2FbtsNsNL5EBf%2FqBkBbcS1p6dNFaMdF2eZi0%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;1096&quot; height=&quot;554&quot; data-origin-width=&quot;1096&quot; data-origin-height=&quot;554&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Gaussian Blur&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;이렇게 6가지 OpenCV에서 지원하는 6가지 기능에 대해 알아보았습니다.&lt;br /&gt;&lt;span style=&quot;text-align: left;&quot;&gt;긴 글 읽어주셔서 감사합니다. 좋은 하루 보내세요.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Canny Edge Detection</category>
      <category>Gaussian blur</category>
      <category>grayscale conversion</category>
      <category>hough transformation</category>
      <category>HSV</category>
      <category>opencv</category>
      <category>region of interest</category>
      <category>자율주행</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/23</guid>
      <comments>https://stanase.tistory.com/23#entry23comment</comments>
      <pubDate>Sun, 20 Apr 2025 13:52:52 +0900</pubDate>
    </item>
    <item>
      <title>Port Forwarding on Raspberry Pi</title>
      <link>https://stanase.tistory.com/21</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;환경확인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 사용하고 있는 하드웨어(HW)는 Rasberry Pi 5,&lt;br /&gt;공유기는 KT 공유기를 기준으로 작성하겠습니다.&lt;br /&gt;&lt;br /&gt;현재 SSH 접속은 내부망, 즉 같은 wifi가 연결되어 있을 때만 사용할 수 있게 되어있습니다.&lt;br /&gt;이걸 외부에서 접속하거나, 웹사이트를 외부에서도 확인할 수 있게 하기 위해 포트포워딩 과정을 진행하려고 합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;포트포워딩&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부망에서 라즈베리파이로 접속하기 위한 과정은 외부망-공유기(내부망)-라즈베리파이의 단계로 연결됩니다.&lt;br /&gt;외부에서 라즈베리파이로 접근하기 위해&amp;nbsp; 외부 IP를 알아야 합니다. 외부 IP를 확인하는 방법으로는 &lt;br /&gt;GUI 환경의 경우 네이버나 구글에 &quot;내 IP&quot; 등으로 검색하면 외부에서 보이는 내 IP, 외부 IP를 확인할 수 있고 &lt;br /&gt;CLI 환경에서는 아래 코드를 작성하여 IP를 확인할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1738948756953&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;curl ifconfig.me&lt;/code&gt;&lt;/pre&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;1760&quot; data-origin-height=&quot;776&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tRiBI/btsMaCzAoNC/OoJKalrGWhvQkNmKKMa5x1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tRiBI/btsMaCzAoNC/OoJKalrGWhvQkNmKKMa5x1/img.png&quot; data-alt=&quot;네이버 &amp;quot;내 IP&amp;quot; 검색&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tRiBI/btsMaCzAoNC/OoJKalrGWhvQkNmKKMa5x1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtRiBI%2FbtsMaCzAoNC%2FOoJKalrGWhvQkNmKKMa5x1%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;422&quot; height=&quot;186&quot; data-origin-width=&quot;1760&quot; data-origin-height=&quot;776&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;네이버 &quot;내 IP&quot; 검색&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 외부에서 접근 시에 어떤 IP주소로 접근해야 하는지 알 수 있습니다.&lt;br /&gt;&lt;br /&gt;이제 포트포워딩 설정을 위해 172.30.1.254를 주소창에 입력하여 KT GiGA WiFi home 환경에 접속합니다.&lt;br /&gt;이때는 같은 와이파이에 연결되어 있는 기기를 사용하여 접근하여야 합니다.&lt;br /&gt;&lt;br /&gt;초기 ID와 PW는 다음과 같습니다.&lt;br /&gt;ID : ktuser&lt;br /&gt;PW : megaap 또는 homehub&lt;br /&gt;&lt;br /&gt;다음으로는 장치설정-트래픽 관리- 포트포워딩 설정에 접근한 뒤, &lt;br /&gt;외부포트에 원하는 포트번호를 선정하여 입력합니다.&lt;br /&gt;&lt;u&gt;▶(되도록 자주 사용되는 포트번호는 피하는 것이 좋습니다. 80 [http], 443 [https], 22 [ssh])&lt;/u&gt;&lt;br /&gt;내부 IP주소에 라즈베리파이의 내부 IP를 입력해야 합니다. &lt;br /&gt;확인하는 방법으로는 터미널에서 해당 명령어를 입력하여 확인할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1738949937962&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;hostname -I #1번방법
ifconfig #2번방법&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1680&quot; data-origin-height=&quot;811&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mONZc/btsMbsXlpZ2/6sLsQXkuOmfV9j4W4Jpxz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mONZc/btsMbsXlpZ2/6sLsQXkuOmfV9j4W4Jpxz0/img.png&quot; data-alt=&quot;KT GiGA WiFi home&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mONZc/btsMbsXlpZ2/6sLsQXkuOmfV9j4W4Jpxz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmONZc%2FbtsMbsXlpZ2%2F6sLsQXkuOmfV9j4W4Jpxz0%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;734&quot; height=&quot;354&quot; data-origin-width=&quot;1680&quot; data-origin-height=&quot;811&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;KT GiGA WiFi home&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 내부포트는 22번, 설명은 SSH로 작성하고 추가한 뒤, Putty를 이용하여 SSH 접속환경을 만들어낼 수 있습니다.&lt;br /&gt;외부에서 접속 시에는 가장 처음확인하였던 외부 IP주소를 Host Name 입력창에 저장하고, Port 입력창에는&amp;nbsp;&lt;br /&gt;설정해 두었던 외부포트의 번호를 입력하여 접속할 수 있습니다.&lt;br /&gt;&lt;br /&gt;작은 사용팁으로는 하단의 Saved Sessions에 이름을 작성하여 Save 해두면 매번 일일이 IP와 Port 번호를 입력할 필요 없이&lt;br /&gt;클릭하여 SSH 접속을 진행할 수 있습니다.&amp;nbsp;&amp;nbsp;&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;1050&quot; data-origin-height=&quot;1043&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7TlvB/btsMbspus1R/rHO0iKWX2BhrkbN1zBaeHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7TlvB/btsMbspus1R/rHO0iKWX2BhrkbN1zBaeHK/img.png&quot; data-alt=&quot;Putty&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7TlvB/btsMbspus1R/rHO0iKWX2BhrkbN1zBaeHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7TlvB%2FbtsMbspus1R%2FrHO0iKWX2BhrkbN1zBaeHK%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;398&quot; height=&quot;395&quot; data-origin-width=&quot;1050&quot; data-origin-height=&quot;1043&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Putty&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;긴 글 읽어주셔서 감사합니다. 좋은 하루 보내세요.&lt;/p&gt;</description>
      <category>Raspberry Pi(라즈베리파이)</category>
      <category>port forwarding</category>
      <category>putty</category>
      <category>Raspberry Pi</category>
      <category>stanase</category>
      <category>라즈베리파이</category>
      <category>포트포워딩</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/21</guid>
      <comments>https://stanase.tistory.com/21#entry21comment</comments>
      <pubDate>Sat, 8 Feb 2025 02:51:15 +0900</pubDate>
    </item>
    <item>
      <title>Raspberry Pi 5 OS Configuration Selection</title>
      <link>https://stanase.tistory.com/20</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;개인용 웹서버, TTS, Slack 보고기능등을 24시간 가동하기 위해 라즈베리파이 5와&amp;nbsp;&lt;br /&gt;Argon NEO 5 케이스, M.2 NVME PCIE 256GB를 구매하여 장착하였습니다.&lt;br /&gt;&lt;br /&gt;OS의 종류로는 Raspbian( Raspberry Pi OS ) 64-bit와 Ubuntu 24.04 LTS 두 가지를 고려하였습니다.&lt;br /&gt;고려한 이유는 Raspberry Pi OS 의 경우 하드웨어 제조사에서 만든 OS라서 최적화가 가장 잘되어있는 강점이 있었고,&lt;br /&gt;나중에 진행할 프로젝트에서 ROS, ROS2도 Docker로 설정이 가능하다고 확인해서 좋을 것 같다고 생각했습니다.&lt;br /&gt;우분투의 경우 최신버전이고, 유명하기도 하고.. GPT에 물어보았을 때는 이러한 답변을 받았었습니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 90.1163%; height: 380px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;항목&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;Ubuntu (Server/Desktop)&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;Raspberry Pi OS (Raspbian)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;성능&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;일반적인 ARM64 최적화&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;Raspberry Pi에 최적화된 성능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;패키지 지원&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;최신 패키지 및 소프트웨어 지원&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;Debian 기반, 더 안정적인 패키지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;설치 난이도&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;다소 복잡 (서버/데스크탑 선택 가능)&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;간단하고 Pi 공식 지원 이미지 제공&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;커널 지원&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;일반 Linux 커널&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;Pi 하드웨어에 맞춰 최적화된 커널&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;하드웨어 호환성&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;Argon NEO 5, GPIO 일부 제약 가능&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;모든 GPIO 및 하드웨어 완벽 호환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;시스템 안정성&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;최신 기술로 다소 불안정할 가능성&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;안정적이며 장기 지원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;NVMe 지원&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;공식적으로 잘 지원&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;NVMe 일부 제약 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;개발 환경&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;최신 버전의 개발 도구 지원 용이&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;안정 버전 위주 개발환경&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;&amp;nbsp;TTS 서비스&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;다양한 최신 TTS 엔진 사용 가능&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;구버전 소프트웨어 필요 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;Slack 보고&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;최신 API 및 통합성 우수&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;가능하지만 최신 패키지는 더 복잡함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.3953%; height: 21px;&quot;&gt;커뮤니티 지원&lt;/td&gt;
&lt;td style=&quot;width: 39.8838%; height: 21px;&quot;&gt;강력한 Ubuntu 커뮤니티&lt;/td&gt;
&lt;td style=&quot;width: 43.7209%; height: 21px;&quot;&gt;Pi 전용 커뮤니티와 튜토리얼 풍부&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 두 가지의 OS 모두 적용해 보면서 적합한 OS를 선정할 예정입니다.&lt;br /&gt;&lt;br /&gt;먼저 노트북에서도 사용 중인 22.04 LTS 버전으로 설치하려고 하였으나 Raspberry Pi Imager에서는 &lt;br /&gt;Raspberry Pi 5에 대하여 24.04 LTS 버전밖에 지원하지 않아 24 버전으로 고려하였습니다.&lt;br /&gt;&lt;br /&gt;첫 번째로&amp;nbsp; &lt;span style=&quot;text-align: start;&quot;&gt;Ubuntu 24.04 LTS&lt;span&gt; Server를 다운로드하여 보았지만 Wifi 설정과정에서&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1738892841508&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo nano /etc/netplan/50-cloud-init.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span&gt;해당 파일에 SSID, PW를 설정하는 등, 여러 방법을 시도해 보았으나 따로 연결이 되는 부분이 없어 포기하였습니다.. &lt;br /&gt;&lt;br /&gt;두 번째, Ubuntu 24.04 LTS Desktop 버전에서는 GUI가 있기 때문에 Wifi 도 쉽게 설정하였지만, &lt;br /&gt;조금 버벅거리는 문제가 생겼고, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span&gt;결정적으로 우분투에서는 라즈베리파이 케이스에 있는 &lt;br /&gt;Fan 모듈이 온도에 따라 동작하지 않는 문제가 발생되었습니다... &lt;br /&gt;따로 raspi-config, 등등을 설치하여 제어할 수 있지만 이미 테스트하는 과정에 &lt;br /&gt;시간을 많이 소요하여 너무 오래 걸릴 것 같아 제외하였습니다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;세 번째인 &lt;span style=&quot;text-align: start;&quot;&gt;Raspberry Pi OS 64bit&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; Server로 다운로드를 하였을 때 &lt;br /&gt;동작에 이상이 없고, wifi 등록까지도 정상적으로 완료되었습니다.&lt;br /&gt;SSH 접속설정도 밑 명령어를 통해 CLI에서도 SSH 접속활성화를 할 수 있습니다.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1738896139921&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo raspi-config&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span&gt;&lt;br /&gt;다음으로는 윈도우&amp;nbsp;PC 기준 Putty 프로그램을 통해 내부망에서 SSH 접속할 수 있습니다.&lt;br /&gt;이후 글에서는 포트포워딩 설정을 통해 외부망에서도 라즈베리파이로 접속할 수 있는 글을 작성할 예정입니다.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;긴 글 읽어주셔서 감사합니다. 좋은 하루 보내세요.&lt;/p&gt;</description>
      <category>Raspberry Pi(라즈베리파이)/Raspberry Pi 5</category>
      <category>OS</category>
      <category>Raspberry Pi</category>
      <category>server</category>
      <category>ssh</category>
      <category>stanase</category>
      <category>ubuntu</category>
      <category>라즈베리파이</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/20</guid>
      <comments>https://stanase.tistory.com/20#entry20comment</comments>
      <pubDate>Fri, 7 Feb 2025 11:52:41 +0900</pubDate>
    </item>
    <item>
      <title>BAEKJOON 20124 Python (B2)</title>
      <link>https://stanase.tistory.com/18</link>
      <description>&lt;!--unable to drag--&gt;
&lt;body oncontextmenu=&quot;return false&quot; onselectstart=&quot;return false&quot; ondragstart=&quot;return false&quot;&gt;
&lt;!--unable to drag--&gt;
&lt;h3 style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;문제&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1132&quot; data-origin-height=&quot;683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSeGCd/btsL4cTrEod/1UVx3sx42p8lybTF8jLjo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSeGCd/btsL4cTrEod/1UVx3sx42p8lybTF8jLjo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSeGCd/btsL4cTrEod/1UVx3sx42p8lybTF8jLjo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSeGCd%2FbtsL4cTrEod%2F1UVx3sx42p8lybTF8jLjo1%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;800&quot; height=&quot;483&quot; data-origin-width=&quot;1132&quot; data-origin-height=&quot;683&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;풀이&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 N값을 입력받아 학생의 수를 확인한다.&lt;br /&gt;이후 각 학생의 이름과 점수를 입력받고 (이름, 점수)로 하여 튜플구조로 List에 저장한다.&lt;br /&gt;여기서 튜플구조란 순서가 있는 자료형이다. (이름, 점수)처럼 순서를 지정해서 저장하는 것이다.&lt;br /&gt;정렬하는 방식에서 Lambda x: (-x[1], x[0])방식을 사용하였는데 -x[1] 두 번째 값인 점수를 기준으로 내림차순 정렬을 진행하고, 이후 점수가 같은 구역에서 x[0], 즉 이름에 대한값을 오름차순으로 정렬하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 리스트에서 첫 번째 값을 출력한다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;코드&lt;/h3&gt;
&lt;pre id=&quot;code_1738249209064&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 입력 개수 받기
n = int(input())

# 이름:점수 형식으로 리스트에 저장
name_score_list = []

for _ in range(n):
    name, score = input().split()  # 입력된 값을 공백으로 나누기
    score = int(score)  # 점수를 정수로 변환
    name_score_list.append((name, score))  # 튜플로 (이름, 점수) 저장

# 점수를 내림차순으로, 점수가 같으면 이름순으로 정렬
sorted_list = sorted(name_score_list, key=lambda x: (-x[1], x[0]))

# 결과 출력
first = sorted_list[0]
print(first[0])&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Algorithm(알고리즘)/Baekjoon(백준)</category>
      <category>20124</category>
      <category>baekjoon</category>
      <category>python</category>
      <category>stanase</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>파이썬</category>
      <category>프로그래밍</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/18</guid>
      <comments>https://stanase.tistory.com/18#entry18comment</comments>
      <pubDate>Fri, 31 Jan 2025 01:08:12 +0900</pubDate>
    </item>
    <item>
      <title>BEAKJOON 4949 Python (S4)</title>
      <link>https://stanase.tistory.com/12</link>
      <description>&lt;!--unable to drag--&gt;
&lt;body oncontextmenu=&quot;return false&quot; onselectstart=&quot;return false&quot; ondragstart=&quot;return false&quot;&gt;
&lt;!--unable to drag--&gt;
&lt;h2 style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;균형잡힌 세상&lt;/b&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제설명&lt;br /&gt;&lt;/b&gt;각 줄의 괄호들이 균형을 이루고 있는지 검사하는 문제&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;소스코드&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1732452343323&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;while True:
    string = input().rstrip()
    if string == &quot;.&quot;:
        break

    stack = []
    balanced = True 

    for char in string:
        if char in &quot;([&quot;:
            stack.append(char)
        elif char == &quot;)&quot;:  
            if not stack or stack[-1] != &quot;(&quot;:
                balanced = False
                break
            stack.pop()  
        elif char == &quot;]&quot;:  
            if not stack or stack[-1] != &quot;[&quot;: 
                balanced = False
                break
            stack.pop() 
    
    if balanced and not stack:
        print(&quot;yes&quot;)
    else:
        print(&quot;no&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;Python 풀이&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;백준 4949번 문제는 문자열의 균형을 확인하는 문제로, &lt;br /&gt;괄호((), [])의 짝이 올바르게 이루어졌는지를 판별해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열을 확인하기 위해 스택 자료구조를 사용했습니다. &lt;br /&gt;스택은 LIFO(Last In, First Out) 후입선출 방식으로 동작하므로, &lt;br /&gt;순서대로 매칭 여부를 확인할 수 있습니다.&lt;br /&gt;&lt;br /&gt;먼저 문자열을 입력받습니다. \n로 입력이 들어오기 때문에 &lt;br /&gt;rstrip()을사용하여 엔터를 제거하여 문자열만 남게 합니다.&lt;br /&gt;추가로 만약 문자열이 &quot;.&quot; 이라면 입력받는 것을 종료합니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;stack 리스트를 제작하고,&amp;nbsp;&lt;br /&gt;여는 괄호 ( 또는 [는 스택에 추가합니다. 닫는 괄호 ) 또는 ]가 나오면 스택에서 가장 최근의 여는 괄호와 비교합니다. 만약 짝이 맞지 않으면 &quot;no&quot;를 출력하고 종료합니다. 모든 문자를 확인한 뒤 스택이 비어 있다면 &quot;yes&quot;를 출력하고, 남아 있다면 &quot;no&quot;를 출력합니다.&lt;/p&gt;</description>
      <category>Algorithm(알고리즘)/Baekjoon(백준)</category>
      <category>4949</category>
      <category>baekjoon</category>
      <category>python</category>
      <category>stanase</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>파이썬</category>
      <category>프로그래밍</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/12</guid>
      <comments>https://stanase.tistory.com/12#entry12comment</comments>
      <pubDate>Fri, 22 Nov 2024 23:30:19 +0900</pubDate>
    </item>
    <item>
      <title>BAEKJOON 1436 Python</title>
      <link>https://stanase.tistory.com/11</link>
      <description>&lt;h2 style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;영화감독 숌&lt;/b&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제설명&lt;br /&gt;&lt;/b&gt;입력 값에 따라 종말의 수인 666이 들어간&amp;nbsp; N번째로 작은 수를 구하는 문제&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;소스코드&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1732202742486&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;N = int(input())
count = 0
result = 666

while count != N:
    if &quot;666&quot; in str(result):  
        count += 1 
    result += 1 

print(result-1)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;Python 풀이&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;먼저 우선적으로 생각한 부분은 어떻게하면 N번째로 작은 666이 들어간 수를 구할까 였습니다.&lt;br /&gt;그래서 666부터 시작해 +1을 반복하며 이를 카운트하여 N번째로 작은 수까지 도달하도록 하기로 생각했습니다.&lt;br /&gt;&lt;br /&gt;따라서 변수 N을 선언하고 입력값을 정수형으로 입력받은 뒤&lt;br /&gt;목표인 N까지 도달하기위해 현재의 위치를 저장해 둘 카운트 변수를 선언하고&lt;br /&gt;가장 가까운 값부터 시작하기위해 666 이 들어간 변수를 선언하였습니다.&lt;br /&gt;&lt;br /&gt;이후 문자열로 바꾼뒤 666이 들어가있는지 확인하고, 아니라면 1 씩 더해가며&amp;nbsp;&lt;br /&gt;카운트 값이 N과 같아질때 결과 값을 출력하도록 하였습니다.&lt;br /&gt;&lt;br /&gt;마지막 -1을 해둔 이유는&amp;nbsp; if문 밖에 result += 1 을 해두었기 때문에&amp;nbsp;&lt;br /&gt;count 와 N 값이 같아져도 한번 더 해지기 때문에 최종 출력값을 -1 하였습니다.&lt;/p&gt;</description>
      <category>Algorithm(알고리즘)/Baekjoon(백준)</category>
      <category>1436</category>
      <category>baekjoon</category>
      <category>python</category>
      <category>stanase</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>파이썬</category>
      <category>프로그래밍</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/11</guid>
      <comments>https://stanase.tistory.com/11#entry11comment</comments>
      <pubDate>Thu, 21 Nov 2024 23:54:20 +0900</pubDate>
    </item>
    <item>
      <title>BAEKJOON 9093 Python</title>
      <link>https://stanase.tistory.com/10</link>
      <description>&lt;h2 style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;단어 뒤집기&lt;/b&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제설명&lt;br /&gt;&lt;/b&gt;단어의 순서는 유지하되, 단어의 출력을 거꾸로 뒤집어 출력하는 문제&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;소스코드&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1732203740829&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;T = int(input())
for _ in range(T): 
    words = input().split()
    for word in words:
        print(word[::-1], end=' ')&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;Python 풀이&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;우선 T번 입력이 들어오는 것을 알기위해 T를 입력받고 &lt;br /&gt;T만큼 for문을 사용하여 동작하도록 하였습니다.&lt;br /&gt;&lt;br /&gt;단어의 순서는 유지하되, 단어의 스펠링 출력은 뒤집어서 출력을 해야하기 때문에&lt;br /&gt;우선 공백으로 구분하여 &quot;words&quot;리스트에 저장해줍니다.&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이후 word변수에 words 리스트의 요소들을 모두 소모할때까지 for문을 돌리고&lt;br /&gt;for문 안에는 해당 요소, word를 슬라이싱하여 뒤에서부터 끝까지 출력합니다.&lt;br /&gt;이를 이용하여 단어를 뒤집어서 출력할 수 있습니다.&lt;br /&gt;&lt;br /&gt;처음 공백을 기준으로 하여 단어를 분리하였기 때문에 이 공백을 채우려고&amp;nbsp;&lt;br /&gt;출력문 위에 end =' '를 삽입했습니다. 위방식대로 하면 word 하나가 출력된 뒤&lt;br /&gt;공백이 출력되어 정답을 출력할 수 있습니다.&lt;br /&gt;문장의 끝에 추가하는 것 이기때문에&amp;nbsp; ' '그냥 공백이 아닌 end = 으로 정의해주어야 합니다.&lt;/p&gt;</description>
      <category>Algorithm(알고리즘)/Baekjoon(백준)</category>
      <category>9093</category>
      <category>baekjoon</category>
      <category>python</category>
      <category>stanase</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>파이썬</category>
      <category>프로그래밍</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/10</guid>
      <comments>https://stanase.tistory.com/10#entry10comment</comments>
      <pubDate>Wed, 20 Nov 2024 23:23:05 +0900</pubDate>
    </item>
    <item>
      <title>BAEKJOON 2914 Python</title>
      <link>https://stanase.tistory.com/9</link>
      <description>&lt;div style=&quot;text-align: start;&quot;&gt;
&lt;h2 style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;저작권&lt;/b&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;br /&gt;곡의 개수, 저작권이 있는 멜로디의 평균값을 제공받아&amp;nbsp;&lt;br /&gt;최소 몇개의 저작권이 있는 멜로디가 있는지 도출하는 문제.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;소스코드&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1732030355810&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import math

A, I = map(int, input().split())
print(A * (I - 1) + 1)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;Python 풀이&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;한 줄을 입력받아 split를 사용하여 분리한 뒤, A, I에 값을 대입한다.&lt;br /&gt;A는 곡의 개수, I는 멜로디의 평균값이다.&lt;br /&gt;&lt;br /&gt;이후 I, 즉 멜로디의 평균값을 구하는 공식이 &lt;br /&gt;(저작권 수 /노래 수)라는 것을 알 수 있다.&lt;br /&gt;이를 변환하여 저작권 수 = 노래 수 * I의 식으로 변환할 수 있다.&lt;br /&gt;&lt;br /&gt;하지만 중요한 것은 최소 몇 개의 멜로디가 있는지 이기 때문에&lt;br /&gt;먼저 평균값은 올림을 하기 때문에 평균값에서 -1을 뺀다.&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 1.12em; letter-spacing: 0px;&quot;&gt;최소 저작권 수 &amp;gt;= A * (I - 1)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 1.12em; letter-spacing: 0px;&quot;&gt;이후의 결과 값은 최소 멜로디의 개수보다 크거나 같게 된다&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 1.12em; letter-spacing: 0px;&quot;&gt;하지만 I의 값은 항상 올림이라 현재코드를 그대로 사용하면&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 1.12em; letter-spacing: 0px;&quot;&gt;최소 값보다 작아지는 경우가 있다.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 1.12em; letter-spacing: 0px;&quot;&gt;예시를 들자면 90.xxxx가 위 수식의 결과 값일 때 실제 최소 값은 1 올려 91로 정해진다.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 1.12em; letter-spacing: 0px;&quot;&gt;이를 해결하기 위해 +1을 하여 식을 완성한다.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 1.12em; letter-spacing: 0px;&quot;&gt;최소 저작권 수 &amp;gt;= A * (I - 1) + 1&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 1.12em; letter-spacing: 0px;&quot;&gt;위방식으로 최소 멜로디의 개수를 구할 수 있다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Algorithm(알고리즘)/Baekjoon(백준)</category>
      <category>2914</category>
      <category>baekjoon</category>
      <category>stanase</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>코딩</category>
      <category>파이썬</category>
      <category>프로그래밍</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/9</guid>
      <comments>https://stanase.tistory.com/9#entry9comment</comments>
      <pubDate>Tue, 19 Nov 2024 23:56:39 +0900</pubDate>
    </item>
    <item>
      <title>Support-Free 3D printing</title>
      <link>https://stanase.tistory.com/8</link>
      <description>&lt;!--unable to drag--&gt;
&lt;body oncontextmenu=&quot;return false&quot; onselectstart=&quot;return false&quot; ondragstart=&quot;return false&quot;&gt;
&lt;!--unable to drag--&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3D 프린팅을 하면서 특정상황에서 서포트 없이 출력하는 방법 2가지를 정리합니다.&lt;/b&gt;&lt;/h2&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황 : 너트 - 볼트 연결 구조에서 너트 부분이 &lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;하판에 위치할 경우 서포트가 필수적이게 됩니다.&lt;/b&gt;&lt;br /&gt;&lt;b&gt; 이를 서포트 없이 출력하는 방법입니다.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1. 구조적으로 너트 이후 브리지를 직사각형 모양을 교차하면서 &lt;br /&gt;구멍크기를 줄여나가며 서포트를 사용하지않는 방식이 있습니다.&lt;br /&gt;&lt;br /&gt;예시를 위해 Stanase 로고 모양으로 STL 파일을 하나 만들었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1485&quot; data-origin-height=&quot;1078&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZ3wMg/btsKN2ZiCEJ/r4yyC1ifrl5qKK7K5xYK7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZ3wMg/btsKN2ZiCEJ/r4yyC1ifrl5qKK7K5xYK7k/img.png&quot; data-alt=&quot;로고 하단은 너트모양, 위는 일반 구멍입니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZ3wMg/btsKN2ZiCEJ/r4yyC1ifrl5qKK7K5xYK7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZ3wMg%2FbtsKN2ZiCEJ%2Fr4yyC1ifrl5qKK7K5xYK7k%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;306&quot; height=&quot;222&quot; data-origin-width=&quot;1485&quot; data-origin-height=&quot;1078&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;&lt;br /&gt;&lt;br /&gt;설계자체를 직사각형 모양으로 교차해도 되며,&amp;nbsp; &lt;br /&gt;Ocra 슬라이서에서는 브릿지 카운터보어 구멍 옵션을&lt;br /&gt;&quot;부분적으로 브릿지&quot; 로 하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;787&quot; data-origin-height=&quot;750&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhkFUD/btsKMKFoFAx/L3UEfPQMKvj87BHRMRb6uK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhkFUD/btsKMKFoFAx/L3UEfPQMKvj87BHRMRb6uK/img.png&quot; data-alt=&quot;브릿지를 이용하여 1차적으로 구멍의 크기를 줄여줍니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhkFUD/btsKMKFoFAx/L3UEfPQMKvj87BHRMRb6uK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhkFUD%2FbtsKMKFoFAx%2FL3UEfPQMKvj87BHRMRb6uK%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;318&quot; height=&quot;303&quot; data-origin-width=&quot;787&quot; data-origin-height=&quot;750&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;브릿지를 이용하여 1차적으로 구멍의 크기를 줄여줍니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;758&quot; data-origin-height=&quot;769&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JpzdQ/btsKNv10R8p/d4F45sxZj3323l3ttC5Fk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JpzdQ/btsKNv10R8p/d4F45sxZj3323l3ttC5Fk1/img.png&quot; data-alt=&quot;남은 공간도 같은방식으로 채워 원기둥을 출력합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JpzdQ/btsKNv10R8p/d4F45sxZj3323l3ttC5Fk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJpzdQ%2FbtsKNv10R8p%2Fd4F45sxZj3323l3ttC5Fk1%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;318&quot; height=&quot;323&quot; data-origin-width=&quot;758&quot; data-origin-height=&quot;769&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;&lt;br /&gt;2. 같은경우에서 0.2 mm의 브릿지로 전체를 덮고 원기둥을 출력한 뒤&lt;br /&gt;구멍이 막힌 부분만 드라이버나 송곳으로 뚤어내는 방법이 있습니다.&lt;br /&gt;&lt;br /&gt;설계 자체에서 0.2mm로 얇은 판을 만들어주시거나&lt;br /&gt;같은 Orca 슬라이서 브릿지 카운터 보어 구멍 옵션을 &quot;희생층&quot;으로 하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;854&quot; data-origin-height=&quot;703&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1dcxg/btsKOjzKU4k/N3ndXfYHs6zfL1tFememzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1dcxg/btsKOjzKU4k/N3ndXfYHs6zfL1tFememzK/img.png&quot; data-alt=&quot;전체를 브릿지로 1겹 덮습니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1dcxg/btsKOjzKU4k/N3ndXfYHs6zfL1tFememzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1dcxg%2FbtsKOjzKU4k%2FN3ndXfYHs6zfL1tFememzK%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;317&quot; height=&quot;261&quot; data-origin-width=&quot;854&quot; data-origin-height=&quot;703&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;전체를 브릿지로 1겹 덮습니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;791&quot; data-origin-height=&quot;698&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bElBFI/btsKNvgFizG/Q2VkD6S8W60TSA0K30hUs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bElBFI/btsKNvgFizG/Q2VkD6S8W60TSA0K30hUs0/img.png&quot; data-alt=&quot;이후 평면 위에 그대로 이어서 출력합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bElBFI/btsKNvgFizG/Q2VkD6S8W60TSA0K30hUs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbElBFI%2FbtsKNvgFizG%2FQ2VkD6S8W60TSA0K30hUs0%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;317&quot; height=&quot;280&quot; data-origin-width=&quot;791&quot; data-origin-height=&quot;698&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;위 두가지 방식을 이용하여 구멍이 있는 구조물에서의 서포트를 최소화할 수 있습니다.&lt;/p&gt;</description>
      <category>3D Print(3D프린트)</category>
      <category>3D printing</category>
      <category>3D 프린터</category>
      <category>orca</category>
      <category>stanase</category>
      <category>support</category>
      <category>서포터</category>
      <category>슬라이서</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/8</guid>
      <comments>https://stanase.tistory.com/8#entry8comment</comments>
      <pubDate>Mon, 18 Nov 2024 22:18:51 +0900</pubDate>
    </item>
    <item>
      <title>BAEKJOON 1439 Python</title>
      <link>https://stanase.tistory.com/7</link>
      <description>&lt;h2 style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;뒤집기&lt;/b&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;br /&gt;0과 1로 이루어진 문자열을 최소 횟수로 반전시켜 모두 같게 만듭니다.&lt;br /&gt;반전의 경우 연속된 하나이상의 숫자를 함께 뒤집을 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;소스코드&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1731854490342&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;number = list(input())
count = 0
for i in range(len(number)-1):
    if number[i] != number[i+1]:
        count +=1
        
print((count+1)//2)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;Python 풀이&lt;br /&gt;&lt;/b&gt;최소 반전 횟수를 구하는 문제이기 때문에&lt;br /&gt;전체의 변경 횟수, 즉 입력 값이 &quot;001&quot;일 때 &quot;0 &amp;rarr;&amp;nbsp;1&quot;&lt;br /&gt;변경될 때의 경계 값을 세어 전체의 변경 횟수를 파악하고&lt;br /&gt;이를 이용하여 최소 반전 횟수를 구하기로 했습니다.&lt;br /&gt;&lt;br /&gt;먼저 문자열을 list형식으로 입력받습니다.&lt;br /&gt;그리고 변경횟수를 저장할 변수 값을 만들어둡니다.&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이후 For문을 사용하여 한 자리씩 비교하며&lt;br /&gt;변경되는 횟수를 저장합니다.&lt;br /&gt;&lt;br /&gt;이후 +1, 2로 나눈 몫을 구하여 출력하면&lt;br /&gt;최소변경 횟수를 구할 수 있습니다.&lt;/p&gt;</description>
      <category>Algorithm(알고리즘)/Baekjoon(백준)</category>
      <category>1439</category>
      <category>baekjoon</category>
      <category>python</category>
      <category>stanase</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>코딩</category>
      <category>파이썬</category>
      <category>프로그래밍</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/7</guid>
      <comments>https://stanase.tistory.com/7#entry7comment</comments>
      <pubDate>Mon, 18 Nov 2024 00:46:42 +0900</pubDate>
    </item>
    <item>
      <title>BAEKJOON 1475 Python</title>
      <link>https://stanase.tistory.com/6</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;방 번호&lt;/b&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제설명&lt;br /&gt;&lt;/b&gt;정수 N을 입력받아 0~9의 숫자세트를 이용하여 &lt;br /&gt;최소 몇개의 세트로 구현이 가능한지 찾는 문제입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;소스코드&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1731852701642&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import math

N = list(input()) 
count = [0] * 10  
for digit in N:
    count[int(digit)] += 1

six_nine_count = math.ceil((count[6] + count[9]) / 2)

result = max(max(count[:6] + count[7:9] + count[10:]), six_nine_count)
print(result)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;Python 풀이&lt;/b&gt;&lt;br /&gt;먼저 N을 정수형식으로 입력받은 뒤&lt;br /&gt;list로 만들어줍니다.&lt;br /&gt;&lt;br /&gt;0~9의 배열을 하나 만들어둔 뒤 (Count)&lt;br /&gt;For문을 사용하여 입력받은 값을 하나씩 같은 배열의 칸에 넣습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6, 9는 서로 뒤집어 사용할 수 있기 때문에 별도의 처리를 해야 한다고 판단하여&lt;br /&gt;각 값을 더한 뒤 2로 나눈 몫을 반올림하여 변수에 저장합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 저장한 변수 값, 그리고 기존 배열에서의 각각의 값들을 최대 값을 찾습니다.&lt;br /&gt;여기서 최대 값은 필요한 세트의 최소개수와 같습니다.&lt;br /&gt;&lt;br /&gt;이후 결과 값으로 저장하여 출력하는 프로그램입니다.&lt;/p&gt;</description>
      <category>Algorithm(알고리즘)/Baekjoon(백준)</category>
      <category>1475</category>
      <category>baekjoon</category>
      <category>python</category>
      <category>stanase</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>코딩</category>
      <category>파이썬</category>
      <category>프로그래밍</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/6</guid>
      <comments>https://stanase.tistory.com/6#entry6comment</comments>
      <pubDate>Sun, 17 Nov 2024 23:19:27 +0900</pubDate>
    </item>
    <item>
      <title>Buckshot Roulette</title>
      <link>https://stanase.tistory.com/5</link>
      <description>&lt;!--unable to drag--&gt;
&lt;body oncontextmenu=&quot;return false&quot; onselectstart=&quot;return false&quot; ondragstart=&quot;return false&quot;&gt;
&lt;!--unable to drag--&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;C언어를 이용하여 2024-04-05 에 출시한 &lt;br /&gt;벅샷룰렛게임을 텍스트 게임으로 제작해보았습니다.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;b&gt;사용환경&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;VS CODE&lt;b&gt;&lt;br /&gt;&lt;br /&gt;C CODE&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignLeft&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cRd8uP/btsKKN3Bw7o/8p8n14GCtkNuUu9js6y8p0/Buckshot%20Roulette.c?attach=1&amp;amp;knm=tfile.c&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Buckshot Roulette.c&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.03MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;683&quot; data-origin-height=&quot;959&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qW2sr/btsKMMopQsb/tfsPZSeU2AKXwhcGsI0Zlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qW2sr/btsKMMopQsb/tfsPZSeU2AKXwhcGsI0Zlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qW2sr/btsKMMopQsb/tfsPZSeU2AKXwhcGsI0Zlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqW2sr%2FbtsKMMopQsb%2FtfsPZSeU2AKXwhcGsI0Zlk%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;270&quot; height=&quot;379&quot; data-origin-width=&quot;683&quot; data-origin-height=&quot;959&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;시작화면&lt;br /&gt;&lt;/b&gt;난이도 상 중 하 를 선택할 수 있으며&lt;br /&gt;시작, 종료를 선택할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&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;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;902&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjHVdK/btsKKQsoejS/kYMQoa6HkJ1uYKTG9dndik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjHVdK/btsKKQsoejS/kYMQoa6HkJ1uYKTG9dndik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjHVdK/btsKKQsoejS/kYMQoa6HkJ1uYKTG9dndik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjHVdK%2FbtsKKQsoejS%2FkYMQoa6HkJ1uYKTG9dndik%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;270&quot; height=&quot;372&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;902&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;게임화면&lt;/b&gt;&lt;br /&gt;플레이어의 순서로 시작되며&lt;br /&gt;실탄을 딜러에게 쏘면 딜러의 체력이 깎이고,&lt;br /&gt;공포탄을 딜러에게 쏘면 &lt;br /&gt;딜러에게 순서가 넘어가게 됩니다.&lt;br /&gt;&lt;br /&gt;딜러는 자동으로 선택하여 샷건을 발사하고&amp;nbsp;&lt;br /&gt;3판 2선 승제로 게임이 진행됩니다.&lt;br /&gt;&lt;br /&gt;라운드가 지날수록 체력, &lt;br /&gt;탄환의 개수가 늘어납니다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Project(프로젝트)/Text Game(텍스트 게임)</category>
      <category>Buckshot roulette</category>
      <category>C</category>
      <category>C++</category>
      <category>stanase</category>
      <category>vscode</category>
      <category>벅샷룰렛</category>
      <category>코드</category>
      <category>텍스트게임</category>
      <category>프로그래밍</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/5</guid>
      <comments>https://stanase.tistory.com/5#entry5comment</comments>
      <pubDate>Sat, 16 Nov 2024 22:42:41 +0900</pubDate>
    </item>
    <item>
      <title>BAEKJOON 11005 Python</title>
      <link>https://stanase.tistory.com/4</link>
      <description>&lt;h2 style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;진법 변환 2&lt;/b&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;br /&gt;첫째 줄에 주어지는 N과 B를 이용하여&lt;br /&gt;10진수 N의 값을 B 진법으로 바꾸는 문제입니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;소스코드&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1731741416713&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;InNum_set = input()
InNum_list = InNum_set.split(&quot; &quot;)
N = int(InNum_list[0])
B = int(InNum_list[1])
Conversion_Num_list = &quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;

Ans = &quot;&quot;
while N != 0:
    Ans = Conversion_Num_list[N % B] + Ans
    N //= B

print(Ans)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;b&gt;Python 풀이&lt;/b&gt;&lt;br /&gt;&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;먼저 첫 줄을 입력받습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;입력 값 N, B가 공백으로 구분되어 있기 때문에&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;split을 사용하여 입력 값을 list로 만들어준 뒤&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;각각 N, B 변수에 int형식으로 대입하였습니다.&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;문제에서 B의 범위는&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;(2 &amp;le; B &amp;le; 36) 이기 때문에&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;10진법 이상의 변환을 할 수 있도록 변환 리스트를 만들어줍니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;이후 Ans, 답을 넣을 변수명을 빈칸으로 하여 정의해 주고&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;N의 값을 진수값만큼 깎아가며 0이 될 때까지,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;즉 진수변환이 완료될 때까지 While문을 실행합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;While문 내부는 N% B에 해당하는 위치의 변환리스트 값을 &lt;br /&gt;Ans변수에 추가한 뒤&lt;br /&gt;&lt;/span&gt;B진법으로 나눈 몫을 N으로 반환합니다&lt;br /&gt;&lt;br /&gt;설명을 위해 N을 10, B를 2로 가정하겠습니다.&lt;br /&gt;&lt;br /&gt;첫 번째 While문의 동작&lt;br /&gt;10 % 2 = 0 나머지가 0이기에 Ans에 &quot;0&quot;이 들어갑니다.&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;N // = B, 10// = 2의 경우&amp;nbsp; 10을 2로 나눈 몫 5가&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;N으로 대입됩니다.&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;두 번째 While문의 동작&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;5 % 2 = 0 나머지가 1이기에 Ans에 1이 추가되어 &quot;10&quot;이 들어갑니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;N // = B, 5// = 2의 경우&amp;nbsp; 5를 2로 나눈 몫 2가&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;N으로 대입됩니다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;세 번째 While문의 동작&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;2 % 2 = 0 나머지가 0이기에 Ans에 0이 추가되어 &quot;010&quot;이 들어갑니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;N // = B, 2// = 2의 경우&amp;nbsp; 2를 2로 나눈 몫 1이&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;N으로 대입됩니다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;네 번째 While문의 동작&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;1 % 2 = 0 나머지가 1이기에 Ans에 1이 추가되어 &quot;1010&quot;이 들어갑니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;N // = B, 1// = 2의 경우&amp;nbsp; 1을 2로 나눈 몫 0이&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;N으로 대입되어 종료됩니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;이후 ANS를 출력합니다.&lt;/p&gt;</description>
      <category>Algorithm(알고리즘)/Baekjoon(백준)</category>
      <category>11005</category>
      <category>baekjoon</category>
      <category>python</category>
      <category>stanase</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>코딩</category>
      <category>파이썬</category>
      <category>프로그래밍</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/4</guid>
      <comments>https://stanase.tistory.com/4#entry4comment</comments>
      <pubDate>Sat, 16 Nov 2024 21:52:27 +0900</pubDate>
    </item>
    <item>
      <title>BAEKJOON 10991 Python</title>
      <link>https://stanase.tistory.com/3</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;별 찍기 - 16&lt;/b&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;br /&gt;(1 &amp;lt;= N&amp;nbsp;&amp;lt;=100)&amp;nbsp;범위의&amp;nbsp;N을&amp;nbsp;입력받아&lt;br /&gt;피라미드&amp;nbsp;모양으로&amp;nbsp;별을&amp;nbsp;찍는&amp;nbsp;문제입니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;소스코드&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1731738873651&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;n = int(input())
for i in range(1, n+1):
    print(&quot; &quot; * (n - i) + &quot;* &quot; * i)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;Python 풀이&lt;/b&gt;&lt;br /&gt;먼저&amp;nbsp;N을&amp;nbsp;정수형식으로&amp;nbsp;입력받은&amp;nbsp;뒤&amp;nbsp;&lt;br /&gt;For&amp;nbsp;문을&amp;nbsp;사용하여&amp;nbsp;출력하였습니다.&lt;br /&gt;&lt;br /&gt;설명을 위해 N을 3으로 가정하겠습니다.&amp;nbsp;&lt;br /&gt;N 이 3인경우 1 ~ N까지 동작하여&lt;br /&gt;For 문은 총 3번 동작하게 됩니다.&lt;br /&gt;&lt;br /&gt;출력문은 먼저 공백을 n - i 만큼 출력합니다.&lt;br /&gt;이후 별 기호를 붙여 문자열을 만듭니다.&lt;br /&gt;이 동작을 루프 횟수에 따라 i번 반복합니다.&lt;/p&gt;</description>
      <category>Algorithm(알고리즘)/Baekjoon(백준)</category>
      <category>10991</category>
      <category>baekjoon</category>
      <category>python</category>
      <category>stanase</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>코딩</category>
      <category>파이썬</category>
      <category>프로그래밍</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/3</guid>
      <comments>https://stanase.tistory.com/3#entry3comment</comments>
      <pubDate>Sat, 16 Nov 2024 16:05:13 +0900</pubDate>
    </item>
    <item>
      <title>인사말</title>
      <link>https://stanase.tistory.com/2</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요, Stanase입니다.&lt;br /&gt;관심있는 것들에 대해 정리합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방문해주셔서 감사합니다.&lt;/p&gt;</description>
      <category>Side Notes(기타)</category>
      <category>3D 프린터</category>
      <category>stanase</category>
      <category>개발</category>
      <category>라즈베리파이</category>
      <category>프로그래밍</category>
      <author>7IHIN</author>
      <guid isPermaLink="true">https://stanase.tistory.com/2</guid>
      <comments>https://stanase.tistory.com/2#entry2comment</comments>
      <pubDate>Fri, 1 Nov 2024 12:43:38 +0900</pubDate>
    </item>
  </channel>
</rss>