<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>커리까지</title>
    <link>https://maximum-curry30.tistory.com/</link>
    <description>개발과 데이터 분석을 위한 활동들을 기록하는 공간입니다.
https://github.com/sc303030</description>
    <language>ko</language>
    <pubDate>Mon, 18 May 2026 22:01:49 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>목표는 커리</managingEditor>
    <image>
      <title>커리까지</title>
      <url>https://tistory1.daumcdn.net/tistory/4199169/attach/1fc3108192e945b28e0ed98da4dfc9f7</url>
      <link>https://maximum-curry30.tistory.com</link>
    </image>
    <item>
      <title>크라임씬 인물 테스트 해보기</title>
      <link>https://maximum-curry30.tistory.com/701</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;크라임씬의 엄청난 팬으로써 mbti처럼 설문조사를 통하여 어떤 인물과 어울리는지 재미로 알아보고 싶어졌다. 생각난김에 바로 실행하기로 마음먹고 개발을 시작하였다. (뿌뿌~)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어차피 나의 사심채우기용이니 거창한 스펙을 가져가지 않고 django로 개발을 진행하였다.(drf와 리액트 조합은 사용하지 않았다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/sc303030/crime_scene&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/sc303030/crime_scene&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1760191762137&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - sc303030/crime_scene: 크라임씬에 나오는 인물들의 소개를 바탕으로 나는 어떤 인물일까 하는 &quot; data-og-description=&quot;크라임씬에 나오는 인물들의 소개를 바탕으로 나는 어떤 인물일까 하는 테스트. Contribute to sc303030/crime_scene development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/sc303030/crime_scene&quot; data-og-url=&quot;https://github.com/sc303030/crime_scene&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/f8uCy/hyZLhfs0FY/j3KQczbHBXWWnZeoeXf30K/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185,https://scrap.kakaocdn.net/dn/99wpM/hyZLkXzgF4/i6ww037YWBefCnPhiLSAdK/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185&quot;&gt;&lt;a href=&quot;https://github.com/sc303030/crime_scene&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/sc303030/crime_scene&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/f8uCy/hyZLhfs0FY/j3KQczbHBXWWnZeoeXf30K/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185,https://scrap.kakaocdn.net/dn/99wpM/hyZLkXzgF4/i6ww037YWBefCnPhiLSAdK/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185');&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;GitHub - sc303030/crime_scene: 크라임씬에 나오는 인물들의 소개를 바탕으로 나는 어떤 인물일까 하는&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;크라임씬에 나오는 인물들의 소개를 바탕으로 나는 어떤 인물일까 하는 테스트. Contribute to sc303030/crime_scene development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발이야 내가 차근차근 진행하면 되지만 우선 각 인물들의 성격을 정리하려고 한다. 아마 이 작업에 시간이 꽤 걸릴 것 같다. 목표는 1주일안에 끝내는 것이다. (오늘이 10월 11일 토요일이니 16일까지.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컨셉은 일반 설문조사하여 결과를 볼 수 있는 페이지들과 비슷하게 가져가기로 하였다. 거기에 조금 크라임씬 느낌을 첨부하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;824&quot; data-origin-height=&quot;1830&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ybmfX/btsQ4802owV/KJ0txQ0NXaSoQKcnfkpSf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ybmfX/btsQ4802owV/KJ0txQ0NXaSoQKcnfkpSf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ybmfX/btsQ4802owV/KJ0txQ0NXaSoQKcnfkpSf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FybmfX%2FbtsQ4802owV%2FKJ0txQ0NXaSoQKcnfkpSf1%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;824&quot; height=&quot;1830&quot; data-origin-width=&quot;824&quot; data-origin-height=&quot;1830&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 구성하였고 결과에 이제 어떤 인물이 나오게 되는지 구현하면 완료될 것 같다.&lt;/p&gt;</description>
      <category>프로젝트/크라임씬</category>
      <category>crime</category>
      <category>MBTI</category>
      <category>scene</category>
      <category>개발</category>
      <category>넷플릭스</category>
      <category>성격</category>
      <category>장딸</category>
      <category>코딩</category>
      <category>크라임씬</category>
      <category>팬</category>
      <author>목표는 커리</author>
      <guid isPermaLink="true">https://maximum-curry30.tistory.com/701</guid>
      <comments>https://maximum-curry30.tistory.com/701#entry701comment</comments>
      <pubDate>Sat, 11 Oct 2025 23:05:29 +0900</pubDate>
    </item>
    <item>
      <title>웹으로 구현한 대관 알리미</title>
      <link>https://maximum-curry30.tistory.com/700</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/sc303030/gym_web&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/sc303030/gym_web&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1760360301047&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - sc303030/gym_web: 기존 gym프로젝트를 웹으로 구현&quot; data-og-description=&quot;기존 gym프로젝트를 웹으로 구현. Contribute to sc303030/gym_web development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/sc303030/gym_web&quot; data-og-url=&quot;https://github.com/sc303030/gym_web&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ctLxzX/hyZKCFLUK1/TYbvNDFBzKKYA4SPEb4pD0/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185,https://scrap.kakaocdn.net/dn/daSnpa/hyZLeXvsNl/24XNz03Ny1bq21GKIxzqpK/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185&quot;&gt;&lt;a href=&quot;https://github.com/sc303030/gym_web&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/sc303030/gym_web&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ctLxzX/hyZKCFLUK1/TYbvNDFBzKKYA4SPEb4pD0/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185,https://scrap.kakaocdn.net/dn/daSnpa/hyZLeXvsNl/24XNz03Ny1bq21GKIxzqpK/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185');&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;GitHub - sc303030/gym_web: 기존 gym프로젝트를 웹으로 구현&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;기존 gym프로젝트를 웹으로 구현. Contribute to sc303030/gym_web development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 대관 알리미는 카카오톡으로 알림이 오도록 개발하였다. 하지만 잘 작동하지 않았고 수동으로 돌려서 db를 확인하는 경우가 더 많았다. 이러한 불편을 해소하기 위하여 웹으로 만들기로 하였다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹으로 만들기 위해서 갖춰줘야 할 기본적인 사항은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 공지사항 내용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 대관 접수 기간&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 대관 기간&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 필요서류&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 학교명&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 총 5개의 항목은 기본적으로 들어가야 한다고 생각하였다. 항목들을 정해 놓아야 DB를 만들 때 어떤 테이블을 만들고 해당 테이블안에 어떤 컬럼이 들어가야 하는지 정할 수 있다. 그렇지 않으면 개발 하면서 자꾸 어떤게 추가되고 제거되고 하는 경우가 늘어난다.&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;/p&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;453&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bE7CFb/btsQ9mXTorU/TbpFYj3j23Pxdn0ycLDzIk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bE7CFb/btsQ9mXTorU/TbpFYj3j23Pxdn0ycLDzIk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bE7CFb/btsQ9mXTorU/TbpFYj3j23Pxdn0ycLDzIk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bE7CFb/btsQ9mXTorU/TbpFYj3j23Pxdn0ycLDzIk/img.gif&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;453&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;453&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더욱이 추가한 것은 ollama를 사용하여 사용자가 간단하게 원하는 정보를 얻을 수 있게 추가하였다. 시중 api를 유료로 사용할 수 있는데 굳이 그럴 필요가 있을까? 하여 오픈소스를 이용하기로 하였다. 그 중 선택한 모델은qwen2.5:3b이다. 가볍고 빠른 다른 모델들을 사용해 보았는데 한국어를 이해하고 조사를 파악하고 속도면에서 이것이 나아서 이 모델을 선택하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;배포&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배포는 어떤 클라우드로 할 지 고민중이다. 네이버 클라우드에서 3개월동안 십만원 크레딧을 준다고 하니 사용해볼까한다. ollama를 돌리려면 어느정도 스펙이 있어야 하기 때문에 넉넉하게 사용하려고 한다. aws 프리티어의 경우 몇 번 사용해봤는데 생각보다 용량이 적어서 패스하려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&amp;nbsp;TODO&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 스케줄러가 돌다가 오류나는 것들만 모아서 한 번 더 실행되도록 추가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 그라파나를 사용하여 대시보드 추가하기&lt;/p&gt;</description>
      <category>프로젝트/대관 알리미</category>
      <category>AI</category>
      <category>LLM</category>
      <category>개발</category>
      <category>농구</category>
      <category>대관</category>
      <category>바이브코딩</category>
      <category>커서</category>
      <category>코딩</category>
      <category>클로드</category>
      <category>학교</category>
      <author>목표는 커리</author>
      <guid isPermaLink="true">https://maximum-curry30.tistory.com/700</guid>
      <comments>https://maximum-curry30.tistory.com/700#entry700comment</comments>
      <pubDate>Sat, 11 Oct 2025 00:17:32 +0900</pubDate>
    </item>
    <item>
      <title>n분의 1로~ 편하게 계산하기</title>
      <link>https://maximum-curry30.tistory.com/699</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://sc303030.github.io/settlement_calculator/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://sc303030.github.io/settlement_calculator/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1748070661743&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;정산 계산기 - 간편한 비용 정산&quot; data-og-description=&quot;여러 명이 함께 사용하는 비용을 쉽게 계산하고 공유하세요.&quot; data-og-host=&quot;sc303030.github.io&quot; data-og-source-url=&quot;https://sc303030.github.io/settlement_calculator/&quot; data-og-url=&quot;https://sc303030.github.io/settlement_calculator/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://sc303030.github.io/settlement_calculator/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://sc303030.github.io/settlement_calculator/&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;정산 계산기 - 간편한 비용 정산&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;여러 명이 함께 사용하는 비용을 쉽게 계산하고 공유하세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;sc303030.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구글에서 Stitch도 발표했겠다, 내가 원하는 ui 형식을 코드로 뽑아낼 수 있다하니 해보지 않을수 없지 않은가!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 Cursor도 사용해보는 김에 개발하기로 하였다.&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;최근에 n분의 1로 정산하는 경우가 왕왕있었는데 어떻게 하면 쉽게 정산할 수 있을까 생각하였다. 술을 마시지 않은 사람들, 1차 2차 나눠서 계산해야 하는 경우가 있었기에 고민하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비용 정산기의 구조는 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 수기 입력&lt;/p&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 data-ke-size=&quot;size16&quot;&gt;이렇게 2가지를 이용하여 1인당 정산 금액을 계산하여 이미지로 저장하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 Stitch를 어떻게 사용했는지부터 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Stitch&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 먼저 내가 구상한 ui를 그려서 그려달라고 하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1497&quot; data-origin-height=&quot;939&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JufVk/btsOcEmDSXs/rbRetc01aUwFk100vkFd7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JufVk/btsOcEmDSXs/rbRetc01aUwFk100vkFd7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JufVk/btsOcEmDSXs/rbRetc01aUwFk100vkFd7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJufVk%2FbtsOcEmDSXs%2FrbRetc01aUwFk100vkFd7K%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;1497&quot; height=&quot;939&quot; data-origin-width=&quot;1497&quot; data-origin-height=&quot;939&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 리턴 결과에 따라 피드백 하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1497&quot; data-origin-height=&quot;881&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/by8bXL/btsObnfn8Ai/t78NbJ9u2fHSQYXQqIdYJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/by8bXL/btsObnfn8Ai/t78NbJ9u2fHSQYXQqIdYJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/by8bXL/btsObnfn8Ai/t78NbJ9u2fHSQYXQqIdYJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fby8bXL%2FbtsObnfn8Ai%2Ft78NbJ9u2fHSQYXQqIdYJ1%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;1497&quot; height=&quot;881&quot; data-origin-width=&quot;1497&quot; data-origin-height=&quot;881&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 디자인 수정해달라고 하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1499&quot; data-origin-height=&quot;876&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Nthn8/btsOa2v2V3y/jAbMSvwRCTUhFC4puuJOt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Nthn8/btsOa2v2V3y/jAbMSvwRCTUhFC4puuJOt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Nthn8/btsOa2v2V3y/jAbMSvwRCTUhFC4puuJOt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNthn8%2FbtsOa2v2V3y%2FjAbMSvwRCTUhFC4puuJOt0%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;1499&quot; height=&quot;876&quot; data-origin-width=&quot;1499&quot; data-origin-height=&quot;876&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이렇게 몇 가지 단계를 통하여 디자은을 완성하였고, 오른쪽에서 Code를 클릭하여 코드를 복사한 다음 Cursor에게 react에 맞춰서 만들어 달라고 말하러 가자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Cursor&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 내가 복사한 code를 기반으로 react에 맞춰서 만들어 달라고 하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3002&quot; data-origin-height=&quot;1312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d2O5gN/btsObvqE4Dj/6DCL7SWh4nEotHNqD9ASNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d2O5gN/btsObvqE4Dj/6DCL7SWh4nEotHNqD9ASNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d2O5gN/btsObvqE4Dj/6DCL7SWh4nEotHNqD9ASNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd2O5gN%2FbtsObvqE4Dj%2F6DCL7SWh4nEotHNqD9ASNK%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;3002&quot; height=&quot;1312&quot; data-origin-width=&quot;3002&quot; data-origin-height=&quot;1312&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 그럼 이런 식으로 알아서 파일을 만들어 준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 그 다음에 원하는 기능들을 붙이기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2-1. 영수증 인식은 TODO로&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;1224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SRLrk/btsOaHyJPwS/LTzvSZrkww7Ye2wmagY2bK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SRLrk/btsOaHyJPwS/LTzvSZrkww7Ye2wmagY2bK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SRLrk/btsOaHyJPwS/LTzvSZrkww7Ye2wmagY2bK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSRLrk%2FbtsOaHyJPwS%2FLTzvSZrkww7Ye2wmagY2bK%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;816&quot; height=&quot;1224&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;1224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2-2. 이미지 저장 시 어떤 구조로 저장할 지 말해주기 등등&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;778&quot; data-origin-height=&quot;1210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dC29ve/btsOaJKljBF/mNZWUFoCk5MA2DzSU7I1d1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dC29ve/btsOaJKljBF/mNZWUFoCk5MA2DzSU7I1d1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dC29ve/btsOaJKljBF/mNZWUFoCk5MA2DzSU7I1d1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdC29ve%2FbtsOaJKljBF%2FmNZWUFoCk5MA2DzSU7I1d1%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;778&quot; height=&quot;1210&quot; data-origin-width=&quot;778&quot; data-origin-height=&quot;1210&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 깃허브를 사용하여 배포하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;728&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2DO7C/btsOaGzOcnq/nQoROqRSnqfv6tLd9Ozlk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2DO7C/btsOaGzOcnq/nQoROqRSnqfv6tLd9Ozlk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2DO7C/btsOaGzOcnq/nQoROqRSnqfv6tLd9Ozlk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2DO7C%2FbtsOaGzOcnq%2FnQoROqRSnqfv6tLd9Ozlk0%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;794&quot; height=&quot;728&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;728&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 구글과 네이버 seo 추가하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;596&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBD7IC/btsObUwLfA0/SN3JuroUKDbjjEZiKgGKA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBD7IC/btsObUwLfA0/SN3JuroUKDbjjEZiKgGKA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBD7IC/btsObUwLfA0/SN3JuroUKDbjjEZiKgGKA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBD7IC%2FbtsObUwLfA0%2FSN3JuroUKDbjjEZiKgGKA0%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;784&quot; height=&quot;596&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;596&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 영수증을 인식하여 자동으로 계산해주는 기능을 추가하도록 하자.&lt;/p&gt;</description>
      <category>프로젝트/비용 정산기</category>
      <category>AI</category>
      <category>cursor</category>
      <category>stitch</category>
      <category>계산기</category>
      <category>비용</category>
      <category>비용_정산기</category>
      <category>스</category>
      <category>스티치</category>
      <category>정산</category>
      <category>커서</category>
      <author>목표는 커리</author>
      <guid isPermaLink="true">https://maximum-curry30.tistory.com/699</guid>
      <comments>https://maximum-curry30.tistory.com/699#entry699comment</comments>
      <pubDate>Sat, 24 May 2025 16:26:22 +0900</pubDate>
    </item>
    <item>
      <title>농구 커뮤니티 픽앤팝</title>
      <link>https://maximum-curry30.tistory.com/698</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;봄이 지나고 여름이 올 무렵. 카카오톡으로 한 개의 연락이 왔다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&quot;제가 농구커뮤니티를 만들고 있는데 혹시 같이 하실래요?&quot;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;멀티캠퍼스에서 같이 수업을 듣고 농구에 관심이 많았던 분에게 사이드프로젝트 제안을 받았다.&lt;br /&gt;상반기에 마침 사이드 프로젝트를 하고 싶었던터라 바로 수락을 하였고 그렇게 &quot;픽앤팝&quot;팀이 결성되었다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;4월 픽앤팝 시작&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;노코드툴로 작업중인 페이지를 인하우스 개발로 바꿔서 배포하고 수익은 광고로 벌어보자라는 거대한 꿈을 가지고 시작하였다.&lt;br /&gt;초반에는 기획단계부터 같이 회의를 하여 어떤 내용이 들어가면 좋을지, UI는 어떻게 구성하는게 좋을지부터 시작하였다.&lt;br /&gt;기존에 있는 웹 페이지들을 분석하여 div의 위치들을 조정하였다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;역시 회사일과 같이하기는 어려워&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순조롭게 흘러간다 싶었는데 회사일이 너무 바빠지면서 초반에는 거의 개발을 하지 못했다.(ㅠㅠㅠ)&lt;br /&gt;원래 목표는 4~5월까지 개발되었던 화면을 프론트엔드랑 백엔드랑 연동해서 1차적으로 만드는거였다. 하지만 회사일을 하기에 바빠서 github 레포를 만들지도 못했다.....&lt;br /&gt;대신 창업 지원금들을 받을 수 있는 정책들을 찾아보는 것에 초점을 맞췄다. 작은 사업이라도 받고 싶어서 사업계획서랑 예상 비용등을 계산하여 지원하였다. 결과적으로 모두 탈락하였지만 시장조사와 더불어 수익구조와 관련한 것들을 배울 수 있어서 좋았던 경험이었다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;퇴사 하고 집중하기&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;12월부터 6월까지 십자인대 재활을 하면서 회사를 다녔더니 점점 체력에 한계가 왔다. 더욱이 퇴근 시간 이 늦어지기 시작해서 무릎에 집중하기 힘들어졌다. 무릎이 굽혀지는 골든타임이 얼마 남지 않았기에 무릎 재활에 모든걸 걸고자 퇴사를 하였고, 재활 후 남는 시간에 픽앤팝을 만들기로 하였다.&lt;br /&gt;우선 django와 fastapi로 백엔드를 먼저 만들기 시작하였으며 next.js로 프론트엔드 작업을 시작하였다. 1개월동안 노코드툴로 작업한 내용을 인하우스로 변경하였다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;PMCS24 참가&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;그러던 도중 디스콰이엇에서 프로덕트 런칭을 도와주는 프로그램 PMCS24를 알게 되었다. 같은 팀원이 여기에 참가하여 런칭해보면 어떠한지 제안해주었고 너무 좋은 기회여서 참가하기로 하였다. 시작 후 4주간 &lt;span style=&quot;color: #000000;&quot;&gt;메이커로그 쓰고 9월 30일에 런칭하는 프로그램이었다. 매주 1회 게시글을 의무적으로 발행해야하기 때문에 느슨해지던 나를 잘 잡아주었다. 다른 팀들이 발행한 게시글을 보며 우리팀과 비교해보기도 하였고 배울점은 무엇이 있을지 탐색하였다. 댓글로 의견을 주고 받으며 제퓸을 만들어간다는 경험이 재미있어졌다. 그러면서 개발에도 속도가 붙기 시작하였다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;chatgpt&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;chatgpt가 코딩도 잘해준다는 소식을 들으며 바이브코딩을 시도하였다. 백엔드는 내가 구현할 수 있지만 프론트는 그에 비해 퀄리티나 경험이 떨어지기 때문에 AI의 힘을 빌려보기로했다. 처음 구조는 내가 잡았고 필요한 부분만 요청하였다. 예를 들어 디자인을 이렇게 해줘, 반응형일땜 이렇게 해줘, 추천을 받으면 이런식으로 보여줘 등등 자세하게 말해주며 개발을 진행하였다. 잘 해주기는 하지만 결국에는 내가 확인하고 수정하는 작업이 있어야했다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;지원사업 신청&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;카뮤니티를 만들며 여러 지원사업을 신청하기로 하였다. 서버비 지원이든 활동비 지원이든 투자와 비슷한 개념이든말이다. 그러기위해선 사업계획서를 작성이 필요한데 항목에는 우리 사업이 아떤것이고 왜 만들게 되었고 기대 수익과 향후 계획등이 필요하였다. 농구활동하며 소통을 하고 싶다는 목적으로 출발하였으니 목적이나 배경에는 이러한 내용을 주로 담았다. 문제는 기대 수익과 관련된 것들이었다. 커뮤니티의 주된 수익은 결국 광고가 될 것이다. 우리는 광고에 관련된 비용들을 찾아보기 시작하였다. 클릭당 광고비 &amp;times; 한 달 방문자와 같은 것으로 산정하였다. 또한 AI 학습을 위한 데이터 판매도 같이 제출해보았다. 지출 계획에는 서버와 관련된 비용을 산정하였다. 우선 아마존 EC2와 RDB, 호스팅, 저장소의 서울 리전의 비용을 넣었고 활동비 개념으로 1인당 비용을 넣어 제출하였다. 결과눈 모두 선정되지 않았다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;오픈을 목표로&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;PMCS24가 9월 말에 끝나서 우리의 목표도 이 때 같이 오픈하자였다. 주 1회 오프라인 회의를 지속하며 점점 발전시켜나갔다. 어느정도 개발을 완료하고 테스트를 진행하며 우리의 커뮤니티 푸로젝트를 슬슬 마감지었다. PMCS24 마감일에 밎춰서 오픈하였고 가입자를 보았는데 5명정도 가입해주었다. 5명도 너무 좋았다. 뭔가 내 서비스를 실제로 이용하려는 사람이 있다는데 이런 기분이구나를 느낄 수 있었다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;앞으로 나는 어디로 가야할까?&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;개발자로 일하며 지칠때도 있었고 재밌을때도 있었다. 그러면서 나는 어느 방향으로 나아가야 하는가 매번 생각이 들었다. 그런 생각을 잠시 내려놓고 하고싶은 것을 해보니 조금 정리되었다. 개발이라는 큰 틀은 가져가지만 그 안에 다양한 직군이 있으니 넓게 생각해보기로 정하였다. 퇴사 후 그냥 쉬기만 했으면 이렇게 생각하지 못했을텐데 사이드 프러젝트를 하며 한 단계 성장한 것 같다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;소개 이미지&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;01.png&quot; data-origin-width=&quot;3180&quot; data-origin-height=&quot;2475&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9LCQl/btsQ4iCSbSF/5DjdEjFsjKaGgRiEjU58x0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9LCQl/btsQ4iCSbSF/5DjdEjFsjKaGgRiEjU58x0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9LCQl/btsQ4iCSbSF/5DjdEjFsjKaGgRiEjU58x0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9LCQl%2FbtsQ4iCSbSF%2F5DjdEjFsjKaGgRiEjU58x0%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;3180&quot; height=&quot;2475&quot; data-filename=&quot;01.png&quot; data-origin-width=&quot;3180&quot; data-origin-height=&quot;2475&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;02.png&quot; data-origin-width=&quot;2681&quot; data-origin-height=&quot;2475&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baySgq/btsQ7fdrXqE/j2Utif6pIJkdkftk9mXkmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baySgq/btsQ7fdrXqE/j2Utif6pIJkdkftk9mXkmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baySgq/btsQ7fdrXqE/j2Utif6pIJkdkftk9mXkmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaySgq%2FbtsQ7fdrXqE%2Fj2Utif6pIJkdkftk9mXkmk%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;2681&quot; height=&quot;2475&quot; data-filename=&quot;02.png&quot; data-origin-width=&quot;2681&quot; data-origin-height=&quot;2475&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;03.png&quot; data-origin-width=&quot;3180&quot; data-origin-height=&quot;2475&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1ZZJb/btsQ4DtM5Rl/soQiIniArODyhxfA3Z21HK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1ZZJb/btsQ4DtM5Rl/soQiIniArODyhxfA3Z21HK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1ZZJb/btsQ4DtM5Rl/soQiIniArODyhxfA3Z21HK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1ZZJb%2FbtsQ4DtM5Rl%2FsoQiIniArODyhxfA3Z21HK%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;3180&quot; height=&quot;2475&quot; data-filename=&quot;03.png&quot; data-origin-width=&quot;3180&quot; data-origin-height=&quot;2475&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;04.png&quot; data-origin-width=&quot;2685&quot; data-origin-height=&quot;2475&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccUeWO/btsQ32G1ISw/yUo6XcfK0h06CpifDlnAzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccUeWO/btsQ32G1ISw/yUo6XcfK0h06CpifDlnAzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccUeWO/btsQ32G1ISw/yUo6XcfK0h06CpifDlnAzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccUeWO%2FbtsQ32G1ISw%2FyUo6XcfK0h06CpifDlnAzK%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;2685&quot; height=&quot;2475&quot; data-filename=&quot;04.png&quot; data-origin-width=&quot;2685&quot; data-origin-height=&quot;2475&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;깃허브 링크&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/sc303030/picknpop-be&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/sc303030/picknpop-be&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1760095279588&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - sc303030/picknpop-be: 농구 커뮤니티 픽앤팝 백엔드&quot; data-og-description=&quot;농구 커뮤니티 픽앤팝 백엔드. Contribute to sc303030/picknpop-be development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/sc303030/picknpop-be&quot; data-og-url=&quot;https://github.com/sc303030/picknpop-be&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c7NvOF/hyZKaWtfLb/nyPAcETPMSJXjcWqBzsDx0/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185,https://scrap.kakaocdn.net/dn/cslxTV/hyZKJYo8Cd/96knEQKEB8tf3mYhZuUsm0/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185&quot;&gt;&lt;a href=&quot;https://github.com/sc303030/picknpop-be&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/sc303030/picknpop-be&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c7NvOF/hyZKaWtfLb/nyPAcETPMSJXjcWqBzsDx0/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185,https://scrap.kakaocdn.net/dn/cslxTV/hyZKJYo8Cd/96knEQKEB8tf3mYhZuUsm0/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185');&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;GitHub - sc303030/picknpop-be: 농구 커뮤니티 픽앤팝 백엔드&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;농구 커뮤니티 픽앤팝 백엔드. Contribute to sc303030/picknpop-be development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/sc303030/picknpop-be-user&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/sc303030/picknpop-be-user&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1760095311139&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - sc303030/picknpop-be-user: 농구 커뮤니티 픽앤팝 백엔드 - 회원관리&quot; data-og-description=&quot;농구 커뮤니티 픽앤팝 백엔드 - 회원관리. Contribute to sc303030/picknpop-be-user development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/sc303030/picknpop-be-user&quot; data-og-url=&quot;https://github.com/sc303030/picknpop-be-user&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bJAfu1/hyZKKJJKd7/jTDp7LG91gbNkWfsWIetA1/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185,https://scrap.kakaocdn.net/dn/BLUgW/hyZKISKFNw/EDGTHIdImyW5ZyKHoqyfZK/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185&quot;&gt;&lt;a href=&quot;https://github.com/sc303030/picknpop-be-user&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/sc303030/picknpop-be-user&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bJAfu1/hyZKKJJKd7/jTDp7LG91gbNkWfsWIetA1/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185,https://scrap.kakaocdn.net/dn/BLUgW/hyZKISKFNw/EDGTHIdImyW5ZyKHoqyfZK/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185');&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;GitHub - sc303030/picknpop-be-user: 농구 커뮤니티 픽앤팝 백엔드 - 회원관리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;농구 커뮤니티 픽앤팝 백엔드 - 회원관리. Contribute to sc303030/picknpop-be-user development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/sc303030/picknpop-fe&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/sc303030/picknpop-fe&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1760095324684&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - sc303030/picknpop-fe: 농구 커뮤니티 픽앤팝 프론트엔드&quot; data-og-description=&quot;농구 커뮤니티 픽앤팝 프론트엔드. Contribute to sc303030/picknpop-fe development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/sc303030/picknpop-fe&quot; data-og-url=&quot;https://github.com/sc303030/picknpop-fe&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/NoSTL/hyZKOekVYV/Sr2CvbaXqenKLUbbauKHqk/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185,https://scrap.kakaocdn.net/dn/cDs9i1/hyZKRITfRj/Npf3mGGiJbTkL5pz4OfzMk/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185&quot;&gt;&lt;a href=&quot;https://github.com/sc303030/picknpop-fe&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/sc303030/picknpop-fe&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/NoSTL/hyZKOekVYV/Sr2CvbaXqenKLUbbauKHqk/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185,https://scrap.kakaocdn.net/dn/cDs9i1/hyZKRITfRj/Npf3mGGiJbTkL5pz4OfzMk/img.png?width=1200&amp;amp;height=600&amp;amp;face=982_103_1057_185');&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;GitHub - sc303030/picknpop-fe: 농구 커뮤니티 픽앤팝 프론트엔드&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;농구 커뮤니티 픽앤팝 프론트엔드. Contribute to sc303030/picknpop-fe development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로젝트</category>
      <category>AWS</category>
      <category>Be</category>
      <category>FE</category>
      <category>개발</category>
      <category>농구</category>
      <category>백엔드</category>
      <category>사이드프로젝트</category>
      <category>커뮤니티</category>
      <category>프론트엔드</category>
      <category>픽앤팝</category>
      <author>목표는 커리</author>
      <guid isPermaLink="true">https://maximum-curry30.tistory.com/698</guid>
      <comments>https://maximum-curry30.tistory.com/698#entry698comment</comments>
      <pubDate>Tue, 26 Nov 2024 15:34:17 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 문자열 밀기 파이썬</title>
      <link>https://maximum-curry30.tistory.com/697</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;문제 설명&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;문자열 &amp;quot;hello&amp;quot;에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 &amp;quot;ohell&amp;quot;이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 &lt;code&gt;A&lt;/code&gt;와 &lt;code&gt;B&lt;/code&gt;가 매개변수로 주어질 때, &lt;code&gt;A&lt;/code&gt;를 밀어서 &lt;code&gt;B&lt;/code&gt;가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 &lt;code&gt;B&lt;/code&gt;가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.&lt;/p&gt;
&lt;hr&gt;
&lt;h5&gt;제한사항&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;0 &amp;lt; &lt;code&gt;A&lt;/code&gt;의 길이 = &lt;code&gt;B&lt;/code&gt;의 길이 &amp;lt; 100&lt;/li&gt;
&lt;li&gt;&lt;code&gt;A&lt;/code&gt;, &lt;code&gt;B&lt;/code&gt;는 알파벳 소문자로 이루어져 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예&lt;/h5&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;A&lt;/th&gt;
&lt;th&gt;B&lt;/th&gt;
&lt;th&gt;result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&amp;quot;hello&amp;quot;&lt;/td&gt;
&lt;td&gt;&amp;quot;ohell&amp;quot;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;quot;apple&amp;quot;&lt;/td&gt;
&lt;td&gt;&amp;quot;elppa&amp;quot;&lt;/td&gt;
&lt;td&gt;-1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;quot;atat&amp;quot;&lt;/td&gt;
&lt;td&gt;&amp;quot;tata&amp;quot;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;quot;abc&amp;quot;&lt;/td&gt;
&lt;td&gt;&amp;quot;abc&amp;quot;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예 설명&lt;/h5&gt;
&lt;p&gt;입출력 예 #1&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;hello&amp;quot;를 오른쪽으로 한 칸 밀면 &amp;quot;ohell&amp;quot;가 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;apple&amp;quot;은 몇 번을 밀어도 &amp;quot;elppa&amp;quot;가 될 수 없습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #3&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;atat&amp;quot;는 오른쪽으로 한 칸, 세 칸을 밀면 &amp;quot;tata&amp;quot;가 되므로 최소 횟수인 1을 반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #4&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;abc&amp;quot;는 밀지 않아도 &amp;quot;abc&amp;quot;이므로 0을 반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;제출 답안&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;ul&gt;
&lt;li&gt;단순히 &lt;code&gt;rotate&lt;/code&gt;를 사용해서 비교하였다.&lt;/li&gt;
&lt;li&gt;다른 답안에는 &lt;code&gt;B&lt;/code&gt;를 2배로 늘려서 &lt;code&gt;A&lt;/code&gt;를 찾아 맨 처음 인덱스를 반환하는 식으로 하였다.&lt;ul&gt;
&lt;li&gt;이 방법이 최고다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from collections import deque

def solution(A, B):
    if A == B:
        return 0
    for i in range(1, len(A) + 1):
        a = deque(A)
        a.rotate(i)
        rot = &amp;#39;&amp;#39;.join(a)
        if rot == B:
            return i
    return -1&lt;/code&gt;&lt;/pre&gt;</description>
      <category>알고리즘/풀이</category>
      <category>PYTHON</category>
      <category>알고리즘</category>
      <category>코딩테스트</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>목표는 커리</author>
      <guid isPermaLink="true">https://maximum-curry30.tistory.com/697</guid>
      <comments>https://maximum-curry30.tistory.com/697#entry697comment</comments>
      <pubDate>Tue, 7 Nov 2023 22:41:29 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 특이한 정렬 파이썬</title>
      <link>https://maximum-curry30.tistory.com/696</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;문제 설명&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;정수 &lt;code&gt;n&lt;/code&gt;을 기준으로 &lt;code&gt;n&lt;/code&gt;과 가까운 수부터 정렬하려고 합니다. 이때 &lt;code&gt;n&lt;/code&gt;으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 &lt;code&gt;numlist&lt;/code&gt;와 정수 &lt;code&gt;n&lt;/code&gt;이 주어질 때 &lt;code&gt;numlist&lt;/code&gt;의 원소를 &lt;code&gt;n&lt;/code&gt;으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요.&lt;/p&gt;
&lt;hr&gt;
&lt;h5&gt;제한사항&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ &lt;code&gt;n&lt;/code&gt; ≤ 10,000&lt;/li&gt;
&lt;li&gt;1 ≤ &lt;code&gt;numlist&lt;/code&gt;의 원소 ≤ 10,000&lt;/li&gt;
&lt;li&gt;1 ≤ &lt;code&gt;numlist&lt;/code&gt;의 길이 ≤ 100&lt;/li&gt;
&lt;li&gt;&lt;code&gt;numlist&lt;/code&gt;는 중복된 원소를 갖지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예&lt;/h5&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;numlist&lt;/th&gt;
&lt;th&gt;n&lt;/th&gt;
&lt;th&gt;result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;[1, 2, 3, 4, 5, 6]&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;[4, 5, 3, 6, 2, 1]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[10000,20,36,47,40,6,10,7000]&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;[36, 40, 20, 47, 10, 6, 7000, 10000]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예 설명&lt;/h5&gt;
&lt;p&gt;입출력 예 #1&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;4에서 가까운 순으로 [4, 5, 3, 6, 2, 1]을 return합니다.&lt;/li&gt;
&lt;li&gt;3과 5는 거리가 같으므로 더 큰 5가 앞에 와야 합니다.&lt;/li&gt;
&lt;li&gt;2와 6은 거리가 같으므로 더 큰 6이 앞에 와야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;30에서 가까운 순으로 [36, 40, 20, 47, 10, 6, 7000, 10000]을 return합니다.&lt;/li&gt;
&lt;li&gt;20과 40은 거리가 같으므로 더 큰 40이 앞에 와야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;제출 답안&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;def solution(numlist, n):
    answer = sorted(numlist, key=lambda x:(abs(x-n), -x))
    return answer&lt;/code&gt;&lt;/pre&gt;</description>
      <category>알고리즘/풀이</category>
      <category>PYTHON</category>
      <category>알고리즘</category>
      <category>코딩테스트</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>목표는 커리</author>
      <guid isPermaLink="true">https://maximum-curry30.tistory.com/696</guid>
      <comments>https://maximum-curry30.tistory.com/696#entry696comment</comments>
      <pubDate>Mon, 6 Nov 2023 22:59:12 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 다항식 더하기 파이썬</title>
      <link>https://maximum-curry30.tistory.com/695</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;문제 설명&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 &lt;code&gt;polynomial&lt;/code&gt;이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h5&gt;제한사항&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;0 &amp;lt; &lt;code&gt;polynomial&lt;/code&gt;에 있는 수 &amp;lt; 100&lt;/li&gt;
&lt;li&gt;&lt;code&gt;polynomial&lt;/code&gt;에 변수는 &amp;#39;x&amp;#39;만 존재합니다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;polynomial&lt;/code&gt;은 양의 정수, 공백, ‘x’, ‘+&amp;#39;로 이루어져 있습니다.&lt;/li&gt;
&lt;li&gt;항과 연산기호 사이에는 항상 공백이 존재합니다.&lt;/li&gt;
&lt;li&gt;공백은 연속되지 않으며 시작이나 끝에는 공백이 없습니다.&lt;/li&gt;
&lt;li&gt;하나의 항에서 변수가 숫자 앞에 오는 경우는 없습니다.&lt;/li&gt;
&lt;li&gt;&amp;quot; + 3xx + + x7 + &amp;quot;와 같은 잘못된 입력은 주어지지 않습니다.&lt;/li&gt;
&lt;li&gt;0으로 시작하는 수는 없습니다.&lt;/li&gt;
&lt;li&gt;문자와 숫자 사이의 곱하기는 생략합니다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;polynomial&lt;/code&gt;에는 일차 항과 상수항만 존재합니다.&lt;/li&gt;
&lt;li&gt;계수 1은 생략합니다.&lt;/li&gt;
&lt;li&gt;결괏값에 상수항은 마지막에 둡니다.&lt;/li&gt;
&lt;li&gt;0 &amp;lt; &lt;code&gt;polynomial&lt;/code&gt;의 길이 &amp;lt; 50&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예&lt;/h5&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;polynomial&lt;/th&gt;
&lt;th&gt;result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&amp;quot;3x + 7 + x&amp;quot;&lt;/td&gt;
&lt;td&gt;&amp;quot;4x + 7&amp;quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;quot;x + x + x&amp;quot;&lt;/td&gt;
&lt;td&gt;&amp;quot;3x&amp;quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예 설명&lt;/h5&gt;
&lt;p&gt;입출력 예 #1&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;3x + 7 + x&amp;quot;에서 동류항끼리 더하면 &amp;quot;4x + 7&amp;quot;입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;x + x + x&amp;quot;에서 동류항끼리 더하면 &amp;quot;3x&amp;quot;입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;제출 답안&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;ol&gt;
&lt;li&gt;&lt;code&gt;+&lt;/code&gt;를 기준으로 split한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;i&lt;/code&gt;에서 &lt;code&gt;x&lt;/code&gt;가 있는지 확인한다.&lt;ol&gt;
&lt;li&gt;있으면 &lt;code&gt;x&lt;/code&gt;의 길이로 더할 값을 정한다.&lt;/li&gt;
&lt;li&gt;없으면 상수이므로 &lt;code&gt;num&lt;/code&gt;에 값을 더한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt;와 &lt;code&gt;num&lt;/code&gt;이 0인지 아닌지 구분하여 값을 반환하면 된다.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;def solution(polynomial):
    x, num = 0,0
    for i in polynomial.split(&amp;quot;+&amp;quot;):
        i = i.strip()
        if &amp;quot;x&amp;quot; in i:
            x += 1 if len(i) == 1 else int(i[:-1])
        else:
            num += int(i)
    if x == 0:
        return f&amp;quot;{num}&amp;quot;
    answer = &amp;quot;x&amp;quot; if x == 1 else f&amp;quot;{x}x&amp;quot;
    if num == 0:
        return answer
    return answer + f&amp;quot; + {num}&amp;quot;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>알고리즘/풀이</category>
      <category>PYTHON</category>
      <category>알고리즘</category>
      <category>코딩테스트</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>목표는 커리</author>
      <guid isPermaLink="true">https://maximum-curry30.tistory.com/695</guid>
      <comments>https://maximum-curry30.tistory.com/695#entry695comment</comments>
      <pubDate>Sun, 5 Nov 2023 21:50:03 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 주사위 게임 3 파이썬</title>
      <link>https://maximum-curry30.tistory.com/694</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;문제 설명&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;1부터 6까지 숫자가 적힌 주사위가 네 개 있습니다. 네 주사위를 굴렸을 때 나온 숫자에 따라 다음과 같은 점수를 얻습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;네 주사위에서 나온 숫자가 모두 p로 같다면 1111 × p점을 얻습니다.&lt;/li&gt;
&lt;li&gt;세 주사위에서 나온 숫자가 p로 같고 나머지 다른 주사위에서 나온 숫자가 q(p ≠ q)라면 (10 × p + q)2 점을 얻습니다.&lt;/li&gt;
&lt;li&gt;주사위가 두 개씩 같은 값이 나오고, 나온 숫자를 각각 p, q(p ≠ q)라고 한다면 (p + q) × |p - q|점을 얻습니다.&lt;/li&gt;
&lt;li&gt;어느 두 주사위에서 나온 숫자가 p로 같고 나머지 두 주사위에서 나온 숫자가 각각 p와 다른 q, r(q ≠ r)이라면 q × r점을 얻습니다.&lt;/li&gt;
&lt;li&gt;네 주사위에 적힌 숫자가 모두 다르다면 나온 숫자 중 가장 작은 숫자 만큼의 점수를 얻습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;네 주사위를 굴렸을 때 나온 숫자가 정수 매개변수 &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;b&lt;/code&gt;, &lt;code&gt;c&lt;/code&gt;, &lt;code&gt;d&lt;/code&gt;로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.&lt;/p&gt;
&lt;hr&gt;
&lt;h5&gt;제한사항&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;a&lt;/code&gt;, &lt;code&gt;b&lt;/code&gt;, &lt;code&gt;c&lt;/code&gt;, &lt;code&gt;d&lt;/code&gt;는 1 이상 6 이하의 정수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예&lt;/h5&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;a&lt;/th&gt;
&lt;th&gt;b&lt;/th&gt;
&lt;th&gt;c&lt;/th&gt;
&lt;th&gt;d&lt;/th&gt;
&lt;th&gt;result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2222&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;1681&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예 설명&lt;/h5&gt;
&lt;p&gt;입출력 예 #1&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;예제 1번에서 네 주사위 숫자가 모두 2로 같으므로 1111 × 2 = 2222점을 얻습니다. 따라서 2222를 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;예제 2번에서 세 주사위에서 나온 숫자가 4로 같고 나머지 다른 주사위에서 나온 숫자가 1이므로 (10 × 4 + 1)2 = 412 = 1681점을 얻습니다. 따라서 1681을 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #3&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;예제 3번에서 &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;d&lt;/code&gt;는 6으로, &lt;code&gt;b&lt;/code&gt;, &lt;code&gt;c&lt;/code&gt;는 3으로 각각 같으므로 (6 + 3) × |6 - 3| = 9 × 3 = 27점을 얻습니다. 따라서 27을 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #4&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;예제 4번에서 두 주사위에서 2가 나오고 나머지 다른 두 주사위에서 각각 5, 6이 나왔으므로 5 × 6 = 30점을 얻습니다. 따라서 30을 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #5&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;예제 5번에서 네 주사위 숫자가 모두 다르고 나온 숫자 중 가장 작은 숫자가 2이므로 2점을 얻습니다. 따라서 2를 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;제출 답안&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Counter&lt;/code&gt; 를 사용해서 개수를 구한다.&lt;ul&gt;
&lt;li&gt;기본 형태가 &lt;code&gt;dict&lt;/code&gt;로 되어있기에 리스트컴프리헨션을 사용하여 리스트로 변환한다.&lt;/li&gt;
&lt;li&gt;다시 많이 사용된 순서로 sotred한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;그 다음부터는 문제에서 제시된 조건에 맞춰 작성하면 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from collections import Counter

def solution(a, b, c, d):
    cnt = [(key, value) for key, value in Counter([a, b, c, d]).items()]
    cnt = sorted(cnt, key=lambda x: -x[1])
    if cnt[0][1] == 4:
        return 1111 * a
    elif cnt[0][1] == 3:
        return ((10 * cnt[0][0]) + cnt[1][0]) ** 2
    elif cnt[0][1] == 2:
        if cnt[1][1] == 2:
            return (cnt[0][0] + cnt[1][0]) * abs(cnt[0][0] - cnt[1][0])
        return cnt[1][0] * cnt[2][0]
    return min(a, b, c, d)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>알고리즘/풀이</category>
      <category>PYTHON</category>
      <category>알고리즘</category>
      <category>코딩테스트</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>목표는 커리</author>
      <guid isPermaLink="true">https://maximum-curry30.tistory.com/694</guid>
      <comments>https://maximum-curry30.tistory.com/694#entry694comment</comments>
      <pubDate>Fri, 3 Nov 2023 22:15:16 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 안전지대 파이썬</title>
      <link>https://maximum-curry30.tistory.com/693</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;문제 설명&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다.&lt;br&gt;&lt;img src=&quot;https://grepp-programmers.s3.ap-northeast-2.amazonaws.com/files/production/124a2c93-da99-4643-96a8-292bb871f553/image.png&quot; alt=&quot;image.png&quot;&gt;&lt;br&gt;지뢰는 2차원 배열 &lt;code&gt;board&lt;/code&gt;에 1로 표시되어 있고 &lt;code&gt;board&lt;/code&gt;에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다.&lt;br&gt;지뢰가 매설된 지역의 지도 &lt;code&gt;board&lt;/code&gt;가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요.&lt;/p&gt;
&lt;hr&gt;
&lt;h5&gt;제한사항&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;board&lt;/code&gt;는 n * n 배열입니다.&lt;/li&gt;
&lt;li&gt;1 ≤ n ≤ 100&lt;/li&gt;
&lt;li&gt;지뢰는 1로 표시되어 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;board&lt;/code&gt;에는 지뢰가 있는 지역 1과 지뢰가 없는 지역 0만 존재합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예&lt;/h5&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;board&lt;/th&gt;
&lt;th&gt;result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]]&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 1, 0], [0, 0, 0, 0, 0]]&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[[1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1]]&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예 설명&lt;/h5&gt;
&lt;p&gt;입출력 예 #1&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(3, 2)에 지뢰가 있으므로 지뢰가 있는 지역과 지뢰와 인접한 위, 아래, 좌, 우, 대각선 총 8칸은 위험지역입니다. 따라서 16을 return합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(3, 2), (3, 3)에 지뢰가 있으므로 지뢰가 있는 지역과 지뢰와 인접한 위, 아래, 좌, 우, 대각선은 위험지역입니다. 따라서 위험지역을 제외한 칸 수 13을 return합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #3&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;모든 지역에 지뢰가 있으므로 안전지역은 없습니다. 따라서 0을 return합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;제출 답안&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;ul&gt;
&lt;li&gt;지뢰지역을 &lt;code&gt;q&lt;/code&gt;에 담아서 &lt;code&gt;bfs&lt;/code&gt;를 하였다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cnt&lt;/code&gt;는 처음 지뢰 개수로 설정하였다.&lt;ul&gt;
&lt;li&gt;while문을 돌면서 지뢰에 인접한 지역들의 개수를 증가시켰다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;board&lt;/code&gt; 제곱한 값에서 &lt;code&gt;cnt&lt;/code&gt;를 빼면 안전한 지역의 개수가 나온다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from collections import deque

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


def solution(board):
    n, m = len(board), len(board[0])
    q = deque([])
    for y, v1 in enumerate(board):
        for x, v2 in enumerate(v1):
            if v2 == 1:
                q.append((y, x))
    cnt = len(q)
    while q:
        y, x = q.popleft()
        for i in range(8):
            ny = y + dy[i]
            nx = x + dx[i]
            if 0 &amp;lt;= ny &amp;lt; n and 0 &amp;lt;= nx &amp;lt; m:
                if board[ny][nx] != 1:
                    cnt += 1
                    board[ny][nx] = 1
    answer = (len(board) ** 2) - cnt
    return answer&lt;/code&gt;&lt;/pre&gt;</description>
      <category>알고리즘/풀이</category>
      <category>PYTHON</category>
      <category>알고리즘</category>
      <category>코딩테스트</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>목표는 커리</author>
      <guid isPermaLink="true">https://maximum-curry30.tistory.com/693</guid>
      <comments>https://maximum-curry30.tistory.com/693#entry693comment</comments>
      <pubDate>Thu, 2 Nov 2023 22:30:32 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 배열 만들기 2 파이썬</title>
      <link>https://maximum-curry30.tistory.com/692</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;문제 설명&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;정수 &lt;code&gt;l&lt;/code&gt;과 &lt;code&gt;r&lt;/code&gt;이 주어졌을 때, &lt;code&gt;l&lt;/code&gt; 이상 &lt;code&gt;r&lt;/code&gt;이하의 정수 중에서 숫자 &amp;quot;0&amp;quot;과 &amp;quot;5&amp;quot;로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.&lt;/p&gt;
&lt;p&gt;만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h5&gt;제한사항&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;1 ≤ &lt;code&gt;l&lt;/code&gt; ≤ &lt;code&gt;r&lt;/code&gt; ≤ 1,000,000&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예&lt;/h5&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;l&lt;/th&gt;
&lt;th&gt;r&lt;/th&gt;
&lt;th&gt;result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;555&lt;/td&gt;
&lt;td&gt;[5, 50, 55, 500, 505, 550, 555]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;[-1]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h5&gt;입출력 예 설명&lt;/h5&gt;
&lt;p&gt;입출력 예 #1&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5 이상 555 이하의 0과 5로만 이루어진 정수는 작은 수부터 5, 50, 55, 500, 505, 550, 555가 있습니다. 따라서 [5, 50, 55, 500, 505, 550, 555]를 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;입출력 예 #2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;10 이상 20 이하이면서 0과 5로만 이루어진 정수는 없습니다. 따라서 [-1]을 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;제출 답안&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;ul&gt;
&lt;li&gt;단순하게 중복 순열을 사용하여 풀이하였다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from itertools import product

def solution(l, r):
    answer = set()
    combi = [product([&amp;quot;0&amp;quot;, &amp;quot;5&amp;quot;], repeat=i) for i in range(1, len(str(r)) + 1)]
    for com in combi:
        for c in com:
            num = int(&amp;quot;&amp;quot;.join(c))
            if l &amp;lt;= num &amp;lt;= r:
                answer.add(num)
    answer = sorted(list(answer))
    return answer if answer else [-1]&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;h3&gt;차집합 사용&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;ul&gt;
&lt;li&gt;차집합을 사용하면 &lt;code&gt;0&lt;/code&gt;과 &lt;code&gt;5&lt;/code&gt;중에 조건에 해당되는 것들이 없어지면 빈 집합이 나온다.&lt;/li&gt;
&lt;li&gt;그것을 기준으로 값을 구하면 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;def solution(l, r):
    answer = []
    for num in range(l, r + 1):
        if not set(str(num)) - set([&amp;#39;0&amp;#39;, &amp;#39;5&amp;#39;]):
            answer.append(num)
    return answer if answer else [-1]&lt;/code&gt;&lt;/pre&gt;</description>
      <category>알고리즘/풀이</category>
      <category>PYTHON</category>
      <category>알고리즘</category>
      <category>코딩테스트</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>목표는 커리</author>
      <guid isPermaLink="true">https://maximum-curry30.tistory.com/692</guid>
      <comments>https://maximum-curry30.tistory.com/692#entry692comment</comments>
      <pubDate>Tue, 31 Oct 2023 18:41:08 +0900</pubDate>
    </item>
  </channel>
</rss>