<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>jai051031 님의 블로그</title>
    <link>https://jai051031.tistory.com/</link>
    <description>jai051031 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Sun, 19 Jul 2026 11:37:10 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>jai051031</managingEditor>
    <item>
      <title>[코딩테스트] 포기하지 않고 달린 7주, 코드트리 챌린지 완주 후기</title>
      <link>https://jai051031.tistory.com/83</link>
      <description>&lt;h2 data-path-to-node=&quot;2&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;어느덧 7주라는 시간이 흘러 시뮬레이션과 백트래킹이라는 두 가지 큰 주제를 모두 마쳤다. 처음 시작할 때만 해도 '이 많은 문제를 다 풀 수 있을까?' 하는 막막함이 앞섰는데, 이제는 문제를 마주하면 어떤 전략으로 접근해야 할지 먼저 머릿속으로 그려보는 스스로를 보며 묘한 성취감을 느낀다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size23&quot;&gt;1. 시작과 끝, 달라진 점과 가장 뿌듯했던 순간&lt;/h3&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;처음엔 단순히 '코드만 돌아가게 만들면 된다'는 생각으로 무작정 구현에만 급급했다. 하지만 코드트리(CodeTree)라는 환경에서 체계적인 커리큘럼을 따라가며 '왜 이 알고리즘을 써야 하는지', '어떤 효율적인 구조를 가져야 하는지'를 고민하는 습관이 생겼다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;특히 코드트리는 개념 설명이 단순히 이론에 그치지 않고, 그 개념을 활용하는 문제들과 직관적으로 연결되어 있다는 점이 큰 장점이었다. 이론을 학습한 뒤 바로 이어지는 문제들을 통해 배운 내용을 코드에 녹여내는 과정이 매우 매끄러웠다. 가장 뿌듯했던 순간은 며칠을 붙들고 씨름하던 까다로운 백트래킹 문제를 맞닥뜨렸을 때다. 전에는 당황해서 손을 놓았을 법한 문제인데, 차분히 가지치기(Pruning) 조건을 세우고 재귀 구조를 설계해 정답을 맞혔을 때, 비로소 내 기본기가 한 층 단단해졌음을 실감했다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size23&quot;&gt;2. 고비와 넘기기 위한 나만의 비결&lt;/h3&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;솔직히 말하면 4주 차 즈음, 구현 난도가 급격히 올라가면서 '그만둘까?' 하는 생각이 매일 들었다. 하지만 그 고비를 넘길 수 있었던 건 코드트리에서 제공하는 &lt;b data-index-in-node=&quot;90&quot; data-path-to-node=&quot;8&quot;&gt;'갭체크(Gap Check)'&lt;/b&gt; 기능 덕분이었다. 내 수준을 객관적으로 파악하고, 데이터로 부족한 부분을 확인하니 막연한 두려움이 구체적인 목표로 바뀌었다. 내가 어디가 부족한지 아는 것만으로도 공부의 효율이 달라졌고, 그 성취감이 다시 책상 앞에 앉게 만든 원동력이 되었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;689&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XXSkP/dJMcai4MbIn/qUBcnuSjAnYySQ08ZUzRuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XXSkP/dJMcai4MbIn/qUBcnuSjAnYySQ08ZUzRuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XXSkP/dJMcai4MbIn/qUBcnuSjAnYySQ08ZUzRuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXXSkP%2FdJMcai4MbIn%2FqUBcnuSjAnYySQ08ZUzRuK%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;890&quot; height=&quot;689&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;689&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;또한, 문제를 풀다가 막힐 때 제공되는 단계별 힌트와 명쾌한 해설은 마치 옆에서 누군가 논리적인 실마리를 던져주는 것 같았다. 덕분에 혼자서 고민하는 시간의 밀도가 높아졌고, '어떻게든 끝까지 풀어내고 만다'는 끈기를 기를 수 있었다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size23&quot;&gt;3. 앞으로의 계획과 다짐&lt;/h3&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;7주간 시뮬레이션과 백트래킹을 거치며 쌓은 기본기는 이제 내 무기가 되었다. 코드트리를 통해 다져온 체계적인 루틴대로, 조급해하기보다 하루에 한 문제씩 꾸준히 풀어내는 '양보다 질'의 학습을 이어가려 한다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;12&quot; 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;1020&quot; data-origin-height=&quot;881&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GKSQg/dJMcafmNxvG/lyWw1MjuMMJxmcNWfgkn51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GKSQg/dJMcafmNxvG/lyWw1MjuMMJxmcNWfgkn51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GKSQg/dJMcafmNxvG/lyWw1MjuMMJxmcNWfgkn51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGKSQg%2FdJMcafmNxvG%2FlyWw1MjuMMJxmcNWfgkn51%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;1020&quot; height=&quot;881&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;881&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;이 장점을 살려 앞으로는 그래프 탐색이나 동적 계획법(DP) 같은 더 깊이 있는 주제로 나아가려 한다. 어떤 알고리즘 문제라도 내 방식대로 해결할 수 있는 탄탄한 개발자로 성장하고 싶다. 단순히 문제를 맞히는 것을 넘어, 코드를 작성하는 매 순간 논리적인 근거를 갖춘 개발자가 되는 것이 지금의 다짐이다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;7주간 고생한 나 자신에게, 정말 고생 많았다고 말해주고 싶다. 이 탄탄한 기본기를 발판 삼아, 앞으로 만날 더 높은 난관들도 담담하게 헤쳐 나가보자.&lt;/p&gt;</description>
      <category>공채합격</category>
      <category>코드트리</category>
      <category>코딩테스트</category>
      <category>코딩테스트사이트추천</category>
      <category>코테공부</category>
      <author>jai051031</author>
      <guid isPermaLink="true">https://jai051031.tistory.com/83</guid>
      <comments>https://jai051031.tistory.com/83#entry83comment</comments>
      <pubDate>Mon, 22 Jun 2026 23:09:36 +0900</pubDate>
    </item>
    <item>
      <title>[코드트리] 백트래킹: 막다른 길에서 되돌아오는 용기</title>
      <link>https://jai051031.tistory.com/82</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/dashboard/intermediate-low&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/dashboard/intermediate-low&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1781531386648&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;Codetree: Master Coding Interviews - Data Structures &amp;amp; Algorithms&quot; data-og-description=&quot;Master algorithms, ace tech interviews, and elevate your coding skills with Codetree's systematic curriculum and expert-crafted problem sets.&quot; data-og-host=&quot;www.codetree.ai&quot; data-og-source-url=&quot;https://www.codetree.ai/ko/trails/complete/dashboard/intermediate-low&quot; data-og-url=&quot;https://www.codetree.ai/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c7CcKi/dJMb9jOvC3i/A4laD6Z45yiVvxP6qtE4wK/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400,https://scrap.kakaocdn.net/dn/hkHnA/dJMb9b30KkU/jqh0GpnEyZRwR2ZlHdRfs1/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/dashboard/intermediate-low&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/dashboard/intermediate-low&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c7CcKi/dJMb9jOvC3i/A4laD6Z45yiVvxP6qtE4wK/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400,https://scrap.kakaocdn.net/dn/hkHnA/dJMb9b30KkU/jqh0GpnEyZRwR2ZlHdRfs1/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400');&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;Codetree: Master Coding Interviews - Data Structures &amp;amp; Algorithms&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Master algorithms, ace tech interviews, and elevate your coding skills with Codetree's systematic curriculum and expert-crafted problem sets.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.codetree.ai&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-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;백트래킹을 처음 접했을 때, 단순히 '모든 경우를 다 해보는 것(Brute-force)'과 무엇이 다른지 혼란스러웠다. 하지만 공부를 거듭하며 깨달은 것은, 백트래킹은 단순히 다 해보는 것이 아니라 &quot;아닌 것 같은 길은 과감히 버리고(Pruning), 올바른 해답을 찾아 나가는 현명한 되돌아오기&quot;라는 점이다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size23&quot;&gt;1. 백트래킹, 나만의 쉬운 정의&lt;/h3&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;백트래킹은 미로 찾기와 같다. 갈림길에서 한쪽 길을 선택해 끝까지 가보고, 막다른 길이라면 다시 이전 갈림길로 돌아와 다른 길을 탐색한다. 이때 중요한 것은 유망성(Promising)을 판단하는 것이다. &quot;지금 내가 선택한 경로가 답이 될 가능성이 있는가?&quot;를 끊임없이 스스로에게 묻고, 가능성이 없다면(Pruning) 즉시 그 가지를 쳐내어 시간을 절약하는 것이 핵심이다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;2. 코드트리 문제 풀이: 핵심 로직과 구현&lt;/h3&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;백트래킹은 재귀(Recursion) 함수와 떼려야 뗄 수 없는 관계다. 상태를 기록할 visited 배열과 현재 단계 depth를 매개변수로 넘겨주며 정답을 찾아간다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8&quot;&gt;[핵심 로직]&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;기저 조건(Base Case):&lt;/b&gt; 원하는 깊이(또는 조건)에 도달했는지 확인하고 결과 저장.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;반복문/재귀:&lt;/b&gt; 가능한 모든 선택지를 시도.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;백트래킹(Backtracking):&lt;/b&gt; 선택했던 값을 다시 되돌려 놓아(원상복구), 다음 탐색에 영향이 없도록 함.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre id=&quot;code_1781531234801&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

int n;
vector&amp;lt;int&amp;gt; path;
bool visited[10]; // 방문 여부 체크

void backtrack(int depth) {
    // 기저 조건: 원하는 길이에 도달했을 때
    if (depth == n) {
        for (int x : path) cout &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &quot; &quot;;
        cout &amp;lt;&amp;lt; endl;
        return;
    }

    for (int i = 1; i &amp;lt;= n; i++) {
        if (!visited[i]) {
            // 선택
            visited[i] = true;
            path.push_back(i);
            
            // 다음 단계로
            backtrack(depth + 1);
            
            // 백트래킹: 상태 원상복구 (가장 중요한 부분!)
            path.pop_back();
            visited[i] = false;
        }
    }
}

int main() {
    cin &amp;gt;&amp;gt; n;
    backtrack(0);
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size23&quot;&gt;3. 시행착오와 꿀팁&lt;/h3&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;백트래킹을 구현하다 보면 '무한 루프'나 '잘못된 결과'를 마주하기 쉽다. 내가 시행착오를 겪으며 깨달은 점들이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;자주 하는 실수:&lt;/b&gt; 백트래킹을 수행한 후 &lt;b data-index-in-node=&quot;22&quot; data-path-to-node=&quot;13,0,0&quot;&gt;visited[i] = false;를 빼먹는 경우&lt;/b&gt;다. 이 한 줄이 없으면 다시는 그 숫자를 사용할 수 없어 전체 경우의 수를 탐색하지 못한다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,0&quot;&gt;헷갈리기 쉬운 함정:&lt;/b&gt; 문제에서 요구하는 '순열(Permutation)'인지 '조합(Combination)'인지 명확히 구분해야 한다. 조합이라면 재귀 호출 시 현재 인덱스 이후의 값만 확인하도록 파라미터를 넘겨야 중복을 방지할 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,0&quot;&gt;구현 꿀팁:&lt;/b&gt; path 벡터를 전역으로 쓰거나 참조자(&amp;amp;)로 넘기면 메모리 오버헤드를 줄일 수 있다. 또, 가지치기(Pruning) 조건이 명확할수록 코드의 성능은 기하급수적으로 빨라진다. 조건을 최대한 촘촘히 세우는 연습이 필요하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;함수 문제 때 느꼈던 것처럼, 처음에는 막막했던 재귀 구조가 이제는 조금씩 손에 익기 시작했다. 백트래킹 또한 처음에는 이해가 안 가더니, 여러 문제를 풀어보며 '상태를 저장하고 원상복구하는 패턴'이 눈에 들어오기 시작했다. 이렇게 하나씩 기본기를 견고하게 다져나가다 보면, 언젠가 더 어려운 DP(동적 계획법)나 그래프 심화 문제도 자연스럽게 정복할 수 있을 것 같다는 기분 좋은 자신감이 든다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>백트래킹</category>
      <category>코드트리</category>
      <category>코딩테스트</category>
      <category>코테공부</category>
      <author>jai051031</author>
      <guid isPermaLink="true">https://jai051031.tistory.com/82</guid>
      <comments>https://jai051031.tistory.com/82#entry82comment</comments>
      <pubDate>Mon, 15 Jun 2026 22:50:00 +0900</pubDate>
    </item>
    <item>
      <title>[코테 중간 점검] 코드트리 갭체크로 한 달 만에 약점 유형 극복한 후기</title>
      <link>https://jai051031.tistory.com/81</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/gap-check/onboarding/settings&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/gap-check/onboarding/settings&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780928174809&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;Codetree: Master Coding Interviews - Data Structures &amp;amp; Algorithms&quot; data-og-description=&quot;Master algorithms, ace tech interviews, and elevate your coding skills with Codetree's systematic curriculum and expert-crafted problem sets.&quot; data-og-host=&quot;www.codetree.ai&quot; data-og-source-url=&quot;https://www.codetree.ai/ko/gap-check/onboarding/settings&quot; data-og-url=&quot;https://www.codetree.ai/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b7oTpe/dJMb887gKo0/UPTPKkg1r9mkivXz0Zo6C0/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400,https://scrap.kakaocdn.net/dn/ci7Huq/dJMb83SqXdu/uNsJpMyCkEHRdQr7wWREs0/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/gap-check/onboarding/settings&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/gap-check/onboarding/settings&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b7oTpe/dJMb887gKo0/UPTPKkg1r9mkivXz0Zo6C0/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400,https://scrap.kakaocdn.net/dn/ci7Huq/dJMb83SqXdu/uNsJpMyCkEHRdQr7wWREs0/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400');&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;Codetree: Master Coding Interviews - Data Structures &amp;amp; Algorithms&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Master algorithms, ace tech interviews, and elevate your coding skills with Codetree's systematic curriculum and expert-crafted problem sets.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.codetree.ai&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;약 한 달 정도 만에 갭체크를 다시 보았다.&lt;/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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;374&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EBcKo/dJMb997Jl9N/hhgqrF38mX4z3cgRew7oz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EBcKo/dJMb997Jl9N/hhgqrF38mX4z3cgRew7oz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EBcKo/dJMb997Jl9N/hhgqrF38mX4z3cgRew7oz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEBcKo%2FdJMb997Jl9N%2FhhgqrF38mX4z3cgRew7oz1%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;868&quot; height=&quot;374&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;374&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;시뮬레이션에서 부터 막혀 어려움이 있었고 이 문제 때문에 백트래킹, DFS/BFS 학습에도 어려움이 많았다.&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;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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;330&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0yyZR/dJMcahrcKOV/NwvxkdZe59tHQLd9211CVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0yyZR/dJMcahrcKOV/NwvxkdZe59tHQLd9211CVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0yyZR/dJMcahrcKOV/NwvxkdZe59tHQLd9211CVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0yyZR%2FdJMcahrcKOV%2FNwvxkdZe59tHQLd9211CVK%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;868&quot; height=&quot;330&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;330&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;&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;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;이제 곧 기말고사고 종강이니 7~8월 중에는 그동안 열심히 쌓아왔던 시뮬레이션을 바탕으로 코드트리의 커리큘럼을 따라가며 백트래킹과 DFS BFS에 대해 집중적으로 학습 할 예정이다.&amp;nbsp;&lt;/p&gt;</description>
      <category>개발자취업</category>
      <category>갭체크</category>
      <category>코드트리</category>
      <category>코딩테스트</category>
      <category>코딩테스트준비</category>
      <category>코테공부</category>
      <author>jai051031</author>
      <guid isPermaLink="true">https://jai051031.tistory.com/81</guid>
      <comments>https://jai051031.tistory.com/81#entry81comment</comments>
      <pubDate>Mon, 8 Jun 2026 23:26:01 +0900</pubDate>
    </item>
    <item>
      <title>[코드트리 후기] 북마크로 나만의 복습 루틴 만들기</title>
      <link>https://jai051031.tistory.com/80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-guess-day-of-week/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-guess-day-of-week/description&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;829&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Sn4vq/dJMcahYUrC8/UQxqIWmWHUHwRurE8LyAZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Sn4vq/dJMcahYUrC8/UQxqIWmWHUHwRurE8LyAZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Sn4vq/dJMcahYUrC8/UQxqIWmWHUHwRurE8LyAZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSn4vq%2FdJMcahYUrC8%2FUQxqIWmWHUHwRurE8LyAZ0%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;923&quot; height=&quot;829&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;829&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;&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;귀찮기도 하고 그 문제에 대한 존재 자체를 까먹는 경우도 많았다. 그러나 코드트리의 북마크 기능을 활용 하니 풀던 문제를 까먹어도 북마크 기록에 남아있어 언제든 다시 도전할 수 있는 정말 좋은 기회가 생겼다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1780309906601&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
using namespace std;

int main() {
    int a, b, c, d, e = 1, x, y;
    int day[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    cin &amp;gt;&amp;gt; a &amp;gt;&amp;gt; b &amp;gt;&amp;gt; c &amp;gt;&amp;gt; d;
    string week[7] = {&quot;Sun&quot;, &quot;Mon&quot;, &quot;Tue&quot;, &quot;Wed&quot;, &quot;Thu&quot;, &quot;Fri&quot;, &quot;Sat&quot;};
    if(a == c){
        if(b &amp;lt; d){
            e += (d-b)%7;
            
            if(e == 7)
                e = 0;
        }
        else{
            e -= (b-d)%7;
            if(e &amp;lt; 0)
                e += 7;
            if(e == 7)
                e = 0;
        }
    }
    else if(a &amp;lt; c){
        int sum = 0;
        for(int i=a+1; i&amp;lt;c; i++){
            sum += day[i-1];
        }
        e += (d+(day[a-1]-b)+sum)%7;
        if(e == 7)
            e = 0;
    }
    else{
        int sum = 0;
        for(int i=c+1; i&amp;lt;a; i++){
            sum += day[i-1];
        }
        e -= (b+(day[c-1]-d)+sum)%7;
        if(e &amp;lt; 0)
            e += 7;
        if(e == 7)
            e = 0;
    }
    cout &amp;lt;&amp;lt; week[e];
    return 0;
}&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;&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#코드트리&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#코딩테스트&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#코테공부&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#오답노트&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#공부습관&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>공부습관</category>
      <category>오답노트</category>
      <category>코드트리</category>
      <category>코딩테스트</category>
      <category>코테공부</category>
      <author>jai051031</author>
      <guid isPermaLink="true">https://jai051031.tistory.com/80</guid>
      <comments>https://jai051031.tistory.com/80#entry80comment</comments>
      <pubDate>Mon, 1 Jun 2026 19:38:08 +0900</pubDate>
    </item>
    <item>
      <title>[코테 공부] 코드트리 학습 리마인더 서비스를 통한 코딩테스트 1일 1문제 습관 형성하기</title>
      <link>https://jai051031.tistory.com/79</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;945&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfHeOJ/dJMcabK9u4l/c7gMqwNh9DMyfQkV1xk45k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfHeOJ/dJMcabK9u4l/c7gMqwNh9DMyfQkV1xk45k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfHeOJ/dJMcabK9u4l/c7gMqwNh9DMyfQkV1xk45k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfHeOJ%2FdJMcabK9u4l%2Fc7gMqwNh9DMyfQkV1xk45k%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;364&quot; height=&quot;945&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;945&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;필자는 계획을 짜는 건 정말 좋아하지만 극 P인지라 그 계획을 지켜 본 적이 거의 없는 것 같다&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;353&quot; data-origin-height=&quot;575&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VlSTI/dJMcaftbiJB/Y34fH7Epk8rYUTZLbYRdE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VlSTI/dJMcaftbiJB/Y34fH7Epk8rYUTZLbYRdE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VlSTI/dJMcaftbiJB/Y34fH7Epk8rYUTZLbYRdE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVlSTI%2FdJMcaftbiJB%2FY34fH7Epk8rYUTZLbYRdE0%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;353&quot; height=&quot;575&quot; data-origin-width=&quot;353&quot; data-origin-height=&quot;575&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;265&quot; data-origin-height=&quot;415&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brbbBH/dJMcaiKaDJN/jZuyEgJdv5T8FIZwVkHpAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brbbBH/dJMcaiKaDJN/jZuyEgJdv5T8FIZwVkHpAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brbbBH/dJMcaiKaDJN/jZuyEgJdv5T8FIZwVkHpAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrbbBH%2FdJMcaiKaDJN%2FjZuyEgJdv5T8FIZwVkHpAk%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;265&quot; height=&quot;415&quot; data-origin-width=&quot;265&quot; data-origin-height=&quot;415&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;학업과 병행하다 보니 하루에 온전히 프로그래밍 공부에 투자할 시간이 되지 않았는데 매일매일 한 문제씩 풀다 보니 생각보다 많은 문제를 풀었고 많은 내용이 내 머릿속에 남게 되었다&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;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;학습에는 무엇보다 꾸준함이 중요한 것 같다. 하루에 오랫동안 하지 않더라도 매일매일 조금씩 꾸준히 노력 한다면 그 성과가 차곡차곡 쌓여 미래에는 나의 큰 재산이 된다.&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;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;이 꾸준함을 도와준 것이 코드트리의 서비스였다. 카카오톡 알림톡 서비스를 신청 할까 많은 고민을 하였었는데 나의 프로그래밍 학습 계획에서 정말 중요한 첫 걸음이 되었다. 그만큼 많은 도움이 되었고 이제는 알림톡이 오지 않더라도 스스로 &quot;어? 오늘 한 문제 풀어야 할거 같은데 언제 시간이 될려나&quot; 하며 공부 시간을 잡고 노력하는 나의 모습을 볼 수 있었다.&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;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;앞으로 코드트리의 도움을 받으며 꾸준히 학습을 이어 나가 모든 커리큘럼을 따라가며 나의 능력을 향상하고자 한다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#코드트리&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#코딩테스트&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#코테공부&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#코테독학&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#개발자루틴&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#1일1코테&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>1일1코테</category>
      <category>개발자루틴</category>
      <category>코드트리</category>
      <category>코딩테스트</category>
      <category>코테공부</category>
      <category>코테독학</category>
      <author>jai051031</author>
      <guid isPermaLink="true">https://jai051031.tistory.com/79</guid>
      <comments>https://jai051031.tistory.com/79#entry79comment</comments>
      <pubDate>Mon, 25 May 2026 23:49:10 +0900</pubDate>
    </item>
    <item>
      <title>[코드트리] 함수 알고리즘 약점 극복 학습 후기</title>
      <link>https://jai051031.tistory.com/78</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-more-than-one-alphabet/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-more-than-one-alphabet/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779106986332&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;2개 이상의 알파벳 설명 | 코드트리&quot; data-og-description=&quot;2개 이상의 알파벳을 통해 문제 요구사항과 입력&amp;middot;출력 예시를 꼼꼼히 확인해 정확한 풀이 전략을 세워보세요.&quot; data-og-host=&quot;www.codetree.ai&quot; data-og-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-more-than-one-alphabet/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-more-than-one-alphabet/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/comEie/dJMb8T943pi/ZevUJisrf0bkWegNKmlcF0/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-more-than-one-alphabet/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-more-than-one-alphabet/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/comEie/dJMb8T943pi/ZevUJisrf0bkWegNKmlcF0/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400');&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;2개 이상의 알파벳 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;2개 이상의 알파벳을 통해 문제 요구사항과 입력&amp;middot;출력 예시를 꼼꼼히 확인해 정확한 풀이 전략을 세워보세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.codetree.ai&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;시뮬레이션에 대한 학습을 시작하기 전 기초부터 차근차근 나아가기 위하여 함수부터 학습을 시작하였다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;419&quot; data-origin-height=&quot;614&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KXciQ/dJMcajhW4n0/UGcdU4kWUT2nIKgJorrjvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KXciQ/dJMcajhW4n0/UGcdU4kWUT2nIKgJorrjvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KXciQ/dJMcajhW4n0/UGcdU4kWUT2nIKgJorrjvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKXciQ%2FdJMcajhW4n0%2FUGcdU4kWUT2nIKgJorrjvK%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;419&quot; height=&quot;614&quot; data-origin-width=&quot;419&quot; data-origin-height=&quot;614&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;842&quot; data-origin-height=&quot;746&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I88xr/dJMcaaZDhK8/bunk7ckkqHCXkNpxOIYMFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I88xr/dJMcaaZDhK8/bunk7ckkqHCXkNpxOIYMFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I88xr/dJMcaaZDhK8/bunk7ckkqHCXkNpxOIYMFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI88xr%2FdJMcaaZDhK8%2Fbunk7ckkqHCXkNpxOIYMFk%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;842&quot; height=&quot;746&quot; data-origin-width=&quot;842&quot; data-origin-height=&quot;746&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열 A에 서로 다른 알파벳 수가 2개 이상이라면 Yes, 아니라면 No를 출력해야 하는 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1779107322752&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
using namespace std;
string f(int len, string s){
    for(int i=1; i&amp;lt;len; i++){
        if(s[i] != s[i-1])
            return &quot;Yes&quot;;
    }
    return &quot;No&quot;;
}
int main() {
    string s;
    cin &amp;gt;&amp;gt; s;
    int len = s.length();
    cout &amp;lt;&amp;lt; f(len, s);
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1779107850733&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;main 함수

문자열 s를 선언 후 입력받고, 
s를 토대로 정수형 변수 len 을 선언하여 문자열 s 의 길이을 저장 해준 후
함수 f의 반환값을 출력해준다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1779108320775&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;f 함수

문자열 s와 s의 길이 len을 인수로 받는다.
Yes와 No 즉 문자열로 반환 해야 하기에 string 함수로 선언하였다.

for문을 통해 i를 1부터 len까지 반복하며 

if(s[i] != s[i-1])
	return &quot;Yes&quot;;
    
즉 문자열 s의 인덱스 i의 값과 인덱스 i-1의 값이 다르면 Yes를 반환한다.
문제에서 서로 다른 알파벳 수가 2개 이상일 경우 Yes를 출력 하라 하였는데
이는 즉 문자열의 모든 문자가 같은 문자가 아니면 참이 되어야 하는 문제이다.
그렇기에 i 1부터 1씩 증가하며 바로 뒤의 값과 비교하며 다르다면 Yes를 반환하고,
문자열 s를 모두 탐색 하였지만 반환이 되지 않은 경우는 모두 같은 문자로 판단하고 No를 반환한다.&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;다음은 코드트리의 해설이다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;710&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nnhUF/dJMcacwpyvj/OUMdA1GWYdgrr9kwu64hT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nnhUF/dJMcacwpyvj/OUMdA1GWYdgrr9kwu64hT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nnhUF/dJMcacwpyvj/OUMdA1GWYdgrr9kwu64hT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnnhUF%2FdJMcacwpyvj%2FOUMdA1GWYdgrr9kwu64hT1%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;826&quot; height=&quot;710&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;710&quot;/&gt;&lt;/span&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;대부분의 코드는 동일한 양상을 가졌지만 필자와의 가장 큰 차이점이라 하면 비교 인덱스의 위치이다. 필자는 i값을 1씩 증가하며 i-1 인덱스와 비교하였지만 해설에서는 i값을 1씩 증가하며 i와 인덱스 0의 값을 비교하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과 값은 같은 코드이지만 해설처럼 풀이를 한다면 코드의 가독성이 훨 좋을 것 같다 느꼈다. 필자의 코드를 처음 보면 왜 i와 i-1을 비교하지? 라는 의문이 들 수 있지만 해설의 풀이는 이해하기 쉬운 정석적인 코드라 생각한다.&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;함수 문제는 예상했던 대로 어렵지 않았다. 하지만 여러 유형의 문제를 단계별로 풀어보며 나만의 방법이 생기기 시작했고 원래 알고 있던 내용을 더욱 견고하게 다져나가는 계기가 되었다. 이제 더 어려운 개념을 학습 하더라도 탄탄한 기본기로 더욱 쉽게 학습할 수 있을 것 같다는 자신감이 생기게 되었다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#코드트리&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#코딩테스트&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#코테공부&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #2c2c2c; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#함수&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #3f3f3f;&quot;&gt;#알고리즘 기초&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</description>
      <category>알고리즘기초</category>
      <category>코드트리</category>
      <category>코딩테스트</category>
      <category>코테공부</category>
      <category>함수</category>
      <author>jai051031</author>
      <guid isPermaLink="true">https://jai051031.tistory.com/78</guid>
      <comments>https://jai051031.tistory.com/78#entry78comment</comments>
      <pubDate>Mon, 18 May 2026 21:46:43 +0900</pubDate>
    </item>
    <item>
      <title>[코드트리 후기] 코딩테스트 준비, 갭체크부터 시작하기</title>
      <link>https://jai051031.tistory.com/77</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;코드트리 청약 통장 1주차&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;a href=&quot;https://www.codetree.ai/ko/gap-check/onboarding/settings&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/gap-check/onboarding/settings&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;704&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdH49p/dJMcadBTqNB/5qIayKleyTqSR2gdRKCsC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdH49p/dJMcadBTqNB/5qIayKleyTqSR2gdRKCsC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdH49p/dJMcadBTqNB/5qIayKleyTqSR2gdRKCsC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdH49p%2FdJMcadBTqNB%2F5qIayKleyTqSR2gdRKCsC1%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;930&quot; height=&quot;704&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;704&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;403&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwFBHR/dJMcadom4Tx/R8NiKz96nZ7TosClWH3wdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwFBHR/dJMcadom4Tx/R8NiKz96nZ7TosClWH3wdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwFBHR/dJMcadom4Tx/R8NiKz96nZ7TosClWH3wdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwFBHR%2FdJMcadom4Tx%2FR8NiKz96nZ7TosClWH3wdK%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;918&quot; height=&quot;403&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;403&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;555&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUraQG/dJMcaarJTvU/wvPZG6JciwsLpkp4PSU2u0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUraQG/dJMcaarJTvU/wvPZG6JciwsLpkp4PSU2u0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUraQG/dJMcaarJTvU/wvPZG6JciwsLpkp4PSU2u0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUraQG%2FdJMcaarJTvU%2FwvPZG6JciwsLpkp4PSU2u0%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;919&quot; height=&quot;555&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;555&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;1번 문제는 정말 쉬운 난이도여서 금방 풀어냈다 백준 브론즈 2~3 정도의 가장 기본적인 난이도 문제였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;561&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ddkRil/dJMcajhRlaB/ROvcEzTWvpRB4fhi2w1J6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ddkRil/dJMcajhRlaB/ROvcEzTWvpRB4fhi2w1J6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ddkRil/dJMcajhRlaB/ROvcEzTWvpRB4fhi2w1J6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FddkRil%2FdJMcajhRlaB%2FROvcEzTWvpRB4fhi2w1J6K%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;906&quot; height=&quot;561&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;561&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;2번 문제 또한 쉬운 난이도의 시뮬레이션 문제였다 하지만 생각해야 하는 부분이 많아 얻는 것이 많은 문제였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;565&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8zglJ/dJMcafs1d5h/7EExKPfjfyXXWOQIBLj3vK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8zglJ/dJMcafs1d5h/7EExKPfjfyXXWOQIBLj3vK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8zglJ/dJMcafs1d5h/7EExKPfjfyXXWOQIBLj3vK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8zglJ%2FdJMcafs1d5h%2F7EExKPfjfyXXWOQIBLj3vK%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;906&quot; height=&quot;565&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;565&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;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번과 5번 문제는 풀어내지 못하였다. 3번 문제는 단순한 완전탐색 문제였지만 완전탐색 알고리즘에 대한 숙련도 문제로 시간 안에 풀어내지 못하였다. 그리고 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;평소 완전탐색은 쉽다 느껴 따로 공부하지 않고 백트래킹과 DFS BFS를 학습 하였지만 어려움이 많았었다. 그 이유가 완전탐색 개념 부족으로 인한 문제였던 것이다.&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주차 부터는 완전탐색에 대한 공부를 시작하여 개념을 잡고 더 나아가 백트래킹과 DFS BFS를 학습하여야겠다.&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;#코딩테스트&amp;nbsp;#코테공부&amp;nbsp;#코테준비&amp;nbsp;#알고리즘공부&amp;nbsp;#갭체크&lt;/p&gt;</description>
      <category>갭체크</category>
      <category>알고리즘공부</category>
      <category>코드트리</category>
      <category>코딩테스트</category>
      <category>코테공부</category>
      <category>코테준비</category>
      <author>jai051031</author>
      <guid isPermaLink="true">https://jai051031.tistory.com/77</guid>
      <comments>https://jai051031.tistory.com/77#entry77comment</comments>
      <pubDate>Mon, 11 May 2026 23:03:40 +0900</pubDate>
    </item>
    <item>
      <title>Do it! 알고리즘 코딩테스트 | 2. 정렬 - 버블 정렬 | 016 버블 정렬 프로그램 1</title>
      <link>https://jai051031.tistory.com/76</link>
      <description>&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%; text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;문제 정보&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span&gt;백준 1377번 버블 소트&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1377&quot;&gt;https://www.acmicpc.net/problem/1377&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;problem-body&quot; style=&quot;color: #000000; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;버블 소트 알고리즘을 다음과 같이 C++로 작성했다.&lt;/p&gt;
&lt;pre class=&quot;matlab&quot; style=&quot;background-color: #f5f5f5; color: #333333;&quot;&gt;&lt;code&gt;bool changed = false;
for (int i=1; i&amp;lt;=N+1; i++) {
    changed = false;
    for (int j=1; j&amp;lt;=N-i; j++) {
        if (A[j] &amp;gt; A[j+1]) {
            changed = true;
            swap(A[j], A[j+1]);
        }
    }
    if (changed == false) {
        cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; '\n';
        break;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;위 소스에서 N은 배열의 크기이고, A는 정렬해야 하는 배열이다. 배열은 A[1]부터 사용한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;위와 같은 소스를 실행시켰을 때, 어떤 값이 출력되는지 구해보자.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 N이 주어진다. N은 500,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 A[1]부터 A[N]까지 하나씩 주어진다. A에 들어있는 수는 1,000,000보다 작거나 같은 자연수 또는 0이다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;정답을 출력한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f7f7f9; color: #333333;&quot;&gt;&lt;code&gt;5
10
1
5
2
3
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f7f7f9; color: #333333;&quot;&gt;&lt;code&gt;3
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;예제 입력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-2&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f7f7f9; color: #333333;&quot;&gt;&lt;code&gt;5
1
3
5
7
9
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;예제 출력 2&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-2&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f7f7f9; color: #333333;&quot;&gt;&lt;code&gt;1
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1764910734124&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//정답 코드
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int N;
    cin &amp;gt;&amp;gt; N;
    vector&amp;lt;pair&amp;lt;int, int&amp;gt;&amp;gt; A(N);
    for (int i = 0; i &amp;lt; N; i++) {
        cin &amp;gt;&amp;gt; A[i].first;
        A[i].second = i;
    }

    sort(A.begin(), A.end()); //A배열 정렬 O(nlogn)시간 복잡도

    int Max = 0;
    for (int i = 0; i &amp;lt; N; i++) {
        if (Max &amp;lt; A[i].second - i) //정렬 전 index - 정렬 후 index 계산 값의 최대 값을 찾아 저장
            Max = A[i].second - i;
    }
    cout &amp;lt;&amp;lt; Max + 1;
}&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;버블 정렬이 진행 되며 SWAP이 한 번도 일어나지 않은 루프를 찾는 문제이다. 문제 이해하는데 좀 오래 걸리긴 했는데 그냥 간단하다.&lt;/p&gt;</description>
      <category>Do it! 알고리즘 코딩테스트 C++</category>
      <author>jai051031</author>
      <guid isPermaLink="true">https://jai051031.tistory.com/76</guid>
      <comments>https://jai051031.tistory.com/76#entry76comment</comments>
      <pubDate>Fri, 5 Dec 2025 14:00:28 +0900</pubDate>
    </item>
    <item>
      <title>Do it! 알고리즘 코딩테스트 | 2. 정렬 - 버블 정렬 | 015 수 정렬하기 1</title>
      <link>https://jai051031.tistory.com/75</link>
      <description>&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%; text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;문제 정보&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span&gt;백준 2750번 수 정렬하기&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2750&quot;&gt;https://www.acmicpc.net/problem/2750&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;problem-body&quot; style=&quot;color: #000000; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 수의 개수 N(1 &amp;le; N &amp;le; 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f7f7f9; color: #333333;&quot;&gt;&lt;code&gt;5
5
2
3
4
1
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f7f7f9; color: #333333;&quot;&gt;&lt;code&gt;1
2
3
4
5
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&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;정렬에는 여러 방법이 있지만 대표적인 정렬 6가지가 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;color: #000000; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;300&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #000000;&quot; width=&quot;100&quot; height=&quot;24&quot;&gt;버블 정렬&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot; width=&quot;100&quot;&gt;인접 요소 비교&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot; width=&quot;100&quot;&gt;O(n^2)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #000000;&quot; height=&quot;24&quot;&gt;선택 정렬&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;최대, 최솟값 선택&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;O(n^2)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #000000;&quot; height=&quot;24&quot;&gt;삽입 정렬&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;적절한 위치 탐색 후 삽입&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;O(n^2)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #000000;&quot; height=&quot;24&quot;&gt;퀵 정렬&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;pivot 값을 기준으로 정렬&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;O(nlogn)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #000000;&quot; height=&quot;24&quot;&gt;병합 정렬&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;부분 집합으로 나누어 병합&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;O(nlogn)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #000000;&quot; height=&quot;24&quot;&gt;기수 정렬&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;데이터의 자릿수 비교&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;O(n)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1764909216293&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//내 코드
#include&amp;lt;iostream&amp;gt;
#define INT(t) int n, a[t]
#define F(i, t, n) for(int i=t; i&amp;lt;n; i++)
#define I(n) cin &amp;gt;&amp;gt; n
#define O(n) cout &amp;lt;&amp;lt; n &amp;lt;&amp;lt; endl;
#define SWAP(a, b) do { int t = (a); (a) = (b); (b) = t; } while(0)
#define IF(a, b) if(a &amp;gt; b)
using namespace std;
int main(){
    INT(1000);
    I(n);
    F(i, 0, n)
    I(a[i]);
    F(i, 0, n)
    F(j, 0, n-i-1)
    IF(a[j], a[j+1])
    SWAP(a[j], a[j+1]);
    F(i, 0, n)
    O(a[i]);
}
//define 연습해 본다고 만든 코드라 가독성은 떨어짐.. 그냥 재밌어서 해봄&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1764909236958&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//정답 코드
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int N;
    cin &amp;gt;&amp;gt; N;
    vector&amp;lt;int&amp;gt; A(N, 0);
    for (int i = 0; i &amp;lt; N; i++) {
        cin &amp;gt;&amp;gt; A[i];
    }
  
    for (int i = 0; i &amp;lt; N - 1; i++) {
        for (int j = 0; j &amp;lt; N - 1 - i; j++) {
            if (A[j] &amp;gt; A[j + 1]) {
                int temp = A[j];
                A[j] = A[j + 1];
                A[j + 1] = temp;
            }
        }
    }

    for (int i = 0; i &amp;lt; N; i++) {
        cout &amp;lt;&amp;lt; A[i] &amp;lt;&amp;lt; &quot;\n&quot;;
    }
}&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;버블 정렬은 가장 간단한 정렬 코드이다. 시간 복잡도가 O(n^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;버블 정렬의 원리는 인접 인덱스의 대소관계를 비교하며 SWAP 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1764910081986&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for (int i = 0; i &amp;lt; N - 1; i++) {
    for (int j = 0; j &amp;lt; N - 1 - i; j++) {
        if (A[j] &amp;gt; A[j + 1]) {
            int temp = A[j];
            A[j] = A[j + 1];
            A[j + 1] = temp;
        }
    }
}&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;i는 0부터 N-2까지(맨 마지막 인덱스는 비교할 뒤 인덱스가 없기 때문)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;j는 0부터 N-2-i까지(정렬이 진행 될 수록 맨 뒤에는 고정 자리이기 때문)&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;그리고 temp 변수를 만들어 SWAP을 진행 해준다&lt;/p&gt;</description>
      <category>Do it! 알고리즘 코딩테스트 C++</category>
      <author>jai051031</author>
      <guid isPermaLink="true">https://jai051031.tistory.com/75</guid>
      <comments>https://jai051031.tistory.com/75#entry75comment</comments>
      <pubDate>Fri, 5 Dec 2025 13:50:18 +0900</pubDate>
    </item>
    <item>
      <title>Do it! 알고리즘 코딩테스트 | 1. 자료구조 - 스택과 큐 | 014 절댓값 힙 구현하기</title>
      <link>https://jai051031.tistory.com/74</link>
      <description>&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%; text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;문제 정보&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span&gt;백준 11286번 절댓값 힙&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11286&quot;&gt;https://www.acmicpc.net/problem/11286&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;problem-body&quot; style=&quot;color: #000000; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_description&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;절댓값 힙은 다음과 같은 연산을 지원하는 자료구조이다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li style=&quot;color: #555555;&quot;&gt;배열에 정수 x (x&amp;nbsp;&amp;ne; 0)를 넣는다.&lt;/li&gt;
&lt;li style=&quot;color: #555555;&quot;&gt;배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;프로그램은 처음에 비어있는 배열에서 시작하게 된다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;입력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_input&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 연산의 개수 N(1&amp;le;N&amp;le;100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면&amp;nbsp;배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 절댓값이 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 정수는 -231보다 크고,&amp;nbsp;231보다 작다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;출력&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;입력에서 0이 주어진 회수만큼 답을 출력한다. 만약 배열이 비어 있는 경우인데 절댓값이 가장 작은 값을 출력하라고 한 경우에는 0을 출력하면 된다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;예제 입력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-input-1&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f7f7f9; color: #333333;&quot;&gt;&lt;code&gt;18
1
-1
0
0
0
1
1
-1
-1
2
-2
0
0
0
0
0
0
0
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 style=&quot;color: #585f69;&quot; data-ke-size=&quot;size26&quot;&gt;예제 출력 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;pre id=&quot;sample-output-1&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f7f7f9; color: #333333;&quot;&gt;&lt;code&gt;-1
1
0
-1
-1
1
1
-2
2
0
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1764164855141&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//내 코드
#include&amp;lt;iostream&amp;gt;
#include&amp;lt;algorithm&amp;gt;
using namespace std;
int queue[100000], front = -1, rear = -1;
void push(int v){
    queue[++rear] = v;
}
void pop(){
    cout &amp;lt;&amp;lt; queue[++front] &amp;lt;&amp;lt; endl;
}
int main(){
    int n, a[100000];
    cin &amp;gt;&amp;gt; n;
    for(int i=0; i&amp;lt;n; i++){
        cin &amp;gt;&amp;gt; a[i];
        if(a[i] != 0){
            push(a[i]);
            sort(queue, queue+rear+1);
        }
        else{
            if(front == rear)
                cout &amp;lt;&amp;lt; &quot;0&quot; &amp;lt;&amp;lt; endl;
            else
                pop();
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1764164869624&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//정답 코드
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;queue&amp;gt;
using namespace std;

struct compare {
    bool operator()(int o1, int o2) {
        int first_abs = abs(o1);
        int second_abs = abs(o2);
        if (first_abs == second_abs)
            return o1 &amp;gt; o2;// 절대값이 같은 경우 음수 우선 정렬
        else
            return first_abs &amp;gt; second_abs;// 절대값을 기준으로 정렬
    }
};

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    // 우선순위 큐 선언방식: &amp;lt;자료형, 구현체, 비교함수명&amp;gt;
    priority_queue&amp;lt;int, vector&amp;lt;int&amp;gt;, compare&amp;gt; MyQueue;

    int N;
    cin &amp;gt;&amp;gt; N;
    for (int i = 0; i &amp;lt; N; i++) {
        int request;
        cin &amp;gt;&amp;gt; request;
        if (request == 0) {
            if (MyQueue.empty()) {
                cout &amp;lt;&amp;lt; &quot;0\n&quot;;
            }
            else {
                cout &amp;lt;&amp;lt; MyQueue.top() &amp;lt;&amp;lt; '\n';
                MyQueue.pop();
            }
        }
        else {
            MyQueue.push(request);
        }
    }
}&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;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1764173036405&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;struct compare {
    bool operator()(int o1, int o2) {
        int first_abs = abs(o1);
        int second_abs = abs(o2);
        if (first_abs == second_abs)
            return o1 &amp;gt; o2;// 절대값이 같은 경우 음수 우선 정렬
        else
            return first_abs &amp;gt; second_abs;// 절대값을 기준으로 정렬
    }
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1764173054655&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 우선순위 큐 선언방식: &amp;lt;자료형, 구현체, 비교함수명&amp;gt;
priority_queue&amp;lt;int, vector&amp;lt;int&amp;gt;, compare&amp;gt; MyQueue;&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;이렇게 compare 구조체를 정의해 주어 절댓값 기준에 맞게 정렬을 해주면 되는데 이런 방법을 생각도 못해봤고 딱히 다시 쓸 것 같진 않다&lt;/p&gt;</description>
      <category>Do it! 알고리즘 코딩테스트 C++</category>
      <author>jai051031</author>
      <guid isPermaLink="true">https://jai051031.tistory.com/74</guid>
      <comments>https://jai051031.tistory.com/74#entry74comment</comments>
      <pubDate>Wed, 26 Nov 2025 22:47:57 +0900</pubDate>
    </item>
  </channel>
</rss>