<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>비망록</title>
    <link>https://kaeo007.tistory.com/</link>
    <description>모든 글은 일기 형식으로 작성됩니다.</description>
    <language>ko</language>
    <pubDate>Sat, 13 Jun 2026 12:58:06 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>노움이인사하면안노움</managingEditor>
    <image>
      <title>비망록</title>
      <url>https://tistory1.daumcdn.net/tistory/7690894/attach/4edc151527ec420fad2fc3ad7a6e9977</url>
      <link>https://kaeo007.tistory.com</link>
    </image>
    <item>
      <title>[헤밍웨이] 노인과 바다 / 킬리만자로의 눈</title>
      <link>https://kaeo007.tistory.com/28</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 SNS 쇼츠 영상을 통한 집중력 저하와 독해력 저하가 좀 체감이 돼서... 도파민 디톡스 느낌으로 책을 조금씩 읽기 시작했다. 시작은 일단 유명한 작품인 헤밍웨이의 작품으로 시작하려고 한다. 헤밍웨이 다음으로는 헤르만 헤세의 작품을 리뷰해보고자 한다. 아마 수레바퀴 아래서와 데미안을 리뷰할 것같은데, 수레바퀴 아래서는 이미 읽었고 데미안은 읽는 중이다.&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;노인과 바다&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나이가 들어 낚시에 나갈때 마다 허탕치는 노인과 그를 따라다니는 소년의 이야기다(물론 전체적인 작품의 흐름에 있어 주인공은 노인이다). 노인 밑에서 뱃일을 배우던 소년은 소득이 없자 부모님의 말씀 아래 다른 배로 갈아타지만, 노인과 지속적으로 관계한다. 계속 허탕만 치던 노인은 거대한 물고기와 조우하여 죽음을 각오한 싸움을 통해 승리하게 된다. 물고기가 너무 커 배에 실을 수 없던 노인은 배 옆에 묶어두고 육지를 향한 항해를 시작한다. 하지만 잡은 물고기의 피 냄새를 맡고 상어들이 몰려오게 된다. 처음엔 성공적으로 물리쳤지만, 상어들의 공격은 끊이질 않았다. 노인은 없는 자원을 모두 끌어모아 상어들에게 대항한다. 상어들은 집요하게 공격하여 물고기의 살점을 조금씩 뜯어갔다. 결국 자원이 바닥나게 되고, 물고기를 조금이라도 지키고 싶은 노인은 맨 몸으로 상어들에게 대항하게 되지만... 결과는 상어들에게 잡은 물고기의 살을 모두 빼앗기고 뼈만 가지게 된다. 막바지에 노인은 다 포기한듯이 상어들이 살점을 뜯어가는 것을 방치하는 모습도 나타난다. 노인은 거대한 물고기 뼈만 가진채 육지에 도착하였고, 아침이 되자 마을 사람들은 뼈의 길이를 측정해보며 놀란다. 그리고 노인은 소년과 못다한 얘기를 나누며 이야기는 마무리된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;헤밍웨이는 이 작품을 통해 무엇을 전하고 싶었을까? 일단 내 생각엔 성공과 실패에 대한 자신의 생각을 표현한 듯 하다. 포기하지 않고 계속해서 낚시를 함으로써 얻어낸 큰 고기, 이는 항상 꾸준히 포기하지 않고 도전하면 목표를 달성할 수 있음을 의미하는 듯 하다. 반면, 잡은 물고기를 지키기 위해 싸움을 벌이지만 뼈만 남게되는 것은 성공 이후에 찾아올 수 있는 실패와 그 실패에 끊임없이 저항하는 인간의 모습을 표현하는 듯 하다. 헤밍웨이는 결국 성공이 값지고 실패는 무가치하다는 이분법적인 모습을 표현하기 보단, 성공과 실패의 과정에서 끊임없이 도전하고 저항하는 인간의 모습 자체가 아름답다는 것을 말하고 싶었던 것 같다.&lt;/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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;킬리만자로의 눈&lt;/b&gt;&lt;/h4&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;작품초반에는 '킬리만자로의 서쪽 봉우리 근처에는 말라 얼어붙은 표범의 시체가 있다'라고 표현하며 글을 시작한다. 킬리만자로의 봉우리는 해발 5895미터에 이르는 높이로, 동물들이 그곳에 올라가기는 불가능하다고 한다. 그럼 헤밍웨이가 이 구문을 삽입한데에는 이유가 있을 것이다. 그 이유는 무엇일까. 있지도 않은 허구의 이야기로 작품을 시작한것은, 아마 두괄식으로 작품을 쓴 것이 아닐까란 생각이 든다. 물론 많은 유추가 필요한 추상적인 문구이지만, 뒤의 이야기를 읽으며 앞의 내용을 좀 더 구체화할 수 있는 느낌의 문장구조이다. 내 생각으론, 여기서 표범은 주인공을 의미하는 듯 하다. '서쪽 봉우리 근처에서 말라 얼어붙은 시체'라는 것은 봉우리에 오르는 목표를 달성하지 못하고 죽음을 의미하는 듯하다. 결국 주인공이 작가로서 이루고 싶은 목표를 달성하지 못하고 죽는 모습을 담는 짧은 허구 문구인것이다. 이를 통해 인간의 한계, 비참함을 느낄 수 있지만 헤밍웨이는 주인공의 죽음 직전에 환상으로 봉우리에 도달하는 모습을 보여줌으로 도전하며 목표를 향해 나아가는 것을 긍정적으로 바라본 듯 하다. 그는 '도전의 아름다움'을 강조한다고 난 느꼈다.&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;내가 해석한 방향에 근거하여 헤밍웨이에게 질문을 해보고 싶다. 도전이 정말 아름답다면, 무모한 도전도 아름다운 것인가? 우리 집 앞에 돌단을 10단 쌓는 목표를 지정하고 실행하는 것 또한 도전이라고 할 수 있는가? 물 위를 걷기 위한 목표를 설정하고 매일을 물가에서 노력하는 것 또한 아름다운 도전인가? 아마 헤밍웨이는 상술한 도전들이 모두 '아름답다'라고 표현하리라. 목표를 정하고 이를 달성하기 위한 도전 자체를 아름답다고 보기 때문이다. 단지, 구체적인 목표 없이 '이렇게 하다보면 뭐라도 되겠지'라는 생각을 갖고 실행한 행동들에 대해선 부정할 것이라 생각한다. 결국 헤밍웨이는 '목적의식이 뚜렷한' 도전이 아름답다는 메세지를 보내는 것 같다. 앞으로의 자신의 행동에 대해 목적의식을 명확히하는 습관을 들이도록 하자는 다짐을 하게 된다.&amp;nbsp;&lt;/p&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;킬리만자로의 눈을 읽을 땐 솔직히 잘 안읽혔다. 독해 능력이 떨어진것도 있지만 현재와 과거를 왔다갔다 하는 전개때문에 무슨 얘기를 하는지 집중이 잘 안됐는데.. 리뷰를 해보니까 아 이게 그런 얘기였구나&amp;nbsp; 라는 생각이 들더라. 책은 읽고 끝나는 것이 아니라 곱씹으면서 의미를 다시한번 생각해 보는 시간을 갖는것이 중요한 것 같다. 그래서 사람들이 독서토론을 하는건가?&lt;/p&gt;</description>
      <category>독서</category>
      <category>노인과 바다</category>
      <category>어니스트 헤밍웨이</category>
      <category>킬리만자로의 눈</category>
      <category>헤밍웨이</category>
      <author>노움이인사하면안노움</author>
      <guid isPermaLink="true">https://kaeo007.tistory.com/28</guid>
      <comments>https://kaeo007.tistory.com/28#entry28comment</comments>
      <pubDate>Wed, 8 Apr 2026 19:25:11 +0900</pubDate>
    </item>
    <item>
      <title>[코테] 프로그래머스 정수 내림 차순으로 배치하기 / 정수 제곱근 판별</title>
      <link>https://kaeo007.tistory.com/27</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;정답률 높은 1레벨은 사실상 0레벨 수준이라 .. 그냥 하던대로 2문제씩 하고있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 정수 내림 차순으로 배치하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12933&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/12933&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775480963839&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12933&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/4GZ8m/dJMb86nYgL9/Tt7aRKaYmLDTWHWtRI13Bk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bHbelT/dJMb86O2tHd/1kKP6KEHjS0Ea25lIQIdA0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12933&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12933&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/4GZ8m/dJMb86nYgL9/Tt7aRKaYmLDTWHWtRI13Bk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bHbelT/dJMb86O2tHd/1kKP6KEHjS0Ea25lIQIdA0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1775480966961&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;

using namespace std;

long long solution(long long n) {
    long long answer = 0;
    vector&amp;lt;int&amp;gt; tmp;
    string str=&quot;&quot;;
    string tmp_str = to_string(n);
    for (auto a : tmp_str) {
        tmp.push_back(a-'0');
    }
    sort(tmp.begin(),tmp.end());
    reverse(tmp.begin(),tmp.end());
    for (auto a : tmp) {
        str+=to_string(a);
    }
    answer = stoll(str);
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정수를 내림차순으로 바꿔주기 위해서 벡터 안에 숫자들을 넣은다음, 벡터를 sort-reverse로 내림차순 정렬을 해줬다.&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;span style=&quot;color: #ffffff; background-color: #263727;&quot;&gt;n이 &lt;span style=&quot;text-align: left;&quot;&gt;1이상 8000000000이하의 자연수&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&amp;nbsp; 라고 쓰여있기 때문에 str을 answer인 숫자로 변환하는 과정에서 stoi를 쓰면 오류가 난다. stoi는 string을 int로 바꿔주는 것이기 때문에 오버플로우가 발생하게 되는것...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #263727;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;그래서 안전하게 long long으로 바꿔주는 stoll 을 이용했다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ffffff; background-color: #263727;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;2. 정수 제곱근 판별&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #263727;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12934&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/12934&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775481218736&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12934&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cBPWMn/dJMb9c9yy8R/4LM3rz3kBKPwChT1uNhCS1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/dU3IDy/dJMb9lMcdgM/Q5rh6NlzBnArDtqsSAVOWK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12934&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12934&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cBPWMn/dJMb9c9yy8R/4LM3rz3kBKPwChT1uNhCS1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/dU3IDy/dJMb9lMcdgM/Q5rh6NlzBnArDtqsSAVOWK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1775481481599&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdbool.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;

long long solution(long long n) {
    long long answer = 0;
    for (long long i=1; i*i&amp;lt;=n; i++) {
        if (n==1) return 4;
        if (i*i == n) return (i+1)*(i+1);
    }
    return -1;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #263727;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;수학적인 이해가 있다면 어렵지 않은 문제.. 주의해야 할 부분은 n이 1일때 예외처리를 해주는 것과 i를 선언할때 습관적으로 int i로 선언하지 않는것. 두 개만 유의하면 어렵지 않다.&lt;/span&gt;&lt;/span&gt;&lt;/span&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 data-ke-size=&quot;size16&quot;&gt;포기하지 말자..&lt;/p&gt;</description>
      <category>공부</category>
      <category>정수 내림차순으로 배치하기</category>
      <category>정수 제곱근 판별</category>
      <category>코테</category>
      <category>프로그래머스</category>
      <author>노움이인사하면안노움</author>
      <guid isPermaLink="true">https://kaeo007.tistory.com/27</guid>
      <comments>https://kaeo007.tistory.com/27#entry27comment</comments>
      <pubDate>Mon, 6 Apr 2026 22:19:30 +0900</pubDate>
    </item>
    <item>
      <title>[코테] 프로그래머스 두 정수 사이의 합 / 문자열을 정수로 바꾸기 / 약수의 합 / 자연수를 뒤집어 배열로 만들기</title>
      <link>https://kaeo007.tistory.com/26</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘부터 1레벨 풀려고 정답률 높은 순으로 봤다. 근데 0레벨 수준의 문제들이 있어서(...) 여러개 풀었음&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 두 정수 사이의 합&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12912&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/12912&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775219935010&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12912&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c5qSmU/dJMb86O2eMa/S12BlFUAotMTt59IuJBww1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bQkUP6/dJMb8Rj2nCE/TmN0zSmiMgFmqUqKZEE2RK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12912&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12912&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c5qSmU/dJMb86O2eMa/S12BlFUAotMTt59IuJBww1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bQkUP6/dJMb8Rj2nCE/TmN0zSmiMgFmqUqKZEE2RK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&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;pre id=&quot;code_1775219940378&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

long long solution(int a, int b) {
    long long answer = 0;
    int max_ = max(a,b);
    int min_ = min(a,b);
    for(int i=min_; i&amp;lt;=max_; i++) {
        answer +=i;
    }
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 왜 1레벨인가 싶은 문제였음. 두 정수 사이의 합을 구하는 것이기에 그 사이에서 반복문 돌려서 더하면 끝.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 문자열을 정수로 바꾸기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12925&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/12925&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775220006630&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12925&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/d7q2xn/dJMb9gxlSt3/MrD5y6zJ2yo5KXrmTo6UmK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/DhQGC/dJMb9lk7A1y/3ThlCenBgOh13YM4AZSR4K/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12925&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12925&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/d7q2xn/dJMb9gxlSt3/MrD5y6zJ2yo5KXrmTo6UmK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/DhQGC/dJMb9lk7A1y/3ThlCenBgOh13YM4AZSR4K/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1775220008990&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

int solution(string s) {
    int answer = stoi(s);
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜 1레벨인지 모르겠는 문제2. string 라이브러리에 포함된 stoi 만 쓸 줄 알아도 한줄이면 풀린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 약수의 합&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12928&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/12928&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775220058388&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12928&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dlHpjN/dJMb8U8T2VA/kAalWqW7iv9abJY0hqldZK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/NlIhE/dJMb8QMcq4k/KKm3kGABY8YD3PsILS1qkk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12928&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12928&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dlHpjN/dJMb8U8T2VA/kAalWqW7iv9abJY0hqldZK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/NlIhE/dJMb8QMcq4k/KKm3kGABY8YD3PsILS1qkk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1775220061095&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

int solution(int n) {
    int answer = 0;
    for (int i=1; i&amp;lt;=n; i++) {
        if (n%i==0) answer += i;
    }
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체적으로 구현문제라서 쉬운듯 하다. 주어진 n값에다 어떤 수를 나눴을 때 나누어 떨어지면 약수이므로, 해당 값을 누적합해서 구하면 끝이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. 자연수를&amp;nbsp;뒤집어&amp;nbsp;배열로&amp;nbsp;만들기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12932&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/12932&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775220143708&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12932&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cCfTxH/dJMb895340z/KsB02E5fohMjr5blaLJ8o1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bOtMXq/dJMb895340y/HUNsEFzSAEQ15qgnjRD4Kk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12932&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12932&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cCfTxH/dJMb895340z/KsB02E5fohMjr5blaLJ8o1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bOtMXq/dJMb895340y/HUNsEFzSAEQ15qgnjRD4Kk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1775220144367&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

vector&amp;lt;int&amp;gt; solution(long long n) {
    vector&amp;lt;int&amp;gt; answer;
    string a = to_string(n);
    for (auto x : a ) {
        answer.insert(answer.begin(),x-'0');
    }
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0레벨보다 쉬운 1레벨이 있다는게 믿기지 않는다 레벨 선정이 조금 이상한것 같은데.. 숫자를 뒤집어야 하므로 string으로 바꾼후, insert를 이용해서 앞에서 부터 채워줬다. 그럼 끝.. char에다가 '0'을 빼줌으로서 숫자로 만들기!! (아스키코드 이용)&lt;/p&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;/p&gt;</description>
      <category>공부</category>
      <category>문자열을 정수로 바꾸기</category>
      <category>약수의 합</category>
      <category>자연수를 뒤집어 배열로 만들기</category>
      <category>코테</category>
      <category>프로그래머스</category>
      <category>프로그래머스 두 정수 사이의 합</category>
      <author>노움이인사하면안노움</author>
      <guid isPermaLink="true">https://kaeo007.tistory.com/26</guid>
      <comments>https://kaeo007.tistory.com/26#entry26comment</comments>
      <pubDate>Fri, 3 Apr 2026 21:45:06 +0900</pubDate>
    </item>
    <item>
      <title>[코테] 프로그래머스 숨어있는 숫자의 덧셈 (2)</title>
      <link>https://kaeo007.tistory.com/25</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 다 푼줄 알았떤 0레벨이 .. 한 문제 남아있었다. 그래서 이거 풀고 내일부터 진짜 1레벨&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 숨어있는 숫자의 덧셈 (2)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120864&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120864&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775112635077&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120864&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/8zj6B/dJMb8QMcjci/bikNewUFtoY3F4dxg2xGB1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bXGzRl/dJMb8953Xdq/pZLmyQyLc5KBgs7OTNPFB0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120864&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120864&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/8zj6B/dJMb8QMcjci/bikNewUFtoY3F4dxg2xGB1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bXGzRl/dJMb8953Xdq/pZLmyQyLc5KBgs7OTNPFB0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1775112637098&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;

int solution(string my_string) {
    int answer = 0;
    bool flag = false;
    string tmp = &quot;&quot;;
    for (auto a : my_string) {
        if (a&amp;gt;=48 &amp;amp;&amp;amp; a&amp;lt;=57) {
            flag=true;
        }
        else {
            flag = false;
            if (!tmp.empty()) answer += stoi(tmp);
            else continue;
            tmp.clear();
        }
        
        if (flag) tmp+=a;
        
        cout &amp;lt;&amp;lt; answer &amp;lt;&amp;lt; &quot; &quot;;
        
    }
    
    if (!tmp.empty()) {
        answer += stoi(tmp);
    }
    return answer;
}&lt;/code&gt;&lt;/pre&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;668&quot; data-origin-height=&quot;826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rUq8o/dJMcafzlDqb/xgNdhAD3In0OzUikzcZS10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rUq8o/dJMcafzlDqb/xgNdhAD3In0OzUikzcZS10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rUq8o/dJMcafzlDqb/xgNdhAD3In0OzUikzcZS10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrUq8o%2FdJMcafzlDqb%2FxgNdhAD3In0OzUikzcZS10%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;668&quot; height=&quot;826&quot; data-origin-width=&quot;668&quot; data-origin-height=&quot;826&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 사진을 보면 알겠지만 숫자 영역인 0부터 9까지는 아스키 코드로 48~57이다. 그렇기 때문에 string을 돌면서 char가 48과 57의 사이라면 한자리 숫자라는 의미다. 연속된 숫자의 경우 하나의 숫자라고 인정한다고 했기 때문에 .. flag변수를 만들어서 연속된 숫자인지 지속적으로 확인을 해준다.&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;마지막이 숫자로 끝나는 경우엔 else 구문에 들어가지 않아 tmp에 저장된 값이 load 되지 않으므로 tmp가 비어있지 않은 경우에 answer에 추가적으로 더해주는 구문을 추가했다.&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;stoi의 경우 안에 있는 string이 empty일 경우 런타임 에러가 발생한다고 해서 예외처리도 만들어줬다.&lt;/p&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;아스키 코드는 보통 65~ 97~ 만 썼는데.. (A 부터 a까지) 숫자의 경우도 알고 있어야 겠다. 오늘은 아스키 코드 복습하는 느낌으로 몸풀기해본셈치자&lt;/p&gt;</description>
      <category>공부</category>
      <category>숨어있는 숫자의 덧셈 (2)</category>
      <category>코테</category>
      <category>프로그래머스</category>
      <author>노움이인사하면안노움</author>
      <guid isPermaLink="true">https://kaeo007.tistory.com/25</guid>
      <comments>https://kaeo007.tistory.com/25#entry25comment</comments>
      <pubDate>Thu, 2 Apr 2026 15:55:48 +0900</pubDate>
    </item>
    <item>
      <title>[코테] 프로그래머스 캐릭터의 좌표 / 직사각형 넓이</title>
      <link>https://kaeo007.tistory.com/24</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 마지막으로 0레벨 푸는날&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 캐릭터의 좌표&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120861&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120861&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775018295897&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120861&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/6wSX5/dJMb87NWD8S/Llc9mBGKTBX1Bz0kWgD1y1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/dz9tao/dJMb88e0RU0/T9nPIeeP5qXUmAo65K3gY0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120861&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120861&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/6wSX5/dJMb87NWD8S/Llc9mBGKTBX1Bz0kWgD1y1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/dz9tao/dJMb88e0RU0/T9nPIeeP5qXUmAo65K3gY0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1775018297882&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

vector&amp;lt;int&amp;gt; solution(vector&amp;lt;string&amp;gt; keyinput, vector&amp;lt;int&amp;gt; board) {
    vector&amp;lt;int&amp;gt; answer;
    int limit_x = board[0]/2;
    int limit_y = board[1]/2;
    int loc_x = 0;
    int loc_y = 0;
    for (auto a : keyinput) {
        if (a==&quot;up&quot;) loc_y++;
        
        if (a==&quot;down&quot;) loc_y--;
        
        if (a==&quot;left&quot;) loc_x--;
        
        if (a==&quot;right&quot;) loc_x++;
        
        if (loc_x &amp;gt; limit_x ) loc_x = limit_x;
        if (loc_x &amp;lt; -limit_x ) loc_x = -limit_x;
        if (loc_y &amp;gt; limit_y )  loc_y = limit_y;
        if (loc_y &amp;lt; -limit_y)  loc_y = -limit_y;
    }
    
    answer.push_back(loc_x);
    answer.push_back(loc_y);
    
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어려운 문제는 아니다. 이게 왜 2점이나 주는진 모르겠지만 ... 그냥 문제에 주어진대로 방향키에 따른 좌표 변화 계산함. 물론 마지막에 좌표 제한 조건문을 좀 간소화 할 방법이 있긴 하겠지만 일단 if문 난사해서 구현함 ㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 직사각형의 넓이 구하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120860&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120860&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775020036606&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120860&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/SLZ8r/dJMb8VNvCh8/q9eOZ8A2taOHm2yz1FOAIk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/eIH3P/dJMb9bv2wTI/F60v5XIaWkLh1QEGkbuajk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120860&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120860&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/SLZ8r/dJMb8VNvCh8/q9eOZ8A2taOHm2yz1FOAIk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/eIH3P/dJMb9bv2wTI/F60v5XIaWkLh1QEGkbuajk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1775020039057&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;

int solution(vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt; dots) {
    int answer = 0;
    int h=0;
    int w=0;
    for (int i=0; i&amp;lt;dots.size(); i++) {
        for (int j=i+1; j&amp;lt;dots.size(); j++) {
            if (dots[i][0]==dots[j][0]) {
                h = max(h,(abs(dots[i][1]-dots[j][1])));
            }   
            if (dots[i][1]==dots[j][1]) {
                w = max(w,(abs(dots[i][0]-dots[j][0])));
            }
    }
    }
    cout &amp;lt;&amp;lt; h &amp;lt;&amp;lt; &quot; &quot; &amp;lt;&amp;lt; w;
    answer = h*w;
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직사각형이 만들어질 조건은 x좌표가 같은 점 두 쌍, y좌표가 같은 점 두 쌍 씩해서 4개의 점으로 이루어졌을때임. 그래서 dots를 돌면서 x좌표가 같은건 높이, y좌표가 같은건 가로로 설정하고 둘이 곱하면 답이 나온다. x,y 좌표 같은 점이 각각 두 쌍 씩 존재하기 때문에 그냥 정렬하면 4개의 값이 들어가므로 max(min)를 통해 가로,세로를 특정하거나 중복값을 제거해서 두 변의 길이를 특정하도록 하자.&lt;/p&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;0레벨 끝났으니 내일부턴 1레벨 한문제로..&lt;/p&gt;</description>
      <category>공부</category>
      <category>직사각형 넓이</category>
      <category>캐릭터의 좌표</category>
      <category>코테</category>
      <category>프로그래머스</category>
      <author>노움이인사하면안노움</author>
      <guid isPermaLink="true">https://kaeo007.tistory.com/24</guid>
      <comments>https://kaeo007.tistory.com/24#entry24comment</comments>
      <pubDate>Wed, 1 Apr 2026 14:11:13 +0900</pubDate>
    </item>
    <item>
      <title>[코테] 프로그래머스 삼각형의 완성조건 (2) / 다항식 더하기</title>
      <link>https://kaeo007.tistory.com/23</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이제 0레벨 문제 4개밖에 안남았다. 오늘 하고 내일 하면 0레벨 정복!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 삼각형의 완성조건 (2)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120868&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120868&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774918499623&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120868&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cu7Aet/dJMb84XYQpf/QHvsOpmTkAkjX4FmxdVo70/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/ddy9QL/dJMb83SiVB7/S3d3igABtHEzYTydYzIRik/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120868&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120868&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cu7Aet/dJMb84XYQpf/QHvsOpmTkAkjX4FmxdVo70/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/ddy9QL/dJMb83SiVB7/S3d3igABtHEzYTydYzIRik/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1774918503224&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

int solution(vector&amp;lt;int&amp;gt; sides) {
    int answer = 0;
    int big = 0;
    int small = 0;
    if (sides[0] &amp;gt; sides[1]) {
        big = sides[0];
        small = sides[1];
    }
    else {
        big = sides[1];
        small = sides[0];
    }
    
    // 가장 긴 변이 big 인 경우
    for (int i=1; i&amp;lt;=big; i++) {
        if (small+i &amp;gt; big) answer++;
    }
    
    // 나머지 한 변이 가장 긴 변인 경우
    int i= big+1;
    while (i&amp;lt;small+big) {
        i++;
        answer++;
    }
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 평이한 0레벨 문제.. 0레벨 같은 문제였다. 다른 사람들 풀이보니까 간단하게 푼 것같지만 일단 난 생각나는대로 했음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제를 정확하게 읽고 그대로 구현했다. 테스트케이스에 두가지 경우가 있어서 두 가지 경우를 고려한 풀이를 진행했음. 문제 자체는 어렵지 않아서 설명할게 딱히 없긴하다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 다항식 더하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120863&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120863&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774918612319&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120863&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bGg1FQ/dJMb9bv2oYf/rz3wIkJVJBXA8wJXbKVskK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/u9HC8/dJMb9gxlvSg/CSXcRfOK080iGZLfa2Nukk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120863&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120863&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bGg1FQ/dJMb9bv2oYf/rz3wIkJVJBXA8wJXbKVskK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/u9HC8/dJMb9gxlvSg/CSXcRfOK080iGZLfa2Nukk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1774919908538&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;sstream&amp;gt;
#include &amp;lt;algorithm&amp;gt;

using namespace std;

string solution(string polynomial) {
    string answer = &quot;&quot;;
    stringstream ss(polynomial);
    string tmp = &quot;&quot;;
    int x = 0;
    int num = 0;
    while (ss &amp;gt;&amp;gt; tmp) {
        if (tmp == &quot;+&quot;) continue;
        // 상수항일때
        if (tmp.find('x')==string::npos) {
            num+=stoi(tmp);
        }
        // x항일때
        else if (tmp==&quot;x&quot;) {
            x += 1;
        }
        else {
            x += stoi(tmp.substr(0,tmp.size()-1));
        }
    } 
    if (num==0) {
        if (x==1) {
            answer = &quot;x&quot;;
        }
        else answer = to_string(x)+&quot;x&quot;;
    }
    
    else if (x==0) answer = to_string(num);
    else if (x==1) answer = &quot;x + &quot;+ to_string(num);
    
    else {
        answer = to_string(x)+&quot;x + &quot;+to_string(num);
    }
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sstream 라이브러리를 사용할만한 문제였다. 오랜만에 사용하는 터라 또 다시 공부해야했음.&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;
&lt;pre id=&quot;code_1774920270889&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;include &amp;lt;sstream&amp;gt; // 라이브러리 선언 필요

...

string text = &quot;Hello World !&quot;; // 예시 문장
stringstream ss(text); // 해당 형식으로 선언함.
string tmp= &quot;&quot;;

// 띄어쓰기를 기준으로 string을 분리함.
while (ss &amp;gt;&amp;gt; tmp) {
	cout &amp;lt;&amp;lt; ss &amp;lt;&amp;lt; endl;
}

// 출력
// Hello
// World
// !&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 문제로 돌아가서 ...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다 괜찮은데 마지막 if 구문 난사한게 좀 걸린다. 좀 최적화하면 구문 한 두개로 일반화 할 수 있지 않을까 .. 생각하긴 하는데 케이스가 적은 문제라서 일단은 if문 난사해서 구현이 가능했음. 표현 형식 같은 부분은 정형화 될 수 있도록 구현하는게 좋을듯 하다.&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;문제는 sstream 사용법을 알면 어렵진 않아서 설명할게 없긴하지만 내가 푼 방식을 간략하게 말하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 분리한 문자열에서 x를 찾고, 있으면 x항 / 없으면 상수항으로 분류함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. x항의 경우 substr을 사용해서 x빼고 숫자 부분만 추출해서 누적으로 합함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. x항 누적합, 상수항 누적합을 이용하여 최종 표기 형태로 출력&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;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;0레벨 푸는것도 버거운데 1레벨 할 수 있으려나..&amp;nbsp;&lt;/p&gt;</description>
      <category>공부</category>
      <category>다항식 더하기</category>
      <category>삼각형의 완성조건(2)</category>
      <category>코테</category>
      <category>프로그래머스</category>
      <author>노움이인사하면안노움</author>
      <guid isPermaLink="true">https://kaeo007.tistory.com/23</guid>
      <comments>https://kaeo007.tistory.com/23#entry23comment</comments>
      <pubDate>Tue, 31 Mar 2026 10:27:17 +0900</pubDate>
    </item>
    <item>
      <title>[코테] 프로그래머스 저주의 숫자 3 / 외계어 사전</title>
      <link>https://kaeo007.tistory.com/22</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 일정 때문에 6시에 귀가해서 씻고 하니까 지금 시간.....이라서 지금 올림.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 저주의 숫자 3&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120871&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120871&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774870887470&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120871&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/wvTF2/dJMb83ksZEU/tZmykDCvU5WjTpxmnu7wx0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cbhKu2/dJMb82MC9Pm/XBFvty91qMzYIgvr3Lj4X0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120871&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120871&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/wvTF2/dJMb83ksZEU/tZmykDCvU5WjTpxmnu7wx0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cbhKu2/dJMb82MC9Pm/XBFvty91qMzYIgvr3Lj4X0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1774870891479&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;iostream&amp;gt;
using namespace std;

int solution(int n) {
    int answer = 0; 
    for (int i=0; i&amp;lt;n; i++) {
        answer++;
        while (answer%3==0 || to_string(answer).find('3')!=string::npos){
        answer++;
        }
     }
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 문제는 그냥 머리박으면서 풀었다. 처음에는 for 문 안에 if 문을 넣어서 풀려고 했는데 문제를 자세히 읽어보니 '3' 이란 숫자가 들어가면 안됐기에 .... 3이 안나올때 까지 반복할 수 있는 while문을 이용했다.&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;처음엔 answer%3만 조건으로 넣었는데 이렇게 하니 23 같은 숫자에서 조건문에 진입을 못하는 지라 그냥 조건을 두개로 걸었다. 다른사람 풀이보니까 나 처럼 푼사람은 없는 것 같던데... 모르겠다 난 그냥 딱 보자마자 든 생각으로 풀었음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 외계어 사전&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120869&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120869&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774873698760&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120869&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/FyINS/dJMb8ZvBxte/BqtvIKbZBbNgbZn5YGaAwk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bNQq3G/dJMb8WezHL2/gPV9ziKfoZ7NrePRpr0VE0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120869&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120869&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/FyINS/dJMb8ZvBxte/BqtvIKbZBbNgbZn5YGaAwk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bNQq3G/dJMb8WezHL2/gPV9ziKfoZ7NrePRpr0VE0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1774873709280&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;

using namespace std;

void fun1(int start, int end, string str, vector&amp;lt;string&amp;gt;&amp;amp; result) {
    if (start == end) {
        result.push_back(str);
        return;   
    }
    
    else {
        for (int i=start; i&amp;lt;=end; i++) {
            swap(str[start],str[i]);
            fun1(start+1,end,str,result);
            swap(str[start],str[i]);
        }
    }
}

int solution(vector&amp;lt;string&amp;gt; spell, vector&amp;lt;string&amp;gt; dic) {
    int answer = 0;
    string tmp = &quot;&quot;;
    for (int i=0; i&amp;lt;spell.size(); i++) {
        tmp+=spell[i];
    }
    vector&amp;lt;string&amp;gt; tmp2;
    fun1(0,tmp.size()-1,tmp,tmp2);
    
    for (int i=0; i&amp;lt;tmp2.size(); i++) {
        for (int j=0; j&amp;lt;dic.size(); j++) {
           if (tmp2[i] == dic[j]) return 1;
        }
    }
    
    return 2;
    
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무 어렵게 풀려고 했다... 주어진 알파벳으로 구할 수 있는 모든 경우의 수를 구하고, 그게 dic안에 있는지 확인하는 방식을 선택했는데 이렇게 하려면 재귀 함수를 이용해야 한다. 재귀 함수 사용법이 기억안나서 공부 다시했는데도 ... 어렵다. 재귀함수는 할때마다 진짜 헷갈린다. 그래서 일단 구현 방식을 외우고.. 이해는 나중에 하는걸로 했다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 사람 풀이보니까 spell에서 뽑은 후에 dic 문자에서 찾는 방식으로 쉽게 풀었더라. 어차피 한 글자는 무조건 써야 한다 하니 하나를 못찾으면 더 자원낭비를 할 필요없으므로 이 방법이 훨씬 효율적인듯.&lt;/p&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;/p&gt;</description>
      <category>공부</category>
      <category>외계어 사전</category>
      <category>저주의 숫자 3</category>
      <category>코테</category>
      <category>프로그래머스</category>
      <author>노움이인사하면안노움</author>
      <guid isPermaLink="true">https://kaeo007.tistory.com/22</guid>
      <comments>https://kaeo007.tistory.com/22#entry22comment</comments>
      <pubDate>Mon, 30 Mar 2026 21:36:27 +0900</pubDate>
    </item>
    <item>
      <title>[코테] 프로그래머스 겹치는 선분의 길이 / 평행</title>
      <link>https://kaeo007.tistory.com/21</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;감기가 좀 오래간다. 병원을 안가서 그런가..&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 겹치는 선분의 길이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120876&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120876&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774593180896&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120876&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bnXagO/dJMb8XR5spw/KqkMaFOfsLkx5UBC8ujw5K/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cyz1I8/dJMb81fSpmq/uYkWSzzQxTKkOS8O4yXDYK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120876&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120876&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bnXagO/dJMb8XR5spw/KqkMaFOfsLkx5UBC8ujw5K/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cyz1I8/dJMb81fSpmq/uYkWSzzQxTKkOS8O4yXDYK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1774593184078&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;map&amp;gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;

int solution(vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt; lines) {
    int answer = 0;
    map&amp;lt;int,int&amp;gt; m;
    int cnt = 0;
    
    for (int i=0; i&amp;lt;lines.size(); i++) {
        for (int j=lines[i][0]; j&amp;lt;lines[i][1]; j++) {
            m[j]++;
        }
    }
    
    
    for (const auto a : m) {
        if (a.second&amp;gt;=2) answer++;
    }
    
    return answer+cnt;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 map으로 풀자고 생각한 후 map에다 겹치는 점을 의미하는 value를 체크해줬다. 그렇게 해서 2이상인 경우엔 겹친다고 판단해서 count하는 방식으로 진행하려 했는데.... 하다보니 경계점문제로 막히게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 1,2 / 2,3 이 있다고 하면 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;그래서 겹치는 점이 두 번 연속으로 나왔을때(연속했을때) count 를 하는 느낌으로 구현을 했는데.. 그래서 첨엔 마지막 for문을 아래처럼 구현했다.&lt;/p&gt;
&lt;pre id=&quot;code_1774593384411&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for (const auto a : m) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (a.second&amp;gt;=2) flag = true;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flag = false;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; answer += cnt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (flag &amp;amp;&amp;amp; pre_flag) cnt++;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cnt=0;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pre_flag = flag;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flag = false;
&amp;nbsp;}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보면 좀 복잡하다. flag변수를 두개로 설정해서 과거/현재로 나눈 후 연속되는지를 check하는 구문이다. 예전에 디지털 회로 설계 할때 버튼 입력 했던 부분이 생각나서 이런식으로 했는데 ... 잘못된 방법이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경우엔 1,10 / 1,2 / 3,4 일 경우에 문제가 발생한다. 2,3 / 3,4 는 각각 선분이 1이라 답이 2로 나와야 하는데, 내 코드대로 진행하면 1~4 까지 한 선분이라고 생각해서 답이 3이 나오게 되는것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 이를 해결하기 위해 처음에 map을 추가할때 마지막 경계를 추가 안하고, 그냥 2이상인 경우에만 답을 count하는 방식으로 바꿨더니 쉽게 해결됐다.&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;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 평행&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120875&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120875&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774595881248&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120875&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/SwI9Q/dJMb9dHnUhQ/dnb7Z5ccf2FhwIMFUF09Wk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bc5hIf/dJMb9lk6VU7/zOkZUklmcGrvGxpJXe3Ewk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120875&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120875&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/SwI9Q/dJMb9dHnUhQ/dnb7Z5ccf2FhwIMFUF09Wk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bc5hIf/dJMb9lk6VU7/zOkZUklmcGrvGxpJXe3Ewk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1774595887103&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

int solution(vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt; dots) {
    int answer = 0;
    double slope1=0;
    double slope2=0;
    for (int i=0; i&amp;lt;4; i++) {
        for (int j=i+1; j&amp;lt;4; j++) {
            vector&amp;lt;int&amp;gt; tmp;
            for (int k=0; k&amp;lt;4; k++) {
                if (k!=i &amp;amp;&amp;amp; k!=j) tmp.push_back(k);
            }
            int k = tmp[0];
            int l = tmp[1];
            
            slope1= (dots[i][1]-dots[j][1])/(dots[i][0]-dots[j][0]);
            slope2= (dots[k][1]-dots[l][1])/(dots[k][0]-dots[l][0]);
            
            if (slope1==slope2) return 1;
        }
    }
    return 0;
}&lt;/code&gt;&lt;/pre&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;기본 수학이라서 연산 자체는 문제없는데.. 4개의 점에서 두개씩 고르는걸 코드로 구현하는데 시간이 좀 걸렸다.&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;결국 3중 for문(...)을 돌려서 두 점을 고르고 나머지 점을 변수에 저장한 후, 받아오는 식으로 진행했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제 같은경우엔 for문 한번에 4번밖에 안돌아서 괜찮지만 크기가 조금 커진다면 3중 for문은 복잡도가 O(N^3) 이므로 유의해야한다....&lt;/p&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;/p&gt;</description>
      <category>공부</category>
      <category>겹치는 선분의 길이</category>
      <category>코테</category>
      <category>평행</category>
      <category>프로그래머스</category>
      <author>노움이인사하면안노움</author>
      <guid isPermaLink="true">https://kaeo007.tistory.com/21</guid>
      <comments>https://kaeo007.tistory.com/21#entry21comment</comments>
      <pubDate>Fri, 27 Mar 2026 16:21:55 +0900</pubDate>
    </item>
    <item>
      <title>[코테] 프로그래머스 특이한 정렬  / 유한소수 판별하기</title>
      <link>https://kaeo007.tistory.com/20</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 일이 있어서 나갔다가 저녁에 와서 했다. 바로 고&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 특이한 정렬&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120880?language=cpp&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120880?language=cpp&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774528587092&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120880?language=cpp&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/79QCa/dJMb9iaQRAm/XfQEANMWuyIJRgzRu5P3X0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/caMYbC/dJMb8QelV84/GHSABJ3P0Cuk8QADKsMY71/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120880?language=cpp&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120880?language=cpp&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/79QCa/dJMb9iaQRAm/XfQEANMWuyIJRgzRu5P3X0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/caMYbC/dJMb8QelV84/GHSABJ3P0Cuk8QADKsMY71/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&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;pre id=&quot;code_1774528667526&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;

using namespace std;

vector&amp;lt;int&amp;gt; solution(vector&amp;lt;int&amp;gt; numlist, int n) {
    vector&amp;lt;int&amp;gt; answer;
    vector&amp;lt;int&amp;gt; distance;
    for (const auto &amp;amp;a : numlist) {
            distance.push_back(abs(a-n));
    }
    vector&amp;lt;pair&amp;lt;int,int&amp;gt;&amp;gt; p;
    for (int i=0; i&amp;lt;distance.size(); i++) {
        p.push_back({numlist[i],distance[i]});
    }
    sort(p.begin(),p.end(),[](const auto &amp;amp;a, const auto &amp;amp;b) {
        // 거리가 같을때는 큰 값이 먼저 (내림차순)
        if (a.second == b.second) {
           return a.first &amp;gt; b.first;
               }
        else return a.second &amp;lt; b.second;
        });
    for (const auto &amp;amp;a : p) {
      answer.push_back(a.first);
        }
    
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수를 따로 이용할줄 모른다면 이 문제는 0레벨이 아닌 1레벨이 될 것이라고 생각한다. 원래 부터 함수 다루는 데 익숙하지 않고 sort함수의 세번째 인자가 의미하는 바를 몰랐던 나는 이 문제가 도움이 많이 됐다고 생각한다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기법에 대해선 크게 설명할 것 없이 함수 사용법이 가장 중요한 문제였다. 함수를 잘 쓰면 나처럼 distance같은 변수 만들고 pair로 묶는행동같은걸 안해도 되니깐....&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 유한소수 판별하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120878&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120878&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774532686846&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120878&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Enmin/dJMb8VNu7li/LHtyZYd3KNdaY9KXkB6lJK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/9MQw6/dJMb9iaQRUh/OFHCdYqhHAQTeYOZx7SyiK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120878&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120878&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Enmin/dJMb8VNu7li/LHtyZYd3KNdaY9KXkB6lJK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/9MQw6/dJMb9iaQRUh/OFHCdYqhHAQTeYOZx7SyiK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&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;pre id=&quot;code_1774532692003&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;iostream&amp;gt;

using namespace std;

int solution(int a, int b) {
    int answer = 0;
    int max = 0;
    int min= 0;
    vector&amp;lt;int&amp;gt; list;
    if (a&amp;lt;b) min=a;
    else min=b;
    // 최대 공약수 구하기
    for (int i=1; i&amp;lt;=min; i++) {
        if (a%i==0 &amp;amp;&amp;amp; b%i==0) max=i;
     }
    // 기약 분수 만들기
    a=a/max;
    b=b/max;
    int tmp=b;
    // 2부터 늘리면서 b의 소인수 나열
    for (int i=2; i&amp;lt;=b; i++) {
        while (tmp%i==0) {
            list.push_back(i);
            tmp = tmp/i;
            cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &quot; &quot;;
            }
        
    } 
    // 정수인 경우 유한소수
    if (a%b ==0) return 1;    
    
    // 분모의 소인수가 2와 5뿐인지 확인
    for (const auto &amp;amp;a : list) {
      // 인수 리스트에서 2나 5가 나올경우엔 가능한 경우이므로 pass
      if (a==2 || a==5) continue;
      // 그 외의 경우가 나오면 무한소수 이므로 바로 2반환
      else return 2;
    }
    // for 문을 빠져나왔다면 모두 pass 한 상태이므로 유한소수
    return 1;
}&lt;/code&gt;&lt;/pre&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와 5만 있는지 확인하는 ...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좋게 말하면 건실하지만 안좋게 말하면 멍청하게 풀었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 사람 풀이를 보면서 공부를 좀 한건데, 기약 분수로 나눈다는 생각을 버리고 다른 방법으로 접근하면 쉽게 끝난다.&lt;/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와 5만을 소인수로 같는 수는 무조건 유한소수다. 그렇기 때문에 분모를 2와 5로 계속해서 나눠서 2와 5의 소인수를 제거한다. 예를 들어 15 면 5를 제거해서 3만 남게 되는것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 해서 남은 값이 분자와 나누어 떨어지면 유한소수가 되는거고, 그렇지 않는다면 무한 소수가 되기 때문에 간단하게 로직을 구현할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수학적인 이해가 동반되는 문제다. 코딩 테스트를 연습하다 보면 소인수 분해가 생각보다 많이 나오고 나올때마다 어떻게 구현할지 매번 까먹고 어리버리까는데... 이번 기회를 계기로 확실하게 짚고 넘어가야겠다.&lt;/p&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;/p&gt;</description>
      <category>공부</category>
      <category>유한소수 판별하기</category>
      <category>코테</category>
      <category>특이한 정렬</category>
      <category>프로그래머스</category>
      <author>노움이인사하면안노움</author>
      <guid isPermaLink="true">https://kaeo007.tistory.com/20</guid>
      <comments>https://kaeo007.tistory.com/20#entry20comment</comments>
      <pubDate>Thu, 26 Mar 2026 22:58:42 +0900</pubDate>
    </item>
    <item>
      <title>[코테] 프로그래머스 로그인 성공? / 등수 매기기</title>
      <link>https://kaeo007.tistory.com/19</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;두통은 사라졌는데 잔기침이 남았다. 병원 빨리 갔다올걸&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 로그인 성공?&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120883&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120883&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774414254957&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120883&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/4706i/dJMb9c9xrAr/jTf71YbmGVyptb1ucSTTJ0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/GvCqO/dJMb88F4ulT/qVXTAzHbbX1jt9M3DNjhw1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120883&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120883&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/4706i/dJMb9c9xrAr/jTf71YbmGVyptb1ucSTTJ0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/GvCqO/dJMb88F4ulT/qVXTAzHbbX1jt9M3DNjhw1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1774414258150&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

string solution(vector&amp;lt;string&amp;gt; id_pw, vector&amp;lt;vector&amp;lt;string&amp;gt;&amp;gt; db) {
    string answer = &quot;&quot;;
    bool id_cor = false;
    bool pw_cor = false;
    for (int i=0; i&amp;lt;db.size(); i++) {\
        // id 확인 로직
        if (db[i][0] == id_pw[0]) {
            id_cor = true;
            // pw 확인 로직
            if (db[i][1] == id_pw[1]) pw_cor=true;
            else return &quot;wrong pw&quot;;
        }
        // 두 로직이 참이면 로그인
        if (id_cor&amp;amp;&amp;amp;pw_cor) return &quot;login&quot;;
    }
    
    // db에서 못찾을 경우 fail
    if (!id_cor &amp;amp;&amp;amp; !pw_cor) return &quot;fail&quot;;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직관적으로 풀면 어렵지 않게 풀리는 문제였다. 그냥 id 맞았을 때, pw 맞았을 때 경우로 나눠서 flag 변수를 활용했음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 등수 매기기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120882&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120882&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774415028135&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120882&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/3swFq/dJMb9g5aKWe/1YxYlEWkIjgY7SIt2RGHHK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/7W3Rc/dJMb9jgwPgr/izHdgrb9Jfz8EIx5F6J4H0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120882&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120882&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/3swFq/dJMb9g5aKWe/1YxYlEWkIjgY7SIt2RGHHK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/7W3Rc/dJMb9jgwPgr/izHdgrb9Jfz8EIx5F6J4H0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1774415038380&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

vector&amp;lt;int&amp;gt; solution(vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt; score) {
    vector&amp;lt;int&amp;gt; answer;
    vector&amp;lt;int&amp;gt; tmp;
    for (int i=0; i&amp;lt;score.size(); i++) {
        // 평균점수를 담은 새 배열 생성
        tmp.push_back((score[i][0]+score[i][1]));
    }
    
    // 등수 비교
    for (int i=0; i&amp;lt;tmp.size(); i++) {
        int count =1;
        for (int j=0; j&amp;lt;tmp.size(); j++) {
            if (tmp[j]&amp;gt;tmp[i]) count++;
        }
        answer.push_back(count);
    }
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등수 비교하는 부분이 생각이 안나서 검색을 좀 해봤다. 예전에는 map을 써서 했던 기억이 있는데 길이가 길지 않으면 간단하게 이렇게도 많이 하는것 같다. 시간복잡도가 N^2 인걸 생각해서 조건 길이보고 뭐 쓸지 결정하면 될듯.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 이런 문제는 굳이 평균을 구할 필요없다. 나도 처음에 평균 구하려고 /2 해줬는데 오히려 소숫점 연산때문에 테스트 케이스를 통과 못하는 일이 생겼음. 그래서 그냥 총합으로 등수 계산했다.&lt;/p&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;/p&gt;</description>
      <category>공부</category>
      <category>등수 매기기</category>
      <category>로그인 성공?</category>
      <category>코테</category>
      <category>프로그래머스</category>
      <author>노움이인사하면안노움</author>
      <guid isPermaLink="true">https://kaeo007.tistory.com/19</guid>
      <comments>https://kaeo007.tistory.com/19#entry19comment</comments>
      <pubDate>Wed, 25 Mar 2026 14:07:28 +0900</pubDate>
    </item>
  </channel>
</rss>