<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>geolog</title>
    <link>https://geologs.tistory.com/</link>
    <description>geologs 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Thu, 11 Jun 2026 18:38:28 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>geologs</managingEditor>
    <item>
      <title>[CodeTree] Ch5.시뮬레이션 2 - dx dy technique</title>
      <link>https://geologs.tistory.com/50</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9LBOi/dJMcaaZOMdi/tjEMEdohBG9N3A5kY3C3z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9LBOi/dJMcaaZOMdi/tjEMEdohBG9N3A5kY3C3z1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9LBOi/dJMcaaZOMdi/tjEMEdohBG9N3A5kY3C3z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9LBOi%2FdJMcaaZOMdi%2FtjEMEdohBG9N3A5kY3C3z1%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;3840&quot; height=&quot;2160&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개념 : dx, dy 테크닉&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2차원 좌표(배열)에서 특정 좌표에서 위, 아래, 오른쪽, 왼쪽으로 이동한 좌표를 구할 때 쓰이는 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;4방향 탐색&lt;/b&gt; &lt;/span&gt;방식을 `dx, dy 테크닉`이라 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dy, dx 는 2차원 배열에서 4방향 탐색을 하는 것입니다. 따라서 수학 2차원 좌표에서 y가 + 되는 방향이, 2차원 배열에서는 인덱스가 감소하는 방향이 됩니다.&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;이때 시계방향으로 탐색할지, 반시계 방향으로 탐색할지에 따라 dy[4]배열의 값의 순서와 dx[4] 배열의 값의 순서가 달라집니다.&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;2662&quot; data-origin-height=&quot;1118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R54pA/dJMcajoRboE/R2iO4HGnX77EKcqq4oymKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R54pA/dJMcajoRboE/R2iO4HGnX77EKcqq4oymKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R54pA/dJMcajoRboE/R2iO4HGnX77EKcqq4oymKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR54pA%2FdJMcajoRboE%2FR2iO4HGnX77EKcqq4oymKK%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;2662&quot; height=&quot;1118&quot; data-origin-width=&quot;2662&quot; data-origin-height=&quot;1118&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1474&quot; data-origin-height=&quot;1176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6e3C0/dJMcahLrazu/v6ixtCmhHRKKRPAb8UPQyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6e3C0/dJMcahLrazu/v6ixtCmhHRKKRPAb8UPQyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6e3C0/dJMcahLrazu/v6ixtCmhHRKKRPAb8UPQyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6e3C0%2FdJMcahLrazu%2Fv6ixtCmhHRKKRPAb8UPQyk%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;1474&quot; height=&quot;1176&quot; data-origin-width=&quot;1474&quot; data-origin-height=&quot;1176&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;h1 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Warmup : 방향에 맞춰 이동&lt;/b&gt;&amp;nbsp;&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-move-in-direction/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-move-in-direction/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780636585339&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;방향에 맞춰 이동을 통해 문제 요구사항과 입력&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/intro-move-in-direction/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-move-in-direction/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bfZILg/dJMb84X6kx6/BOU6LKJkJcUI95ZMBbi7Q1/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/intro-move-in-direction/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-move-in-direction/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bfZILg/dJMb84X6kx6/BOU6LKJkJcUI95ZMBbi7Q1/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;방향에 맞춰 이동 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;방향에 맞춰 이동을 통해 문제 요구사항과 입력&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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1622&quot; data-origin-height=&quot;1224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Rb21c/dJMcajiabrk/ziS0UbR7rH9OjWmuQ6xfAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Rb21c/dJMcajiabrk/ziS0UbR7rH9OjWmuQ6xfAk/img.png&quot; data-alt=&quot;Warmup: 방향에 맞춰 이동&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Rb21c/dJMcajiabrk/ziS0UbR7rH9OjWmuQ6xfAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRb21c%2FdJMcajiabrk%2FziS0UbR7rH9OjWmuQ6xfAk%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;1622&quot; height=&quot;1224&quot; data-origin-width=&quot;1622&quot; data-origin-height=&quot;1224&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Warmup: 방향에 맞춰 이동&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;740&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6yhIo/dJMcadvpUxC/HdaVrrF5uRKRkTRF9fRO30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6yhIo/dJMcadvpUxC/HdaVrrF5uRKRkTRF9fRO30/img.png&quot; data-alt=&quot;입출력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6yhIo/dJMcadvpUxC/HdaVrrF5uRKRkTRF9fRO30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6yhIo%2FdJMcadvpUxC%2FHdaVrrF5uRKRkTRF9fRO30%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;1602&quot; height=&quot;740&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;740&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1578&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLwonK/dJMcaip2lXn/KMbIKmO6gw0GF8QGC2DtRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLwonK/dJMcaip2lXn/KMbIKmO6gw0GF8QGC2DtRk/img.png&quot; data-alt=&quot;예제 설명 및 복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLwonK/dJMcaip2lXn/KMbIKmO6gw0GF8QGC2DtRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLwonK%2FdJMcaip2lXn%2FKMbIKmO6gw0GF8QGC2DtRk%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;1578&quot; height=&quot;1334&quot; data-origin-width=&quot;1578&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;예제 설명 및 복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1780636545937&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
#define distance aaaa
char direction;
int n, distance, ny, nx, y, x;
int dy[4] = {-1, 0, 1, 0};
int dx[4] = {0, 1, 0, -1};
int main() {
    // 방향 , 거리 
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n; 
    while(n--) {
        cin &amp;gt;&amp;gt; direction &amp;gt;&amp;gt; distance;

        if(direction== 'S') ny = y + distance * dy[0], nx = x + distance *dx[0];
        else if(direction == 'E') ny = y + distance *dy[1], nx = x + distance *dx[1];
        else if(direction == 'N') ny = y + distance *dy[2], nx = x + distance *dx[2];
        else ny = y + distance *dy[3], nx = x + distance *dx[3];
        y = ny, x = nx;
    }
    cout &amp;lt;&amp;lt; x &amp;lt;&amp;lt;  &quot; &quot; &amp;lt;&amp;lt; y &amp;lt;&amp;lt; '\n';
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해설코드&lt;/p&gt;
&lt;pre id=&quot;code_1780636530555&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 DIR_NUM 4

using namespace std;

int n, x, y;

// 동, 서, 남, 북 순으로 dx, dy를 정의합니다.
int dx[DIR_NUM] = {1, -1,  0, 0};
int dy[DIR_NUM] = {0,  0, -1, 1};

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n;
    
    // 움직이는 것을 진행합니다.
    while(n--) {
        char c_dir; int dist;
        cin &amp;gt;&amp;gt; c_dir &amp;gt;&amp;gt; dist;
        
		// 각 방향에 맞는 번호를 붙여줍니다.
        int dir;
        if(c_dir == 'E')
            dir = 0;
        else if(c_dir == 'W')
            dir = 1;
        else if(c_dir == 'S')
            dir = 2;
        else
            dir = 3;
        
		// 주어진 방향대로 dist 거리만큼 이동했을 경우의
		// 위치를 구해줍니다.
        x += dx[dir] * dist;
        y += dy[dir] * dist;
    }
    
    cout &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &quot; &quot; &amp;lt;&amp;lt; y;
    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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개념 : 방향회전을 위한 dx, dy 정의 방법&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;방향이 dx, dy 배열의 인덱스이기 때문에 &lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;방향이 항상 양수를 갖도록해야한다&lt;/span&gt;.&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;b&gt;Warmup : 문자에 따른 명령 2&lt;/b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780640621941&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int dy[4] = {0, -1, 0, 1};
const int dx[4] = {1, 0, -1, 0};
int y, x, ny, nx, dir_num = 3; 
string n; 
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n; 
    // 현재 방향이 북쪽인지가 중요한듯. 
    for(int i = 0; i &amp;lt; n.size(); i++) {
        if(n[i] == 'L') dir_num = (dir_num + 3) % 4; 
        else if(n[i] == 'R') dir_num = (dir_num + 1) % 4; 
        else{
            ny = y + dy[dir_num], nx = x + dx[dir_num]; // 이동 
            // cout &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &quot; : &quot; &amp;lt;&amp;lt; y &amp;lt;&amp;lt;  &quot;, &quot; &amp;lt;&amp;lt; nx &amp;lt;&amp;lt; &quot; : &quot; &amp;lt;&amp;lt; ny &amp;lt;&amp;lt; &quot;\n&quot;;
            y = ny, x = nx; 
        } 
    }
    cout &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &quot; &quot; &amp;lt;&amp;lt; y &amp;lt;&amp;lt; &quot;\n&quot;;
    
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1228&quot; data-origin-height=&quot;310&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dpqc2b/dJMb997HsiL/EleC9k4GEmE7t4QRujUdeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dpqc2b/dJMb997HsiL/EleC9k4GEmE7t4QRujUdeK/img.png&quot; data-alt=&quot;실행시간&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dpqc2b/dJMb997HsiL/EleC9k4GEmE7t4QRujUdeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdpqc2b%2FdJMb997HsiL%2FEleC9k4GEmE7t4QRujUdeK%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;1228&quot; height=&quot;310&quot; data-origin-width=&quot;1228&quot; data-origin-height=&quot;310&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행시간&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개념 : 격자에서의 dx dy&lt;/b&gt;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개념 : 조건에 따라 방향이 변하는 경우&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-small-marble-movement/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-small-marble-movement/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780759408156&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;작은 구슬의 이동을 통해 문제 요구사항과 입력&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/intro-small-marble-movement/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-small-marble-movement/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/lfGN8/dJMb8UHWY0G/ABuJhAk5k4rVKZS8aIjTJK/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/intro-small-marble-movement/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-small-marble-movement/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/lfGN8/dJMb8UHWY0G/ABuJhAk5k4rVKZS8aIjTJK/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;작은 구슬의 이동 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;작은 구슬의 이동을 통해 문제 요구사항과 입력&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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1594&quot; data-origin-height=&quot;1278&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCuhVV/dJMcafGTOH9/w2wMTLtUUKq81zwFmtKGhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCuhVV/dJMcafGTOH9/w2wMTLtUUKq81zwFmtKGhk/img.png&quot; data-alt=&quot;Warmup : 조건에 따라 방향이 변하는 경우&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCuhVV/dJMcafGTOH9/w2wMTLtUUKq81zwFmtKGhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCuhVV%2FdJMcafGTOH9%2Fw2wMTLtUUKq81zwFmtKGhk%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;1594&quot; height=&quot;1278&quot; data-origin-width=&quot;1594&quot; data-origin-height=&quot;1278&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Warmup : 조건에 따라 방향이 변하는 경우&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKvEvq/dJMcaaFBMnW/Cu5gKAH8LkYOd2dvz9t8eK/tfile.svg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKvEvq/dJMcaaFBMnW/Cu5gKAH8LkYOd2dvz9t8eK/tfile.svg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKvEvq/dJMcaaFBMnW/Cu5gKAH8LkYOd2dvz9t8eK/tfile.svg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKvEvq%2FdJMcaaFBMnW%2FCu5gKAH8LkYOd2dvz9t8eK%2Ftfile.svg&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;600&quot; height=&quot;400&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1560&quot; data-origin-height=&quot;1148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eLs5EZ/dJMb99UaH9X/KztcgjXWmEf4jkuP07T8HK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eLs5EZ/dJMb99UaH9X/KztcgjXWmEf4jkuP07T8HK/img.png&quot; data-alt=&quot;입출력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eLs5EZ/dJMb99UaH9X/KztcgjXWmEf4jkuP07T8HK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeLs5EZ%2FdJMb99UaH9X%2FKztcgjXWmEf4jkuP07T8HK%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;1560&quot; height=&quot;1148&quot; data-origin-width=&quot;1560&quot; data-origin-height=&quot;1148&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1562&quot; data-origin-height=&quot;964&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3nIZ7/dJMb99NmR69/gBDl2cJ6wyNGiKFT06balk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3nIZ7/dJMb99NmR69/gBDl2cJ6wyNGiKFT06balk/img.png&quot; data-alt=&quot;입출력예제 및 복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3nIZ7/dJMb99NmR69/gBDl2cJ6wyNGiKFT06balk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3nIZ7%2FdJMb99NmR69%2FgBDl2cJ6wyNGiKFT06balk%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;1562&quot; height=&quot;964&quot; data-origin-width=&quot;1562&quot; data-origin-height=&quot;964&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력예제 및 복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이 시간 : 30분&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근방법&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1780759376871&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
// 방향을 바꾸는데 1 만큼의 시간이 소요됨 
const int dy[4] = {-1, 0, 1, 0};
const int dx[4] = {0, 1, 0, -1};
int n, t, y, x, ny, nx, r, c, dir_num;
char d; 
// int arr[54][54];
int get_dir(char d) { // 방향을 주면 방향벡터 반환 
    if(d == 'D') return 2;
    else if(d == 'U') return 0; 
    else if(d == 'R') return 1;
    else if(d == 'L') return 3; 
}
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n  &amp;gt;&amp;gt; t; 
    cin &amp;gt;&amp;gt; r &amp;gt;&amp;gt; c &amp;gt;&amp;gt; d; // t초 후 위치한 격자의 칸 행 번호 출력 마지막에 +1 해줘야함.
    r--; c--;
    y = r, x = c;
    // t초마다 움직임을 변경
    dir_num = get_dir(d);
    while(t--) {
        // 방향을 바꿔야하는 때인지 좌표이동을 해도 되는 때인지를 구분하자
        ny = y + dy[dir_num]; nx = x + dx[dir_num];
        if(ny &amp;lt; 0 || ny &amp;gt;= n || nx &amp;lt; 0 || nx &amp;gt;= n) {
            // 격자 끝에 부딪히면 바꾼다. 
            dir_num = (dir_num + 2) % 4; continue;
        }
        y = ny; x = nx;
    }
    cout &amp;lt;&amp;lt; y  + 1 &amp;lt;&amp;lt; &quot; &quot; &amp;lt;&amp;lt; x + 1;
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1218&quot; data-origin-height=&quot;314&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cV3ouS/dJMcabdlhrg/BiaZoBDG0EnH2ekNgEJKWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cV3ouS/dJMcabdlhrg/BiaZoBDG0EnH2ekNgEJKWK/img.png&quot; data-alt=&quot;실행결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cV3ouS/dJMcabdlhrg/BiaZoBDG0EnH2ekNgEJKWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcV3ouS%2FdJMcabdlhrg%2FBiaZoBDG0EnH2ekNgEJKWK%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;1218&quot; height=&quot;314&quot; data-origin-width=&quot;1218&quot; data-origin-height=&quot;314&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780759587716&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;string&amp;gt;

#define ASCII_NUM 128
#define DIR_NUM 4

using namespace std;

int n, t;
int x, y, dir;
int mapper[ASCII_NUM];

int dx[DIR_NUM] = {0, 1, -1,  0};
int dy[DIR_NUM] = {1, 0,  0, -1};

bool InRange(int x, int y) {
    return 0 &amp;lt;= x &amp;amp;&amp;amp; x &amp;lt; n &amp;amp;&amp;amp; 0 &amp;lt;= y &amp;amp;&amp;amp; y &amp;lt; n;
}

void Simulate() {
    while(t--) {
        int nx = x + dx[dir], ny = y + dy[dir];
        // 범위 안에 들어온다면 그대로 진행합니다.
        if(InRange(nx, ny)) {
            x = nx, y = ny;
        }
        // 벽에 부딪힌다면, 방향을 바꿔줍니다.
        else
            dir = 3 - dir;
    }
}

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; t;
    
    // 각 알파벳 별 방향 번호를 설정합니다.
    mapper['R'] = 0;
    mapper['D'] = 1;
    mapper['U'] = 2;
    mapper['L'] = 3;
    
    char c_dir;
    cin &amp;gt;&amp;gt; x &amp;gt;&amp;gt; y &amp;gt;&amp;gt; c_dir;
    x--; y--; dir = mapper[c_dir];
    
    Simulate();
    
    cout &amp;lt;&amp;lt; x + 1 &amp;lt;&amp;lt; &quot; &quot; &amp;lt;&amp;lt; y + 1;
    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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개념 : 빙빙돌며 숫자 적기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-snail-number-square/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-snail-number-square/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780887549564&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;빙빙 돌며 숫자 사각형 채우기을 통해 문제 요구사항과 입력&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/intro-snail-number-square/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-snail-number-square/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bgyuls/dJMb8XknkPM/6pNtRAK5nJW0Jcno7VDLGk/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/intro-snail-number-square/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-snail-number-square/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bgyuls/dJMb8XknkPM/6pNtRAK5nJW0Jcno7VDLGk/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;빙빙 돌며 숫자 사각형 채우기 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;빙빙 돌며 숫자 사각형 채우기을 통해 문제 요구사항과 입력&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이시간&lt;/b&gt; : 20분&lt;/p&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;1. 숫자를 1씩 늘린 값을 2차원 배열에 시계방향으로 탐색하며 저장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 2차원 배열을 2중 for문으로 탐색하지않고 2차원 배열에 저장될 숫자 범위를 오름차순으로 반복한다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2중 for문으로 배열을 탐색하는 것(`for(int i = 0; i &amp;lt;n; i++) { for(int j = 0; j &amp;lt; m; j++) {}}`) 은 탐색 방향이 오른쪽(동쪽)으로만 탐색하는 것이기 때문에 동쪽 방향으로만 탐색하면 문제 조건인 `배열의 끝에 도달`하거나 `이미 방문한 곳`을 충족하지 못한다.&lt;/li&gt;
&lt;li&gt;`for(int i =1 ; i &amp;lt; n * m; i++)`으로 반복하면 2차원 배열에 값을 기록한다.&lt;/li&gt;
&lt;li&gt;`i &amp;lt;= n *m 등호가 들어가지 않는 이유`는 등호가 들어가면 i = n * m 일 때 arr[1][1] = 17이 저장되기 때문에 유효하지 않는 값이 저장되기 때문이다. 이는 앞서 다음 좌표(ny,nx) 기준으로 숫자를 기록하기 때문에 i = n * m = 16,&amp;nbsp; a[1][1] = arr[2][1] + 1 = 16 + 1이 된다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 다음 배열 원소(ny, nx)에 저장할 숫자는 현재 배열 원소(y,x) 값에 + 1한 값으로 저장한다.&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;dx, dy 테크닉 적용 방법&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방향벡터 배열 dy[4], dx[4]는&amp;nbsp;위, 오른쪽, 아래, 왼쪽 순으로 가리킵니다. 문제에서 기본 방향은 오른쪽이었으니 현재 방향 인덱스를 의미하는 `dir_num = 1`로 설정합니다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1780887826724&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const int dy[4] = {-1, 0, 1, 0};
const int dx[4] = {0, 1, 0, -1};&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1550&quot; data-origin-height=&quot;1258&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B80je/dJMcabdlQ6b/JXjqMOGXQ3gf3Z5j0KiSB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B80je/dJMcabdlQ6b/JXjqMOGXQ3gf3Z5j0KiSB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B80je/dJMcabdlQ6b/JXjqMOGXQ3gf3Z5j0KiSB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB80je%2FdJMcabdlQ6b%2FJXjqMOGXQ3gf3Z5j0KiSB1%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;1550&quot; height=&quot;1258&quot; data-origin-width=&quot;1550&quot; data-origin-height=&quot;1258&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1780886970621&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int visited[104][104];
int arr[104][104];
const int dy[4] = {-1, 0, 1, 0};
const int dx[4] = {0, 1, 0, -1};
int ny, nx, y, x, n, m, dir_num = 1; 
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m; // 행 열 
    // 1차원 탐색을 진행하면서 1을 늘려가야함. 
    arr[0][0] = 1; visited[0][0] = 1; 
    for(int i = 1; i &amp;lt; n * m; i++) {
        
        ny = y + dy[dir_num]; 
        nx = x + dx[dir_num];
        if(ny &amp;lt; 0 || ny &amp;gt;= n || nx &amp;lt; 0 || nx &amp;gt;= m || visited[ny][nx]){
            // 배열의 인덱스를 도달하거나 이미 방문한적이 있으면 방향을 바꾸고 다시 이동해야함.
            dir_num = (dir_num + 1) % 4; // 방향 바꿔야할 곳 
            ny = y + dy[dir_num];
            nx = x + dx[dir_num];    
        }
        arr[ny][nx] = arr[y][x] + 1; visited[ny][nx] = 1; 
        y = ny; x = nx; 

    }
    for(int i = 0; i &amp;lt; n;  i++) {
        for(int j = 0; j &amp;lt; m ;j++) {
            cout &amp;lt;&amp;lt; arr[i][j] &amp;lt;&amp;lt; ' ';
        }
        cout &amp;lt;&amp;lt; '\n';
    }

    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1214&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOqc63/dJMcagMBd6p/H3D7fk8r1bGSclCgIpRqOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOqc63/dJMcagMBd6p/H3D7fk8r1bGSclCgIpRqOk/img.png&quot; data-alt=&quot;실행 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOqc63/dJMcagMBd6p/H3D7fk8r1bGSclCgIpRqOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOqc63%2FdJMcagMBd6p%2FH3D7fk8r1bGSclCgIpRqOk%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;1214&quot; height=&quot;306&quot; data-origin-width=&quot;1214&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780888252666&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 MAX_NUM 100
#define DIR_NUM 4

using namespace std;

int n, m;
int arr[MAX_NUM][MAX_NUM];

int dx[DIR_NUM] = {0, 1,  0, -1};
int dy[DIR_NUM] = {1, 0, -1,  0};

int curr_x, curr_y;  // 시작은 (0, 0) 입니다.
int dir;             // 0: 오른쪽, 1: 아래쪽, 2: 왼쪽, 3: 위쪽

bool InRange(int x, int y){
    return 0 &amp;lt;= x &amp;amp;&amp;amp; x &amp;lt; n &amp;amp;&amp;amp; 0 &amp;lt;= y &amp;amp;&amp;amp; y &amp;lt; m;
}

int main() {
    // 입력:
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m;

    // 처음 시작 위치에 초기값을 적습니다.
    arr[curr_x][curr_y] = 1;

    // n*m개의 숫자를 적어야 합니다. 
    for(int i = 2; i &amp;lt;= n * m; i++) { // 숫자 i를 어디에 적을지 결정합니다.
        // 현재 방향 dir를 기준으로 그 다음 위치 값을 계산합니다.
        int next_x = curr_x + dx[dir], next_y = curr_y + dy[dir];

        // 더 이상 나아갈 수 없다면
        // 시계방향으로 90'를 회전합니다.
        if(!InRange(next_x, next_y) || arr[next_x][next_y] != 0)
            dir = (dir + 1) % 4;

        // 그 다음 위치로 이동한 다음 배열에 올바른 값을 채워넣습니다.
        curr_x = curr_x + dx[dir]; curr_y = curr_y + dy[dir];
        arr[curr_x][curr_y] = i;
    }
    
    // 출력:
    for(int i = 0; i &amp;lt; n; i++) {
        for(int j = 0; j &amp;lt; m; j++) 
            cout &amp;lt;&amp;lt; arr[i][j] &amp;lt;&amp;lt; &quot; &quot;;
        cout &amp;lt;&amp;lt; endl;
    }
    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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge : 되돌아오기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-come-back/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-come-back/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780889642323&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;되돌아오기을 통해 문제 요구사항과 입력&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-come-back/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-come-back/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/d5rZ7l/dJMb9cBPQqt/rEKDxgLsmtQV6OPEYG5ZBK/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-come-back/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-come-back/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/d5rZ7l/dJMb9cBPQqt/rEKDxgLsmtQV6OPEYG5ZBK/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;되돌아오기 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;되돌아오기을 통해 문제 요구사항과 입력&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이시간&lt;/b&gt; : 10분&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근방법&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;배열을 선언할 필요 없이 방향 이동할 때 필요한 현재 방향을 의미하는 `dir_num 변수`를 조작하여 방향벡터 배열(dy, dx)을 이용해 위치를 이동합니다.&amp;nbsp;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;배열을 사용하지 않아도 되는 이유는 배열에 기록할 값이 필요 없기 때문입니다. 관성으로 배열을 선언한다면 메모리만 낭비됩니다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;입력받은 distance 만큼 한번에 이동하면 안됩니다. `ny = y + dy[dir_num] * distance` (X) 매초마다 처음 위치(0,0)으로 돌아왔는지 체크해야하기 때문입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1780889449231&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
#define distance aaaa
const int dy[4] = {-1, 0, 1, 0};
const int dx[4] = {0, 1, 0, -1};
char direction;
int distance, n, y, x, dir_num, y_, x_, t, ny, nx, state;
int get_dir(char d) {
    if(d == 'N') return 0;
    else if(d == 'E') return 1;
    else if(d == 'S') return 2;
    else return 3;
}
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n;
    y_ = y; x_ = x; 
    while(n--) {
        cin &amp;gt;&amp;gt; direction &amp;gt;&amp;gt; distance;
        dir_num = get_dir(direction);
        for(int i = 1; i &amp;lt;= distance; i++) {            
            t++;
            ny = y_ + dy[dir_num]; nx = x_ + dx[dir_num]; 
            if(ny == y &amp;amp;&amp;amp; nx == x) {
                state = true; break;
            }
            y_ = ny, x_ = nx; 
        }
        if(state) break;
        // 매초마다 원래 위치로 돌아오는지 체크해야됨 한번에 distance만큼 이동하면 안됨. 그 중간에 만날 수 있기 때문에 
    }
    if( state) cout &amp;lt;&amp;lt; t &amp;lt;&amp;lt; '\n';
    else cout &amp;lt;&amp;lt; -1 &amp;lt;&amp;lt; &quot;\n&quot;;

    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1210&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvTGdI/dJMcaaS61Eo/NDNAKJv4FmpIjSnQYVpBXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvTGdI/dJMcaaS61Eo/NDNAKJv4FmpIjSnQYVpBXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvTGdI/dJMcaaS61Eo/NDNAKJv4FmpIjSnQYVpBXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvTGdI%2FdJMcaaS61Eo%2FNDNAKJv4FmpIjSnQYVpBXK%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;1210&quot; height=&quot;284&quot; data-origin-width=&quot;1210&quot; data-origin-height=&quot;284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780890963304&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 DIR_NUM 4

using namespace std;

int n, x, y;

// 동, 서, 남, 북 순으로 dx, dy를 정의합니다.
int dx[DIR_NUM] = {1, -1,  0, 0};
int dy[DIR_NUM] = {0,  0, -1, 1};

// 답을 저장합니다.
int ans = -1;

// 지금까지 걸린 시간을 기록합니다.
int elapsed_time;

// dir 방향으로 dist 만큼 이동하는 함수입니다.
// 만약 시작지에 도달하면 true를 반환합니다.
bool Move(int dir, int dist) {
    while(dist--) {
        x += dx[dir];
        y += dy[dir];
        
        // 이동한 시간을 기록합니다.
        elapsed_time++;

        // 시작지로 다시 돌아오면,
        // 답을 갱신해줍니다.
        if(x == 0 &amp;amp;&amp;amp; y == 0) {
            ans = elapsed_time;
            return true;
        }
    }
    
    return false;
}

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n;
    
    // 움직이는 것을 진행합니다.
    while(n--) {
        char c_dir; int dist;
        cin &amp;gt;&amp;gt; c_dir &amp;gt;&amp;gt; dist;
        
		// 각 방향에 맞는 번호를 붙여줍니다.
        int dir;
        if(c_dir == 'E')
            dir = 0;
        else if(c_dir == 'W')
            dir = 1;
        else if(c_dir == 'S')
            dir = 2;
        else
            dir = 3;
        
        // 주어진 방향대로 dist 만큼 위치를 이동해봅니다.
        bool done = Move(dir, dist);
        
        // 시작 위치에 도달했다면, 종료합니다.
        if(done)
            break;
    }
    
    cout &amp;lt;&amp;lt; ans;
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge : 되돌아오기 2&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-come-back-2/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-come-back-2/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780891038944&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-come-back-2/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-come-back-2/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/pisKr/dJMb9hC81kN/xa6EZkoQtdyJ3Dcb72D1J1/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-come-back-2/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-come-back-2/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/pisKr/dJMb9hC81kN/xa6EZkoQtdyJ3Dcb72D1J1/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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이시간&amp;nbsp;&lt;/b&gt;: 15분&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근방법&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1780893013384&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int dy[4] = {-1, 0, 1, 0};
const int dx[4] = {0, 1, 0, -1};
string input;
bool state ;
int y, x, t, ny, nx, dir_num;
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; input;
    for(int i = 0; i &amp;lt; (int)input.size(); i++) {
 
        if(input[i] == 'L' ) dir_num = (dir_num + 3) % 4;
        else if(input[i] == 'R') dir_num = (dir_num + 1) % 4; 
        else if(input[i] == 'F') { // 이동 
            ny = y + dy[dir_num]; nx = x + dx[dir_num];
        }
        t++; 
        if(ny == 0 &amp;amp;&amp;amp; nx == 0) { cout &amp;lt;&amp;lt; t &amp;lt;&amp;lt; &quot;\n&quot;; state = true;  break;}
        y = ny; x = nx; 
    }
    if(!state) cout &amp;lt;&amp;lt; -1 &amp;lt;&amp;lt; &quot;\n&quot;;
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/39eub/dJMcaaewI89/9QZvb6cfyxgaui91KZAklk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/39eub/dJMcaaewI89/9QZvb6cfyxgaui91KZAklk/img.png&quot; data-alt=&quot;실행결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/39eub/dJMcaaewI89/9QZvb6cfyxgaui91KZAklk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F39eub%2FdJMcaaewI89%2F9QZvb6cfyxgaui91KZAklk%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;1192&quot; height=&quot;296&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;296&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge : 격자위의 편안한 상태&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-comfortable-state-on-the-grid/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-comfortable-state-on-the-grid/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780894121270&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;격자 위의 편안한 상태을 통해 문제 요구사항과 입력&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-comfortable-state-on-the-grid/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-comfortable-state-on-the-grid/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/8Vef2/dJMb8UHW8NC/lFtblCitd8RRvvb4Kx6VAk/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-comfortable-state-on-the-grid/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-comfortable-state-on-the-grid/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/8Vef2/dJMb8UHW8NC/lFtblCitd8RRvvb4Kx6VAk/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;격자 위의 편안한 상태 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;격자 위의 편안한 상태을 통해 문제 요구사항과 입력&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이시간&lt;/b&gt; : 20분&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근방법 &lt;/b&gt;: 색칠할 좌표(r,c)를 m번 받을 때마다 해당 좌표 기준 4방향 탐색하며 색칠한 곳이 3개일 때만 카운트&lt;/p&gt;
&lt;pre id=&quot;code_1780894022506&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int dy[4] = {-1, 0, 1, 0};
const int dx[4] = {0, 1, 0 , -1};
int arr[104][104];
int n, m, r, c, ny, nx;
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m; 
    while(m--) {
        cin &amp;gt;&amp;gt; r &amp;gt;&amp;gt; c ; // 행 열 
        r--; c--;
        arr[r][c] = 1; // 색칠한다. 

        int cnt = 0; 
        for(int k = 0; k &amp;lt; 4; k++) {
            ny = r + dy[k]; 
            nx = c + dx[k]; 
            if(ny &amp;lt; 0 || ny &amp;gt;= n || nx &amp;lt; 0 || nx &amp;gt; n) continue;
            if(arr[ny][nx] == 1) cnt++; 
        }
            
        if(cnt == 3) cout &amp;lt;&amp;lt; 1 &amp;lt;&amp;lt; &quot;\n&quot;;
        else cout &amp;lt;&amp;lt; 0 &amp;lt;&amp;lt; &quot;\n&quot;;

    } 
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1182&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmJ9pB/dJMcah5Oa6b/7Yk24xNKkGEAF1px5Vtk51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmJ9pB/dJMcah5Oa6b/7Yk24xNKkGEAF1px5Vtk51/img.png&quot; data-alt=&quot;실행결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmJ9pB/dJMcah5Oa6b/7Yk24xNKkGEAF1px5Vtk51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmJ9pB%2FdJMcah5Oa6b%2F7Yk24xNKkGEAF1px5Vtk51%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;1182&quot; height=&quot;282&quot; data-origin-width=&quot;1182&quot; data-origin-height=&quot;282&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780894219925&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;string&amp;gt;

#define MAX_N 100
#define DIR_NUM 4

using namespace std;

int n, m;
int arr[MAX_N][MAX_N];

int dx[DIR_NUM] = {0, 1,  0, -1};
int dy[DIR_NUM] = {1, 0, -1,  0};

bool InRange(int x, int y) {
    return 0 &amp;lt;= x &amp;amp;&amp;amp; x &amp;lt; n &amp;amp;&amp;amp; 0 &amp;lt;= y &amp;amp;&amp;amp; y &amp;lt; n;
}

int AdjacentCnt(int x, int y) {
    int cnt = 0;
    for(int i = 0; i &amp;lt; DIR_NUM; i++) {
        int nx = x + dx[i], ny = y + dy[i];
        if(InRange(nx, ny) &amp;amp;&amp;amp; arr[nx][ny] == 1)
            cnt++;
    }
    
    return cnt;
}

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m;
    
    for(int i = 0; i &amp;lt; m; i++) {
		int x, y;
		cin &amp;gt;&amp;gt; x &amp;gt;&amp;gt; y;
		x--;
		y--;
		arr[x][y] = 1;
		// 해당 칸을 탐색합니다.
		if(AdjacentCnt(x, y) == 3)
			cout &amp;lt;&amp;lt; 1 &amp;lt;&amp;lt; endl;
		else
			cout &amp;lt;&amp;lt; 0 &amp;lt;&amp;lt; endl;
	}
	
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge : 거울에 레이저 쏘기 2&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-shoot-a-laser-in-the-mirror-2/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-shoot-a-laser-in-the-mirror-2/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780895886877&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-shoot-a-laser-in-the-mirror-2/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-shoot-a-laser-in-the-mirror-2/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/NQUbf/dJMb9iaYYmN/lLb5cPQ5roDoxVrJJkffkK/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-shoot-a-laser-in-the-mirror-2/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-shoot-a-laser-in-the-mirror-2/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/NQUbf/dJMb9iaYYmN/lLb5cPQ5roDoxVrJJkffkK/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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge : 빙빙 돌며 숫자 사각형 채우기 2&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이시간 : 20분 &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근방법&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전 문제와 다르게 방향을 바꾸는 영역에서 ny, nx좌표를 바로 구하지 않았음. 대신 i를 차감하지 않아야 그 다음 좌표(ny,nx)로 이동할 수 있음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;`빙빙돌며 숫자 사각형 채우기1` 코드 그대로 써도 정답이다. 회전 초깃값과 방향만 `dir_num = 2`, `(dir_num + 3) % 4`으로 수정하면 된다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1780903343199&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int arr[104][104], visited[104][104];
int n, m , y, x, ny, nx, dir_num = 2;
const int dy[4] = {-1, 0, 1, 0};
const int dx[4] = {0, 1, 0, -1};
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m; 
    arr[0][0] = 1, visited[0][0] = 1; 
    for(int i = 1; i &amp;lt; n * m; i++) {
        ny = y + dy[dir_num];
        nx = x + dx[dir_num];
        if(ny &amp;lt; 0 || ny &amp;gt;= n || nx &amp;lt; 0 || nx &amp;gt;= m || visited[ny][nx]){
            dir_num = (dir_num + 3) % 4; // 방향전환
            i--; // 방향 전환할 때는 차감이 되지 않도록한다.
            continue;
        } 
        arr[ny][nx] = arr[y][x] + 1; visited[ny][nx] = 1; 
        y = ny; x = nx; 
    }
    for(int i = 0; i &amp;lt; n; i++) {
        for(int j = 0; j &amp;lt; m; j++) cout &amp;lt;&amp;lt; arr[i][j] &amp;lt;&amp;lt; &quot; &quot;; 
        cout &amp;lt;&amp;lt; '\n';
    }
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm</category>
      <author>geologs</author>
      <guid isPermaLink="true">https://geologs.tistory.com/50</guid>
      <comments>https://geologs.tistory.com/50#entry50comment</comments>
      <pubDate>Tue, 9 Jun 2026 00:04:25 +0900</pubDate>
    </item>
    <item>
      <title>[CodeTree] 5회차: 북마크로 틀린 문제, 삽질한 문제 복습하는 습관 만들기</title>
      <link>https://geologs.tistory.com/51</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lI96R/dJMcad3irky/wlljzKkzkQUFkcTkiSboi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lI96R/dJMcad3irky/wlljzKkzkQUFkcTkiSboi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lI96R/dJMcad3irky/wlljzKkzkQUFkcTkiSboi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlI96R%2FdJMcad3irky%2FwlljzKkzkQUFkcTkiSboi0%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;3840&quot; height=&quot;2160&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;&lt;b&gt;북마크 관리방법&lt;/b&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 다음과 같은 경우에 북마크에 저장한 후 다시 풀곤 했습니다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;설계 및 코드를 작성했으나 히든케이스 때문에 틀려서 못푼 경우&lt;/li&gt;
&lt;li&gt;설계하는데 많은 시간이 소요된 경우 = 삽질이 오래 걸린 경우&amp;nbsp;&lt;/li&gt;
&lt;li&gt;실행결과 시간/공간복잡도가 동일언어 다른 풀이와 비교했을 때 높은 경우&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;북마크 종류도 너무 많으면 결국 관리가 안되어 저장된 문제들을 '다시' 풀지 않을 것이기 때문에 3가지 경우로만 나눴습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 가장 중요한 `'언제' 다시 북마크에 저장한 문제를 풀까? `정하는 것이었습니다. &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;7일 뒤에 다시 푸는 것&lt;/b&gt;&lt;/span&gt;을 기본으로 잡았습니다. 그래야 기존 풀이 방법을 고수하지 않고 다시 처음부터 설계하는 능력을 키울 수 있다고 생각했기 때문입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;372&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Z26uI/dJMcagsfI51/s6DmY95pDyBth7DgC2xyJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Z26uI/dJMcagsfI51/s6DmY95pDyBth7DgC2xyJK/img.png&quot; data-alt=&quot;북마크&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Z26uI/dJMcagsfI51/s6DmY95pDyBth7DgC2xyJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZ26uI%2FdJMcagsfI51%2Fs6DmY95pDyBth7DgC2xyJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;422&quot; height=&quot;372&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;372&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;북마크&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;북마크에 저장을 한 날 기준으로 7d일 뒤에 풀이할 때, 난이도 Easy, Medium, Hard 기준으로 평균 풀이시간 보다 무조건 짧게 풀 수 있어야 제대로 안다고 생각해 다시 풀지 않아도 되는 기준으로 잡았습니다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이번 주 완료&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이번 주는 7일 연속 문제 풀기&lt;/li&gt;
&lt;li&gt;Ch05 Lesson1, Lesson2 완료&lt;/li&gt;
&lt;li&gt;Ch05 Lesson3 dx dy 테크닉 Warmup 완료, Challenge 4문제 완료&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;790&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1CvvK/dJMcaiji16Y/4lFGR4qTCrQxKta1ndXjl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1CvvK/dJMcaiji16Y/4lFGR4qTCrQxKta1ndXjl0/img.png&quot; data-alt=&quot;8일 연속학습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1CvvK/dJMcaiji16Y/4lFGR4qTCrQxKta1ndXjl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1CvvK%2FdJMcaiji16Y%2F4lFGR4qTCrQxKta1ndXjl0%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;880&quot; height=&quot;790&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;790&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;8일 연속학습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;학습 내용 정리&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://geologs.tistory.com/48&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://geologs.tistory.com/48&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780931141455&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[CodeTree] Ch5.시뮬레이션 2 - 배열 기록&quot; data-og-description=&quot;&amp;#96;배열 기록&amp;#96;은 계속 유지해야하는 정보를 배열에 저장하는 유형을 의미한다. 배열 기록 유형 - 21. 시간에 따른 위치 - 매 초마다 위치를 배열에 저장. 인덱스 : 시간, 값 : 위치 2. 남은 횟수 배열로&quot; data-og-host=&quot;geologs.tistory.com&quot; data-og-source-url=&quot;https://geologs.tistory.com/48&quot; data-og-url=&quot;https://geologs.tistory.com/48&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/J2Yhb/dJMb9lle2tp/R7dMvtRSdEcwzyKBSy1L3K/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/iw2s4/dJMb9bwaa6a/UG1bcTR8KncayV1IuI4skK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/ePcCF/dJMb8RRZTjl/NZtKNivyWzKSkCvDJIm34K/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160&quot;&gt;&lt;a href=&quot;https://geologs.tistory.com/48&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://geologs.tistory.com/48&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/J2Yhb/dJMb9lle2tp/R7dMvtRSdEcwzyKBSy1L3K/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/iw2s4/dJMb9bwaa6a/UG1bcTR8KncayV1IuI4skK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/ePcCF/dJMb8RRZTjl/NZtKNivyWzKSkCvDJIm34K/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160');&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] Ch5.시뮬레이션 2 - 배열 기록&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;`배열 기록`은 계속 유지해야하는 정보를 배열에 저장하는 유형을 의미한다. 배열 기록 유형 - 21. 시간에 따른 위치 - 매 초마다 위치를 배열에 저장. 인덱스 : 시간, 값 : 위치 2. 남은 횟수 배열로&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;geologs.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://geologs.tistory.com/50&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://geologs.tistory.com/50&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780931098192&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[CodeTree] Ch5.시뮬레이션 2 - dx dy technique&quot; data-og-description=&quot;개념 : dx, dy 테크닉2차원 좌표(배열)에서 특정 좌표에서 위, 아래, 오른쪽, 왼쪽으로 이동한 좌표를 구할 때 쓰이는 4방향 탐색 방식을 &amp;#96;dx, dy 테크닉&amp;#96;이라 합니다. dy, dx 는 2차원 배열에서 4방향 탐&quot; data-og-host=&quot;geologs.tistory.com&quot; data-og-source-url=&quot;https://geologs.tistory.com/50&quot; data-og-url=&quot;https://geologs.tistory.com/50&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Ii22f/dJMb8Xknqlz/v85Dt08h3GpcG47g1Vz5n0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bzhAQu/dJMb9jgFfbH/hKKOAm5drIHxsPHrSCKPCK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/l5uQv/dJMb9iaY2jA/1xwBGq05teBf4vjOYRviU1/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160&quot;&gt;&lt;a href=&quot;https://geologs.tistory.com/50&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://geologs.tistory.com/50&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Ii22f/dJMb8Xknqlz/v85Dt08h3GpcG47g1Vz5n0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bzhAQu/dJMb9jgFfbH/hKKOAm5drIHxsPHrSCKPCK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/l5uQv/dJMb9iaY2jA/1xwBGq05teBf4vjOYRviU1/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160');&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] Ch5.시뮬레이션 2 - dx dy technique&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;개념 : dx, dy 테크닉2차원 좌표(배열)에서 특정 좌표에서 위, 아래, 오른쪽, 왼쪽으로 이동한 좌표를 구할 때 쓰이는 4방향 탐색 방식을 `dx, dy 테크닉`이라 합니다. dy, dx 는 2차원 배열에서 4방향 탐&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;geologs.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;다음 주 목표&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ch05 완료&lt;/li&gt;
&lt;li&gt;Ch06 완전탐색 1, 2 완료&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;코드트리&amp;nbsp;청약&amp;nbsp;챌린지&amp;nbsp;진행중입니다!&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://www.codetree.ai&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://www.codetree.ai&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780930994918&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;3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리&quot; data-og-description=&quot;매주 학습 납입하고 7주 만기 채우면 코드트리 8월까지 무료. 매주 추첨권을 모아 맥북&amp;middot;에어팟&amp;middot;애플워치 응모까지. 신청 인원에 따라 조기마감될 수 있어요.&quot; data-og-host=&quot;www.codetree.ai&quot; data-og-source-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; data-og-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cIXFgV/dJMb87getHL/57uMuqfnJkTWKhxLwga211/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890,https://scrap.kakaocdn.net/dn/m7ELf/dJMb89ylBux/DLkQkTsfqkSn3RruSIktu1/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cIXFgV/dJMb87getHL/57uMuqfnJkTWKhxLwga211/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890,https://scrap.kakaocdn.net/dn/m7ELf/dJMb89ylBux/DLkQkTsfqkSn3RruSIktu1/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890');&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;3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;매주 학습 납입하고 7주 만기 채우면 코드트리 8월까지 무료. 매주 추첨권을 모아 맥북&amp;middot;에어팟&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;</description>
      <category>Algorithm</category>
      <category>공부습관</category>
      <category>오답노트</category>
      <category>코드트리</category>
      <category>코딩테스트</category>
      <category>코테공부</category>
      <author>geologs</author>
      <guid isPermaLink="true">https://geologs.tistory.com/51</guid>
      <comments>https://geologs.tistory.com/51#entry51comment</comments>
      <pubDate>Sun, 7 Jun 2026 01:02:08 +0900</pubDate>
    </item>
    <item>
      <title>[CodeTree] Ch5.시뮬레이션 2 - 배열 기록</title>
      <link>https://geologs.tistory.com/48</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDEtqX/dJMcaciYgWV/cAFPyNHluIEB6q0lBErWKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDEtqX/dJMcaciYgWV/cAFPyNHluIEB6q0lBErWKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDEtqX/dJMcaciYgWV/cAFPyNHluIEB6q0lBErWKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDEtqX%2FdJMcaciYgWV%2FcAFPyNHluIEB6q0lBErWKK%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;3840&quot; height=&quot;2160&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&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;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;계속 유지해야하는 정보를 배열에 저장하는 유형&lt;/b&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;b&gt;배열 기록 유형&lt;/b&gt; - 2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 시간에 따른 위치 - 매 초마다 위치를 배열에 저장. 인덱스 : 시간, 값 : 위치&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 남은 횟수 배열로 기록하기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개념 : 시간에 따른 위치&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;A, B가 1초에 1m씩 움직입니다. &lt;br /&gt;A는 9초 동안 앞으로 움직이다가, 3초간 뒤로 오고, 다시 5초간 앞으로 움직입니다. &lt;br /&gt;B는 2초간 뒤로 갔다가, 앞으로 2초 갔다가, 1초간 뒤로 오고, 다시 12초간 앞으로 움직입니다. &lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;A, B가 움직임을 시작한 이후에 다시 만나게 되는 시간은 몇 초 뒤일까요? &lt;/b&gt;&lt;/span&gt;&lt;/blockquote&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,B의 시간에 따른 동선을 일직선 상에 표시하면 다음과 같습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;A, B가 몇 초후에 최초로 만나는지&lt;/b&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;주의할 점은 A, B가 위치상 같을 때만 조건이 아니라 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;시간과 위치가 동시에 같을 때&lt;/b&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;방법 -2&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 1초씩 시뮬레이션하면서 A, B의 위치를 동시에 확인&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이게 왜 복잡한 방법인가? : 매초마다 A와 B의 이동 기록을 추적해야함.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. A의 시간에 따른 이동을 배열에 저장하고, B의 시간에 따른 이동 기록을 배열에 저장&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zG1qx/dJMb99T7wBT/kxgBWLiyvwYKiCDt0z4Nx1/tfile.svg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zG1qx/dJMb99T7wBT/kxgBWLiyvwYKiCDt0z4Nx1/tfile.svg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zG1qx/dJMb99T7wBT/kxgBWLiyvwYKiCDt0z4Nx1/tfile.svg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzG1qx%2FdJMb99T7wBT%2FkxgBWLiyvwYKiCDt0z4Nx1%2Ftfile.svg&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;600&quot; height=&quot;400&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;400&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;배열의 인덱스가 시간(초)이고, 그 안에 저장되는 값이 위치입니다.`a[시간] = 위치`&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 도식에서는 일직선의 축이 위치가 마치 배열의 인덱스처럼 나타납니다. 위치를 인덱스로 잡지 않는 이유는 A, B가 오른쪽, 왼쪽 양방향으로 이동하면서 위치는 중복이 될 수 있기 때문입니다. 시간은 계속 증가하기 때문에 인덱스가 겹치지 않아 a[시간] = 위치가 됩니다.&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의 시간에 따른 위치를 기록하고 B의 시간에 따른 위치를 기록한 뒤, 0 초 부터 1초씩 증가시키면서 값이 최초로 같을 때 배열의 인덱스가 최초 만나는 시각이 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Warm up : 만나는 그 순간 &lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1664&quot; data-origin-height=&quot;1556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b84R9N/dJMcab5tYJD/nvFXUk4CfmEjejQ9d1ssXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b84R9N/dJMcab5tYJD/nvFXUk4CfmEjejQ9d1ssXk/img.png&quot; data-alt=&quot;Warm up 만나는 그 순간&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b84R9N/dJMcab5tYJD/nvFXUk4CfmEjejQ9d1ssXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb84R9N%2FdJMcab5tYJD%2FnvFXUk4CfmEjejQ9d1ssXk%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;1664&quot; height=&quot;1556&quot; data-origin-width=&quot;1664&quot; data-origin-height=&quot;1556&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Warm up 만나는 그 순간&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1652&quot; data-origin-height=&quot;976&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgKyn8/dJMcaciYr38/UkwH0QeSKmkpeisOKh5k2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgKyn8/dJMcaciYr38/UkwH0QeSKmkpeisOKh5k2k/img.png&quot; data-alt=&quot;입출력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgKyn8/dJMcaciYr38/UkwH0QeSKmkpeisOKh5k2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgKyn8%2FdJMcaciYr38%2FUkwH0QeSKmkpeisOKh5k2k%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;1652&quot; height=&quot;976&quot; data-origin-width=&quot;1652&quot; data-origin-height=&quot;976&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1670&quot; data-origin-height=&quot;1328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rakhN/dJMcab5tYQ3/E4DPWCwFR3kGPWxr486Aek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rakhN/dJMcab5tYQ3/E4DPWCwFR3kGPWxr486Aek/img.png&quot; data-alt=&quot;예시 설명 및 복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rakhN/dJMcab5tYQ3/E4DPWCwFR3kGPWxr486Aek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrakhN%2FdJMcab5tYQ3%2FE4DPWCwFR3kGPWxr486Aek%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;1670&quot; height=&quot;1328&quot; data-origin-width=&quot;1670&quot; data-origin-height=&quot;1328&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;예시 설명 및 복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내 풀이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근방법&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;A와 B 각각 시간의 흐름에 따른 이동 위치를 1차원 배열에 저장한다. a[시간] =위치&amp;nbsp;&lt;/li&gt;
&lt;li&gt;현재 시간, 현재 위치를 저장하는 변수를 각각 두고, A, B가 t초만큼 d방향으로 이동할 때 시간을 누적하여 총 이동 시간을 구한다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;A, B의 총 이동 시간 중 최소 시간으로 두 사람의 이동 기록 배열을 탐색한다. &lt;br /&gt;e.g A는 총 10초간 이동, B는 2초간 이동했다면 2초까지만 동일 시각에 동일 위치에 있는지 확인한다. 3초 부터는 B가 이동하지 않았으므로 절대 A와 만날 수 없기 때문이다.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;놓친 지점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;최대 이동시간은 1,000이 아니라 1,000,000초이다.&lt;/b&gt;&lt;/span&gt;&amp;nbsp;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;조건의 범위가 1 &amp;lt;= t &amp;lt;= 1000, 1 &amp;lt;= n, m &amp;lt;= 1000이므로&amp;nbsp;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt; 최대 1000번 동안 각각 1000초를 이동한 것&lt;/b&gt;&lt;/span&gt;이 최댓값이 된다. 1000번&amp;nbsp; * 1000 초 = 1000초 인 것이다.&lt;/li&gt;
&lt;li&gt;A, B의 시간의 흐름에 따른 이동 위치를 기록한 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;배열의 크기가 1000이되면 런타임에러&lt;/b&gt;&lt;/span&gt;가 난다. `arr_a[1000]` 에서 `arr_a[1'000'004]`로 수정해야한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1780375067389&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int arr_a[1'000'004];
int arr_b[1'000'004]; 
int cur_time, cur_pos, n, m, t, t_a, t_b; 
char d; 
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m; 
    // A의 시간에 따른 위치를 기록한다. 
    while(n--) {
        cin &amp;gt;&amp;gt; d &amp;gt;&amp;gt; t ;
        // cout &amp;lt;&amp;lt; &quot;d = &quot; &amp;lt;&amp;lt; d &amp;lt;&amp;lt; &quot; , t = &quot; &amp;lt;&amp;lt; t &amp;lt;&amp;lt; &quot;\n&quot;;
        t_a += t;
        while(t--) {
            cur_time++; 
            if(d == 'R'){
                arr_a[cur_time] = ++cur_pos;
            }
            else arr_a[cur_time] = --cur_pos; 
        }
    }
    cur_time = 0, cur_pos = 0; 
    while(m--) {
        cin &amp;gt;&amp;gt; d &amp;gt;&amp;gt; t ;
        t_b += t;
        
        while(t--) {
            cur_time++; 
            if(d == 'R'){
                arr_b[cur_time] = ++cur_pos;
            }
            else arr_b[cur_time] = --cur_pos; 
        }
    }
    bool state = false; 
    // 둘의 이동 시간 중 작은 시간 만큼 탐색을 한다. 

    t = min(t_a, t_b);
    for(int i = 1; i &amp;lt;= t; i++) { // i = 0일 때는 아직 움직이지 않았기 때문에 1부터 시작 
        if(arr_a[i] == arr_b[i]) {
            cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &quot;\n&quot;; state = true; break;
        }
    }
    if(!state) cout &amp;lt;&amp;lt; -1 &amp;lt;&amp;lt; &quot;\n&quot;; // 둘다 만나지 않는 경우 예외처리
    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;&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 widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1202&quot; data-origin-height=&quot;324&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqN8lg/dJMcabdil0e/fkMUkqItxQKbxZzSPXna4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqN8lg/dJMcabdil0e/fkMUkqItxQKbxZzSPXna4K/img.png&quot; data-alt=&quot;실행 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqN8lg/dJMcabdil0e/fkMUkqItxQKbxZzSPXna4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqN8lg%2FdJMcabdil0e%2FfkMUkqItxQKbxZzSPXna4K%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;1202&quot; height=&quot;324&quot; data-origin-width=&quot;1202&quot; data-origin-height=&quot;324&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개념 : 남은 횟수를 배열로 기록하기&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;3명의 사람 A, B, C가 각각 숫자 5, 10, 8을 생각하고 있습니다. &lt;br /&gt;각 사람은 처음 3개의 사탕을 가지고 있고, 5번의 질문에 대해 조건을 만족할 때마다 사탕을 하나씩 잃게 됩니다. &lt;br /&gt;가장 빨리 사탕이 사라지게 되는 사람은 누구일까요? &lt;br /&gt;5개의 질문 목록은 다음과 같습니다. &lt;br /&gt;&lt;br /&gt;1. 숫자가 3 이상인 경우 &lt;br /&gt;2. 숫자가 5 이하인 경우 &lt;br /&gt;3. 숫자가 7 이상인 경우 &lt;br /&gt;4. 숫자가 2 이상 8 이하인 경우 &lt;br /&gt;5. 숫자가 10 미만인 경우&lt;/blockquote&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Warmup : 벌금은 누구에게&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-who-will-pay/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-who-will-pay/description&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780378953915&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;벌금은 누구에게을 통해 문제 요구사항과 입력&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/intro-who-will-pay/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-who-will-pay/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cxZst9/dJMb8Yp2C5J/t9Q3HgYcJl9BzRMwfyPCw1/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/intro-who-will-pay/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-who-will-pay/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cxZst9/dJMb8Yp2C5J/t9Q3HgYcJl9BzRMwfyPCw1/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;벌금은 누구에게 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;벌금은 누구에게을 통해 문제 요구사항과 입력&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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1666&quot; data-origin-height=&quot;1296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dWPqCO/dJMcagsbv9G/9tkpNByrKJaUaJKLmQkzp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dWPqCO/dJMcagsbv9G/9tkpNByrKJaUaJKLmQkzp1/img.png&quot; data-alt=&quot;Warmup: 벌금은 누구에게&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dWPqCO/dJMcagsbv9G/9tkpNByrKJaUaJKLmQkzp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdWPqCO%2FdJMcagsbv9G%2F9tkpNByrKJaUaJKLmQkzp1%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;1666&quot; height=&quot;1296&quot; data-origin-width=&quot;1666&quot; data-origin-height=&quot;1296&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Warmup: 벌금은 누구에게&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1644&quot; data-origin-height=&quot;1504&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMM0EI/dJMcada5DDb/MEc1onE4U2G4DLguhj7Ylk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMM0EI/dJMcada5DDb/MEc1onE4U2G4DLguhj7Ylk/img.png&quot; data-alt=&quot;입출력 및 복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMM0EI/dJMcada5DDb/MEc1onE4U2G4DLguhj7Ylk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMM0EI%2FdJMcada5DDb%2FMEc1onE4U2G4DLguhj7Ylk%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;1644&quot; height=&quot;1504&quot; data-origin-width=&quot;1644&quot; data-origin-height=&quot;1504&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력 및 복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근 방법&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;매 시행 (벌칙에 걸린 학생의 번호를 확인)마다 학생들의 벌점을 확인한다(시뮬레이션)&lt;/li&gt;
&lt;li&gt;학생들의 벌점 상태를 배열에 기록(저장)한다.&lt;/li&gt;
&lt;li&gt;총 시행 횟수 (m) 시행 결과 벌칙에 걸린 학생이 없다면 ( arr[i] &amp;lt; k), -1을 출력한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1780378988496&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int arr[104]; 
int n, m, k, target;
bool state = false; 
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    // 최초로 벌금을 내게 되는 학생 
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m &amp;gt;&amp;gt; k ;
    for(int i = 0; i &amp;lt; m; i++) { // 10^8 복잡도 안넘음 
        cin &amp;gt;&amp;gt; target; // 벌칙에 걸린 학생의 번호 
        arr[target]++;
        // 벌칙에 걸린 학생이 있는지 확인 
        for(int j = 1; j &amp;lt;=n; j++) {
            if(arr[j] &amp;gt;= k) { 
                cout &amp;lt;&amp;lt; j &amp;lt;&amp;lt; &quot;\n&quot;; state= true; 
                break; 
            }
        }
        if(state) break;
    }
    if(!state) cout &amp;lt;&amp;lt; -1 &amp;lt;&amp;lt; &quot;\n&quot;;
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ucPap/dJMcahxSG2t/bjFelgu1sJmkbZm3keNdK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ucPap/dJMcahxSG2t/bjFelgu1sJmkbZm3keNdK1/img.png&quot; data-alt=&quot;실행 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ucPap/dJMcahxSG2t/bjFelgu1sJmkbZm3keNdK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FucPap%2FdJMcahxSG2t%2FbjFelgu1sJmkbZm3keNdK1%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;1198&quot; height=&quot;318&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;318&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780379686379&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 MAX_N 100
#define MAX_M 10000

using namespace std;

int n, m, k;
int penalized_person[MAX_M];
int penalty_num[MAX_N + 1];

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m &amp;gt;&amp;gt; k;
    for(int i = 0; i &amp;lt; m; i++)
        cin &amp;gt;&amp;gt; penalized_person[i];
    
    // 각 패널티 횟수를 세서,
    // 최초로 K번 이상 벌칙을 받는 사람을 추적합니다.
    int ans = -1;
    for(int i = 0; i &amp;lt; m; i++) {
        int target = penalized_person[i];
        penalty_num[target]++;
        
        if(penalty_num[target] &amp;gt;= k) {
            ans = target;
            break;
        }
    }
    
    cout &amp;lt;&amp;lt; ans;
    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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge : 선두를 지켜라&amp;nbsp;&lt;/b&gt;&lt;/h2&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/trails/complete/curated-cards/challenge-keep-the-lead/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-keep-the-lead/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780381680539&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;선두를 지켜라을 통해 문제 요구사항과 입력&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-keep-the-lead/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-keep-the-lead/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/GOFEH/dJMb9dHvmLZ/99cOmaOkeTGyjjetYnNuQ0/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-keep-the-lead/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-keep-the-lead/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/GOFEH/dJMb9dHvmLZ/99cOmaOkeTGyjjetYnNuQ0/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;선두를 지켜라 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;선두를 지켜라을 통해 문제 요구사항과 입력&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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1618&quot; data-origin-height=&quot;1456&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cblMHO/dJMcai4xQBs/znu7jSs4BR9462y22iRBa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cblMHO/dJMcai4xQBs/znu7jSs4BR9462y22iRBa0/img.png&quot; data-alt=&quot;Challenge 선두를 지켜라&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cblMHO/dJMcai4xQBs/znu7jSs4BR9462y22iRBa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcblMHO%2FdJMcai4xQBs%2Fznu7jSs4BR9462y22iRBa0%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;1618&quot; height=&quot;1456&quot; data-origin-width=&quot;1618&quot; data-origin-height=&quot;1456&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Challenge 선두를 지켜라&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1610&quot; data-origin-height=&quot;900&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BfZvM/dJMcaaS3AzQ/w14iJS2B5NO61P4SqoDrXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BfZvM/dJMcaaS3AzQ/w14iJS2B5NO61P4SqoDrXk/img.png&quot; data-alt=&quot;입출력 예제&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BfZvM/dJMcaaS3AzQ/w14iJS2B5NO61P4SqoDrXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBfZvM%2FdJMcaaS3AzQ%2Fw14iJS2B5NO61P4SqoDrXk%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;1610&quot; height=&quot;900&quot; data-origin-width=&quot;1610&quot; data-origin-height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력 예제&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1666&quot; data-origin-height=&quot;1404&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKnj1a/dJMcahdzZ4m/6qk1YmfpqyvfysKzIWUYW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKnj1a/dJMcahdzZ4m/6qk1YmfpqyvfysKzIWUYW0/img.png&quot; data-alt=&quot;예제 설명 및 복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKnj1a/dJMcahdzZ4m/6qk1YmfpqyvfysKzIWUYW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKnj1a%2FdJMcahdzZ4m%2F6qk1YmfpqyvfysKzIWUYW0%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;1666&quot; height=&quot;1404&quot; data-origin-width=&quot;1666&quot; data-origin-height=&quot;1404&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;예제 설명 및 복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제의 경우 아래 3가지를 고민하는데 많은 시간이 들었습니다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;배열에 어떤 값을 저장하는가&amp;nbsp;&lt;/li&gt;
&lt;li&gt;선두 결정과 선두 바뀜의 차이&amp;nbsp;&lt;/li&gt;
&lt;li&gt;선두 바뀜 판정 방법&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이 시간&lt;/b&gt; : 5시간&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근 방법&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;배열에 매초마다 위치기록&lt;/li&gt;
&lt;li&gt;변수에 선두를 저장하고, 배열을 탐색하면서 추월하는 순간을 카운팅&amp;nbsp;&lt;/li&gt;
&lt;/ul&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;1) 1 차원 배열에 매 초마다 어느 위치에 있는지 기록&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;거리, 속도, 시간&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문제에서 &quot;주어지는 특정 속도로 특정 시간만큼 이동&quot;한다고 했습니다. 그러면 결국 선두가 뒤바뀌는 것을 알기 위해서는 특정 시각에 각각의 위치를 알아야합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문제에서는 속도와 시간을 주었지 &quot;위치&quot;는 제공하지 않았기 때문에, 거리/속도/시간 공식에 따라 거리를 구해야합니다. &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&gt;여기서 구한 거리를 배열의 값으로 저장합니다.&amp;nbsp;&lt;/span&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;1600&quot; data-origin-height=&quot;900&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3fAvs/dJMb99T7TgK/Yo1p4TBu65Q7NBzifYujsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3fAvs/dJMb99T7TgK/Yo1p4TBu65Q7NBzifYujsk/img.png&quot; data-alt=&quot;거리, 속도, 시간&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3fAvs/dJMb99T7TgK/Yo1p4TBu65Q7NBzifYujsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3fAvs%2FdJMb99T7TgK%2FYo1p4TBu65Q7NBzifYujsk%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;1600&quot; height=&quot;900&quot; data-origin-width=&quot;1600&quot; data-origin-height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;거리, 속도, 시간&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;예시) 속도 4 (m/h)를 1시간동안 이동한다.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;1시간 후의 거리 = 속도 4 (m/h)&amp;nbsp; * 시간 1 h = 4 m 입니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;시간은 1시간씩 선형적으로 증가하기 때문에 거리에 대한 공식 x(t) = v * t 를 만들 수 있습니다.&amp;nbsp;&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;b&gt;&lt;span&gt;코드 적용 &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1780391120679&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; m; i++) {
        cin &amp;gt;&amp;gt; v &amp;gt;&amp;gt; t; 
        for(int j = 1; j &amp;lt;= t; j++) {
            arr_b[cur_time + j] = arr_b[cur_time] + v * j; 
        }
        cur_time += t; 
    }&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;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;틀린 이해)&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;필자는 1시간 동안 1/4m 만큼 이동한다고 잘못 이해했습니다.&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;b&gt;선두가 바뀐 것을 판정하는 방법&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;가정 1) 두 사람이 같은 위치일 때 앞뒤 차이를 곱하여 추월 여부 판정&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A,B의 시간에 따른 위치 값을 구간에 따라 표현한 1차 함수로 나타냅니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A 에 대한 함수 f(t), B에 대한 함수 g(t)일 때 (t는 시간을 의미하며 자연수이다), {f(t - 1) - g( t- 1 )} * {f(t + 1) - g( t + 1) } &amp;lt; 0 이면 선두가 바뀌었다라고 판정합니다.&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;b&gt;연속으로 같은 값이 나온 후 선두가 바뀌는 것을 판정하지 못합니다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트케이스 1에서 t = 3, 4일 때 A와 B의 값이 각각 6, 7 로 같은 값을 가지기 때문입니다. 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;여기서 더이상 방법이 떠오르지 않아 질문을 했습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[가정1]의 문제점&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 두 사람의 위치가 같지 않아도, 추월이 일어날 수 있습니다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1초 -&amp;gt; 2초로 넘어갈 때 A는 1초에서 3이고, 2초에서 10이라고 하면, B가 1초에서 1이고 2초에서 13이면 둘이 만나지 않더라도 추월이 일어날 수 있습니다.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 연속으로 두 사람의 위치가 같은 경우 대소 비교하기 어려움&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;3. 선두가 바뀌는 것 != 선두가 결정되는 것 (주의사항)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문제를 보면 &quot;단, 두 사람이 공동으로 선두를 지키는 경우, 어느 한 쪽이 앞서가기 전까지는 선두가 바뀌지 않았다고 판단합니다.&quot;라고 되어있습니다. &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;u&gt;&lt;b&gt;즉 둘이 1초, 2초, 3초 같은 위치인 경우 아직 선두가 결정되지 않은 것입니다.&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&lt;u&gt;4초에서 A가 10, B가 20인경우 B가 선두로 처음 결정된 것&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;이지 &lt;u&gt;선두가 바뀐것이 아닙니다.&amp;nbsp;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2) 올바른 접근방법 : 현재 앞서고 있는 사람이 누구인지 배열 변수에 기록&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;동점이 되는 시점을 찾아서 앞뒤를 비교하기보다, 매 초마다&lt;span style=&quot;color: #ef5369;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;&quot;현재 앞서고 있는 사람이 누구인지&quot;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&amp;nbsp;를 변수에 기록&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&gt;[참고] 토론 글 답변 받은 내용입니다. 즉, 앞서 배운 배열 기록이 활용되는 부분이었습니다. 선두인 사람을 배열에 기록하는 것이 핵심이었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1780457007234&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
#define MAX 1'000'004
using namespace std;
int arr_a[MAX], arr_b[MAX], arr[MAX];
int n, m, cur_time, v,t, cnt, sum_time; 
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m; // 시행 횟수 
    // A의 매초마다 이동거리 
    for(int i = 0; i &amp;lt; n; i++) {
        cin &amp;gt;&amp;gt; v &amp;gt;&amp;gt; t; 
        sum_time += t; 
        for(int j = 1 ; j &amp;lt;= t; j++) {
            arr_a[cur_time + j] = arr_a[cur_time ] + v * j;  // 이전 거리에서 누적해서 더해야함. 
        }
        cur_time += t; 
    }

    // B의 매초마다 이동거리
    cur_time = 0;
    for(int i = 0; i &amp;lt; m; i++) {
        cin &amp;gt;&amp;gt; v &amp;gt;&amp;gt; t; 
        for(int j = 1; j &amp;lt;= t; j++) {
            arr_b[cur_time + j] = arr_b[cur_time] + v * j; 
        }
        cur_time += t; 
    }


    // 매초마다 현재 앞서고 있는 사람이 누구인지 변수에 기록하자. 
    // 과거의 선두와 비교하는 방식 
    for(int i = 1; i &amp;lt;= sum_time; i++) {
        if(arr_a[i] &amp;gt; arr_b[i]) arr[i] = 1; // a가 더 빠르면 1, b가 빠른 경우 2
        else if(arr_a[i] &amp;lt; arr_b[i]) arr[i] = 2; 
        else arr[i] = 3; // 같은 값을 가질 때, 선두가 바뀌지 않음 
    }

    int head = -1; 
    // 선두가 결정되면 head의 값이 할당됨 3은 선두라고 할 수 없음 
    for(int i = 1; i &amp;lt;= sum_time; i++) {
        // 3에서 2 or 1로 바뀐 것은 선두가 결정되었다고 하는거지 선두가 바뀌었다고 하지 않는다. 
        // 첫 선두 정하기 
        if(head == -1 &amp;amp;&amp;amp; arr[i] != 3) head = arr[i];  // 첫선두가 정해질거임 
        if(head != -1  &amp;amp;&amp;amp; arr[i] != 3 &amp;amp;&amp;amp; head != arr[i]) {
            cnt++; head = arr[i]; // 선두 교체 
        }

    }

    cout &amp;lt;&amp;lt; cnt &amp;lt;&amp;lt; '\n';
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1216&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OKT0B/dJMcabqUwbB/dxq0DD3sSi7gBDna1fpNs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OKT0B/dJMcabqUwbB/dxq0DD3sSi7gBDna1fpNs0/img.png&quot; data-alt=&quot;실행시간&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OKT0B/dJMcabqUwbB/dxq0DD3sSi7gBDna1fpNs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOKT0B%2FdJMcabqUwbB%2Fdxq0DD3sSi7gBDna1fpNs0%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;1216&quot; height=&quot;338&quot; data-origin-width=&quot;1216&quot; data-origin-height=&quot;338&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행시간&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;나의 풀이와 다른점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해설은 매초마다 서있는 위치를 기록할 때 이전 초 기준으로 속도 만큼 더함.&lt;/li&gt;
&lt;li&gt;필자는 입력받은 시점의 시각 기준으로 offset으로&amp;nbsp; v*t를 더함&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1780459400310&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 MAX_T 1000000

using namespace std;

int n, m;
int pos_a[MAX_T + 1], pos_b[MAX_T + 1];

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m;
    
    // A가 매 초마다 서있는 위치를 기록
    int time_a = 1;
    for(int i = 0; i &amp;lt; n; i++) {
        int v, t;
        cin &amp;gt;&amp;gt; v &amp;gt;&amp;gt; t;
        
        while(t--) {
            pos_a[time_a] = pos_a[time_a - 1] + v;
            time_a++;
        }
    }
    
    // B가 매 초마다 서있는 위치를 기록
    int time_b = 1;
    for(int i = 0; i &amp;lt; m; i++) {
        int v, t;
        cin &amp;gt;&amp;gt; v &amp;gt;&amp;gt; t;
        
        while(t--) {
            pos_b[time_b] = pos_b[time_b - 1] + v;
            time_b++;
        }
    }
    
    // A와 B 중 더 앞서 있는 경우를 확인합니다.
    // A가 리더면 1, B가 리더면 2로 관리합니다.
    int leader = 0, ans = 0;
    for(int i = 1; i &amp;lt; time_a; i++) {
        if(pos_a[i] &amp;gt; pos_b[i]) {
            // 기존 리더가 B였다면
            // 답을 갱신합니다.
            if(leader == 2)
                ans++;
            
            // 리더를 A로 변경합니다.
            leader = 1; 
        }
        else if(pos_a[i] &amp;lt; pos_b[i]) {
            // 기존 리더가 A였다면
            // 답을 갱신합니다.
            if(leader == 1)
                ans++;
            
            // 리더를 B로 변경합니다.
            leader = 2; 
        }
    }
    
    cout &amp;lt;&amp;lt; ans;
    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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge : 좌우로 움직이는 로봇&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1290&quot; data-origin-height=&quot;1310&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpGM7i/dJMcacQQleE/kau9P0bR4IRIzBRwr5CXw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpGM7i/dJMcacQQleE/kau9P0bR4IRIzBRwr5CXw1/img.png&quot; data-alt=&quot;Challenge 좌우로 움직이는 로봇&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpGM7i/dJMcacQQleE/kau9P0bR4IRIzBRwr5CXw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpGM7i%2FdJMcacQQleE%2Fkau9P0bR4IRIzBRwr5CXw1%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;1290&quot; height=&quot;1310&quot; data-origin-width=&quot;1290&quot; data-origin-height=&quot;1310&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Challenge 좌우로 움직이는 로봇&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;1204&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ASHMC/dJMcajvGEfC/ppaVUlsLaP8jH8FtZBUDFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ASHMC/dJMcajvGEfC/ppaVUlsLaP8jH8FtZBUDFk/img.png&quot; data-alt=&quot;입출력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ASHMC/dJMcajvGEfC/ppaVUlsLaP8jH8FtZBUDFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FASHMC%2FdJMcajvGEfC%2FppaVUlsLaP8jH8FtZBUDFk%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;1282&quot; height=&quot;1204&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;1204&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이 시간&lt;/b&gt; : 1시간&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근 방법&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A, B 로봇이 각각 매초 마다 이동하는 위치를 배열에 기록&lt;/li&gt;
&lt;li&gt;두 로봇이 같은 시각에 같은 위치에 있을 때, 이전 시간에 두 로봇의 위치가 동일한지 판정 후 카운팅&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실수한 부분&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;char 타입 문자를 int로 선언하여 if(d == 'R') 을 수행하지 못함&lt;/li&gt;
&lt;li&gt;이동이 종료하고 위치가 유지되어야함. 마지막 위치값으로 배열의 나머지 값을 초기화해야함&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;  &lt;b&gt;TIP&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 로봇 A,B를 같은 시각에 한번에 이동을 처리하기 보다는 &lt;b&gt;A 움직임 처리 후 B 움직임을 처리&lt;/b&gt;하는 것이 간편하다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매초 마다 어느 위치에 있었는지 기록하고 1초부터 쭉 탐색을 하며 시간과 위치가 동시에 일치살 때를 구한다.&lt;/p&gt;
&lt;pre id=&quot;code_1780477248822&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
#define MAX 2'000'000 // 최대 이동 거리를 정확히 모르겠음. 
using namespace std;
int n, m, t, cur_time =1, cnt, sum_a, sum_b;
int arr_a[MAX], arr_b[MAX];
char d;
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m; 
    // A의 시간에 따른 이동위치 기록 
    for(int i = 1; i &amp;lt;= n; i++) {
        cin &amp;gt;&amp;gt; t &amp;gt;&amp;gt; d; 
        if(d == 'R') {
            for(int j = 0; j &amp;lt; t ;j++) {
                arr_a[cur_time] = arr_a[cur_time - 1] +1;
                cur_time++;
            }
        }else {
            for(int j = 0; j &amp;lt; t ;j++) {
                arr_a[cur_time] = arr_a[cur_time - 1] -1 ;
                cur_time++;
            }
        }
    }
    fill(&amp;amp;arr_a[cur_time], &amp;amp;arr_a[0] + MAX, arr_a[cur_time -1]); // 마지막 종료 후 마지막 위치값으로 나머지 초기화 
    // B의 시간에 따른 이동위치 배열에 기록 
    cur_time = 1; 
    for(int i = 1; i &amp;lt;= m; i++) {
        cin &amp;gt;&amp;gt; t &amp;gt;&amp;gt; d; 
        if(d == 'R') {
            for(int j = 0; j &amp;lt; t ;j++) {
                arr_b[cur_time] = arr_b[cur_time - 1] +1;
                cur_time++;
            }
        }else {
            for(int j = 0; j &amp;lt; t ;j++) {
                arr_b[cur_time] = arr_b[cur_time - 1] - 1;
                cur_time++;
            }
        }
    }
    fill(&amp;amp;arr_b[cur_time], &amp;amp;arr_b[0] + MAX, arr_b[cur_time -1]);

    // 배열을 탐색하면서 같은 값을 가질 때를 찾고  직전과 다른 위치인 경우 카운팅
    for(int i = 1; i &amp;lt;= MAX; i++) {
        if(arr_b[i] != 0 &amp;amp;&amp;amp; arr_a[i] != 0 &amp;amp;&amp;amp; arr_a[i] == arr_b[i] &amp;amp;&amp;amp; arr_a[i-1] != arr_b[i-1]){
            cnt++;
        }  
    }
    cout &amp;lt;&amp;lt; cnt &amp;lt;&amp;lt; &quot;\n&quot;;
    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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;나의 풀이와 다른 점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;두 로봇의 수행시간이 각각 다를 수 있기 때문에 각 로봇의 수행시간을 구하고 그 중 최댓값을 가지는 시간 만큼만 배열을 순회한다.&lt;/li&gt;
&lt;li&gt;필자는 MAX = 2,000,000까지 배열을 모두 탐색하기 때문에 상대적으로 시간이 더 걸린다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1780477653291&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 MAX_T 1000000

using namespace std;

int n, m;
int pos_a[MAX_T  + 1], pos_b[MAX_T + 1];

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m;
    
    // A가 매 초마다 서있는 위치를 기록
    int time_a = 1;
    for(int i = 0; i &amp;lt; n; i++) {
        char d; int t;
        cin &amp;gt;&amp;gt; t &amp;gt;&amp;gt; d;
        
        while(t--) {
            if(d == 'R')
                pos_a[time_a] = pos_a[time_a - 1] + 1;
            else
                pos_a[time_a] = pos_a[time_a - 1] - 1;
            
            time_a++;
        }
    }
    
    // B가 매 초마다 서있는 위치를 기록
    int time_b = 1;
    for(int i = 0; i &amp;lt; m; i++) {
        int t; char d;
        cin &amp;gt;&amp;gt; t &amp;gt;&amp;gt; d;
        
        while(t--) {
            if(d == 'R')
                pos_b[time_b] = pos_b[time_b - 1] + 1;
            else
                pos_b[time_b] = pos_b[time_b - 1] - 1;
            
            time_b++;
        }
    }
	
	
	if(time_a &amp;lt; time_b) {
		for(int i = time_a; i &amp;lt; time_b; i++) {
			pos_a[i] = pos_a[i - 1];
		}
	}
	else if(time_a &amp;gt; time_b) {
		for(int i = time_b; i &amp;lt; time_a; i++) {
			pos_b[i] = pos_b[i - 1];
		}
	}
    
    // 새롭게 만나는 횟수를 구합니다.
    int cnt = 0;
	int time_max = 0;
	if(time_a &amp;lt; time_b)
		time_max = time_b;
	else
		time_max = time_a;
	
    for(int i = 1; i &amp;lt; time_max; i++) {
        if(pos_a[i] == pos_b[i] &amp;amp;&amp;amp; pos_a[i - 1] != pos_b[i - 1])
            cnt++;
    }
    
    cout &amp;lt;&amp;lt; cnt;
    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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge : 악수와 전염병의 상관관계 2&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-correlation-between-shaking-hands-and-infectious-diseases2/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-correlation-between-shaking-hands-and-infectious-diseases2/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780482509515&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-correlation-between-shaking-hands-and-infectious-diseases2/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-correlation-between-shaking-hands-and-infectious-diseases2/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/LBhM5/dJMb8WeG8ut/Uvt8xaNtrxn0Mdd3H8w1I0/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-correlation-between-shaking-hands-and-infectious-diseases2/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-correlation-between-shaking-hands-and-infectious-diseases2/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/LBhM5/dJMb8WeG8ut/Uvt8xaNtrxn0Mdd3H8w1I0/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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1382&quot; data-origin-height=&quot;1044&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6uAXC/dJMcaiXNdhk/kI8CPDJc69jbsHOZO4UVrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6uAXC/dJMcaiXNdhk/kI8CPDJc69jbsHOZO4UVrK/img.png&quot; data-alt=&quot;Challenge : 악수와 전염병의 상관관계2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6uAXC/dJMcaiXNdhk/kI8CPDJc69jbsHOZO4UVrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6uAXC%2FdJMcaiXNdhk%2FkI8CPDJc69jbsHOZO4UVrK%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;1382&quot; height=&quot;1044&quot; data-origin-width=&quot;1382&quot; data-origin-height=&quot;1044&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Challenge : 악수와 전염병의 상관관계2&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1352&quot; data-origin-height=&quot;758&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BhQFI/dJMcagFMBvT/zBgAt15oXXUq6J8kl8KctK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BhQFI/dJMcagFMBvT/zBgAt15oXXUq6J8kl8KctK/img.png&quot; data-alt=&quot;제한 조건 및 출력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BhQFI/dJMcagFMBvT/zBgAt15oXXUq6J8kl8KctK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBhQFI%2FdJMcagFMBvT%2FzBgAt15oXXUq6J8kl8KctK%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;1352&quot; height=&quot;758&quot; data-origin-width=&quot;1352&quot; data-origin-height=&quot;758&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;제한 조건 및 출력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1360&quot; data-origin-height=&quot;1274&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C62l8/dJMcahYVC7z/64kNUSlelwgKua8YRHQ0Ok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C62l8/dJMcahYVC7z/64kNUSlelwgKua8YRHQ0Ok/img.png&quot; data-alt=&quot;입출력예제&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C62l8/dJMcahYVC7z/64kNUSlelwgKua8YRHQ0Ok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC62l8%2FdJMcahYVC7z%2F64kNUSlelwgKua8YRHQ0Ok%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;1360&quot; height=&quot;1274&quot; data-origin-width=&quot;1360&quot; data-origin-height=&quot;1274&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력예제&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;274&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sdNQD/dJMcahYVC7S/5wTkqkLsmedAbTlnk4Z8n1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sdNQD/dJMcahYVC7S/5wTkqkLsmedAbTlnk4Z8n1/img.png&quot; data-alt=&quot;복잡도 제한사항&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sdNQD/dJMcahYVC7S/5wTkqkLsmedAbTlnk4Z8n1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsdNQD%2FdJMcahYVC7S%2F5wTkqkLsmedAbTlnk4Z8n1%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;1362&quot; height=&quot;274&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;274&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;복잡도 제한사항&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이시간&lt;/b&gt; : 1시간&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근 방법&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시간, 개발자A, B의 값을 하나로 담는 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;구조체 정의&lt;/b&gt;&lt;/span&gt;하여, &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;시간을 오름차순 정렬 &lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;배열에는 매 시행(T)마다 개발자마다 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;감염시킬 수 있는 횟수를 저장&lt;/b&gt;&lt;/span&gt;해야함 `hs[104]`&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;감염여부&lt;/b&gt;&lt;/span&gt;를 `contag[104]`에 저장&lt;/li&gt;
&lt;li&gt;테이스케이스를 시간의 오름차순으로 정렬한 결과를 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;2명이 감염된 상태인지 아닌지 경우의 수를 나눠 탐색&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실수한 부분&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;감염가능(악수 가능) 횟수를 저장하는 hs[] 에 fill() K로 초기화 해야함.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1780482351242&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
struct contagion{
    int t, x, y;
};
bool compare(contagion a, contagion b ) {
    return a.t &amp;lt; b.t;
}
int N, K, P, T;
int t[250];
int x[250];
int y[250];
int hs[104]; // 개발자의 악수할 수 있는 횟수 
int contag[104];
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; N &amp;gt;&amp;gt; K &amp;gt;&amp;gt; P &amp;gt;&amp;gt; T;
    contag[P] = 1; 
    fill(&amp;amp;hs[0], &amp;amp;hs[0] + 104, K);  // 최대 2번 
    vector&amp;lt;contagion&amp;gt; v; 
    for (int i = 0; i &amp;lt; T; i++) {
        cin &amp;gt;&amp;gt; t[i] &amp;gt;&amp;gt; x[i] &amp;gt;&amp;gt; y[i];
        v.push_back({t[i], x[i], y[i]});
    }
    // 시간을 기준으로 오름차순 정렬해야함. 
    int t_ = 0, x_ = 0, y_ = 0;
    sort(v.begin(), v.end(), compare);
    for(auto i : v) {
        t_ = i.t; x_ = i.x; y_ = i.y;

        if(contag[x_] == 1 &amp;amp;&amp;amp; contag[y_] == 1) {
            if(hs[x_] &amp;gt; 0) hs[x_]--;
            if(hs[y_] &amp;gt; 0) hs[y_]--;

        }else if(contag[x_] == 1 &amp;amp;&amp;amp; contag[y_] == 0) {
            if(hs[x_] &amp;gt; 0 ) hs[x_]--, contag[y_] = 1; 
        }
        else if(contag[y_] == 1 &amp;amp;&amp;amp; contag[x_] == 0) {
            if(hs[y_] &amp;gt; 0 ) hs[y_]--, contag[x_] = 1; 
        }

    }
    for(int i = 1; i &amp;lt;= N; i++) {
        cout &amp;lt;&amp;lt; contag[i];
    }


    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1216&quot; data-origin-height=&quot;298&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4570V/dJMcafz4Kmj/BQh7dJwALnk1BS1yDZMRGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4570V/dJMcafz4Kmj/BQh7dJwALnk1BS1yDZMRGk/img.png&quot; data-alt=&quot;실행결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4570V/dJMcafz4Kmj/BQh7dJwALnk1BS1yDZMRGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4570V%2FdJMcafz4Kmj%2FBQh7dJwALnk1BS1yDZMRGk%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;1216&quot; height=&quot;298&quot; data-origin-width=&quot;1216&quot; data-origin-height=&quot;298&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780483030185&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;

#define MAX_N 100
#define MAX_T 250

using namespace std;

int n, k, p, t;
int shake_num[MAX_N + 1];
bool infected[MAX_N + 1];

// 악수의 정보를 나타내는 클래스 선언
class Shake{
    public:
        int time;
        int person1;
        int person2;
        Shake(int time, int person1, int person2) {
            this-&amp;gt;time = time;
            this-&amp;gt;person1 = person1;
            this-&amp;gt;person2 = person2;
        }
		Shake(){}
};

// Custom Comparator
bool Cmp(const Shake &amp;amp;a, const Shake &amp;amp;b) {
    // 시간을 기준으로 오름차순으로 정렬합니다.
    return a.time &amp;lt; b.time;
}

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; k &amp;gt;&amp;gt; p &amp;gt;&amp;gt; t;
	infected[p] = true;
	
	Shake shakes[MAX_T];
	
    for(int i = 0; i &amp;lt; t; i++) {
		int time, person1, person2;
        cin &amp;gt;&amp;gt; time &amp;gt;&amp;gt; person1 &amp;gt;&amp;gt; person2;
		// Shake 객체를 생성해 넣어줍니다.
		shakes[i] = Shake(time, person1, person2);
	}
	
	// custom comparator를 활용한 정렬
    sort(shakes, shakes + t, Cmp);
    
    // 각 악수 횟수를 세서,
    // K번 초과로 악수를 했을 시 전염시키지 않습니다.
    for(int i = 0; i &amp;lt; t; i++) {
        int target1 = shakes[i].person1;
		int target2 = shakes[i].person2;
		
		// 감염되어 있을 경우 악수 횟수를 증가시킵니다.
        if(infected[target1])
			shake_num[target1]++;
		if(infected[target2])
			shake_num[target2]++;
		
		// target1이 감염되어 있고 아직 K번 이하로 악수했다면 target2를 전염시킵니다.
		if(shake_num[target1] &amp;lt;= k &amp;amp;&amp;amp; infected[target1])
			infected[target2] = true;
		
		// target2가 감염되어 있고 아직 K번 이하로 악수했다면 target1을 전염시킵니다.
		if(shake_num[target2] &amp;lt;= k &amp;amp;&amp;amp; infected[target2])
			infected[target1] = true;
    }
    
    for(int i = 1; i &amp;lt;= n; i++) {
		if(infected[i])
			cout &amp;lt;&amp;lt; 1;
		else
			cout &amp;lt;&amp;lt; 0;
	}
	
    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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Test : 선두를 지켜라 3&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/test-keep-the-lead-3/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/test-keep-the-lead-3/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780484078090&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;선두를 지켜라 3 설명 | 코드트리&quot; data-og-description=&quot;선두를 지켜라 3을 통해 문제 요구사항과 입력&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/test-keep-the-lead-3/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/test-keep-the-lead-3/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/daCEfC/dJMb8Yp2LPu/p2zDRs0icWMrmU9nxrPijK/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/test-keep-the-lead-3/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/test-keep-the-lead-3/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/daCEfC/dJMb8Yp2LPu/p2zDRs0icWMrmU9nxrPijK/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;선두를 지켜라 3 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;선두를 지켜라 3을 통해 문제 요구사항과 입력&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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1390&quot; data-origin-height=&quot;1228&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kUxKJ/dJMcacXDbFZ/4qqt1jxv62J22sArDznpJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kUxKJ/dJMcacXDbFZ/4qqt1jxv62J22sArDznpJk/img.png&quot; data-alt=&quot;Test : 선두를 지켜라 3&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kUxKJ/dJMcacXDbFZ/4qqt1jxv62J22sArDznpJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkUxKJ%2FdJMcacXDbFZ%2F4qqt1jxv62J22sArDznpJk%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;1390&quot; height=&quot;1228&quot; data-origin-width=&quot;1390&quot; data-origin-height=&quot;1228&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Test : 선두를 지켜라 3&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1372&quot; data-origin-height=&quot;1094&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qye08/dJMcaa6CJ0i/2nFXMqdXqG59C97MakvM6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qye08/dJMcaa6CJ0i/2nFXMqdXqG59C97MakvM6K/img.png&quot; data-alt=&quot;입출력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qye08/dJMcaa6CJ0i/2nFXMqdXqG59C97MakvM6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQye08%2FdJMcaa6CJ0i%2F2nFXMqdXqG59C97MakvM6K%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;1372&quot; height=&quot;1094&quot; data-origin-width=&quot;1372&quot; data-origin-height=&quot;1094&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1360&quot; data-origin-height=&quot;1368&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dHHB9U/dJMb99NkBKF/m7S2HXYmdPD6Xf03yjtjM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dHHB9U/dJMb99NkBKF/m7S2HXYmdPD6Xf03yjtjM0/img.png&quot; data-alt=&quot;예제 설명 및 복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dHHB9U/dJMb99NkBKF/m7S2HXYmdPD6Xf03yjtjM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdHHB9U%2FdJMb99NkBKF%2Fm7S2HXYmdPD6Xf03yjtjM0%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;1360&quot; height=&quot;1368&quot; data-origin-width=&quot;1360&quot; data-origin-height=&quot;1368&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;예제 설명 및 복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이 1) 두 사람의 시간에 따른 위치를 매초 마다 선두인 것을 결과 배열에 기록&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;풀이시간 &lt;/b&gt;: 40분&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;실수한 부분&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 공간복잡도 초과&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;배열의 인덱스는 시간이 변수&lt;/b&gt;&lt;/span&gt;인데, 위치의 최댓값을 고려해서 1,000,000,000 (= 10^9)으로 생각함. 시간 (T)의 최댓값* 횟수(N,M)의 최댓값 = 1,000,000이 올바름&amp;nbsp;&lt;/li&gt;
&lt;li&gt;10^9을 넘을 수 있으니 타입을 long long으로도 바꿈. 이로인해&amp;nbsp; A, B의 시간에 따른 위치 배열과 선두만 기록하는 배열 &lt;b&gt;총 3개&lt;/b&gt;만 해도 &lt;b&gt;메모리가 24GB&lt;/b&gt; 나오는 공간복잡도 초과 문제가 발생함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. typedef &amp;lt;기존 타입&amp;gt; &amp;lt;새로운 별명타입&amp;gt;;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;define과 헷갈려서 앞에 #을 넣지않고, 콤마(;)를 생략했음&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1780544433992&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
#define MAX 1'000'000 // 시간대별 위치를 기록, 위치가 MAX 의 범위가 아님. 시간임 1000 회 * 1000초

using namespace std;

int N, M, cnt;
int v[1000], t[1000];
int v2[1000], t2[1000];
int arr_a[MAX], arr_b[MAX], res[MAX];
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; N &amp;gt;&amp;gt; M;
    int time_a = 1;
    for (int i = 0; i &amp;lt; N; i++) {
        cin &amp;gt;&amp;gt; v[i] &amp;gt;&amp;gt; t[i];
        // 시간에 따른 A의 위치 기록 
        // t초동안 1초씩 v만큼 더하면됨 
        for(int j = 0; j &amp;lt; t[i] ; j++) {
            arr_a[time_a] = arr_a[time_a -1] + v[i] ;
            time_a++;
        }
    }
    int time_b = 1; 
    for (int i = 0; i &amp;lt; M; i++) {
        cin &amp;gt;&amp;gt; v2[i] &amp;gt;&amp;gt; t2[i];
        // 시간에 따른 B의 위치 기록
        for(int j = 0; j &amp;lt; t2[i]; j++) {
            arr_b[time_b] = arr_b[time_b -1 ] + v2[i];
            time_b++;
        }
    }
  
    // 1 : A, 2 : B , 3 : A, B
    for(int i = 1; i &amp;lt; time_a; i++) {
        if(arr_a[i] == arr_b[i]) res[i] = 3; 
        else if(arr_a[i] &amp;lt; arr_b[i]) res[i] = 2;
        else res[i] = 1;
    }
    for(int i = 1; i &amp;lt; time_a; i++) {
        if(res[i] != res[i-1]) cnt++;
    }
    cout &amp;lt;&amp;lt; cnt &amp;lt;&amp;lt; '\n';

    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1236&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bclLYV/dJMcaiDyNtz/Ean0TzAImDfCan5mbK7tY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bclLYV/dJMcaiDyNtz/Ean0TzAImDfCan5mbK7tY1/img.png&quot; data-alt=&quot;실행결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bclLYV/dJMcaiDyNtz/Ean0TzAImDfCan5mbK7tY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbclLYV%2FdJMcaiDyNtz%2FEan0TzAImDfCan5mbK7tY1%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;1236&quot; height=&quot;328&quot; data-origin-width=&quot;1236&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&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;b&gt;풀이시간 : 1시간&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;결과배열을 저장하는 배열이 없어져 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;메모리가 1MB 줄어듦&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;다시 결과 배열을 탐색하지 않아도 되어 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;시간이 1ms 줄어듦&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실수한 부분&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이전 선두(leader)값과 현재 선두(cur)의 값이 다를 때 개수를 카운팅(cnt++)하는데, 이때 새로운 선두를 현재 선두로 업데이트 하지않아 매우 큰 cnt 값이 생김&lt;/li&gt;
&lt;li&gt;`leader = cur` 이 필요했음&amp;nbsp;&lt;/li&gt;
&lt;li&gt;A와 B의 위치를 시간순으로 비교할 때&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt; 첫 선두는 카운팅에 포함(Cnt = 1) &lt;/b&gt;&lt;/span&gt;해야하는데, 미포함해야한다고 생각해서 조건문이 늘어남.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1780547382932&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
#define MAX 1'000'000 // 시간대별 위치를 기록, 위치가 MAX 의 범위가 아님. 시간임 1000 회 * 1000초
using namespace std;
int N, M, cnt=1;
int v[1000], t[1000];
int v2[1000], t2[1000];
int arr_a[MAX], arr_b[MAX];
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; N &amp;gt;&amp;gt; M;
    int time_a = 1;
    for (int i = 0; i &amp;lt; N; i++) {
        cin &amp;gt;&amp;gt; v[i] &amp;gt;&amp;gt; t[i];
        // 시간에 따른 A의 위치 기록 
        // t초동안 1초씩 v만큼 더하면됨 
        for(int j = 0; j &amp;lt; t[i] ; j++) {
            arr_a[time_a] = arr_a[time_a -1] + v[i] ;
            time_a++;
        }
    }

    int time_b = 1; 
    for (int i = 0; i &amp;lt; M; i++) {
        cin &amp;gt;&amp;gt; v2[i] &amp;gt;&amp;gt; t2[i];
        // 시간에 따른 B의 위치 기록
        for(int j = 0; j &amp;lt; t2[i]; j++) {
            arr_b[time_b] = arr_b[time_b -1 ] + v2[i];
            time_b++;
        }
    }

    // 1 : A, 2 : B , 3 : A, B
    int leader = 0, cur = 0; 
    if(arr_a[1] == arr_b[1]) leader = 3 ;
    else if(arr_a[1] &amp;lt; arr_b[1]) leader = 2;
    else leader = 1;

    for(int i = 2; i &amp;lt; time_a; i++) {
        if(arr_a[i] &amp;gt; arr_b[i]) cur = 1;
        else if(arr_a[i] &amp;lt; arr_b[i]) cur= 2;
        else cur = 3; 
        if(cur != leader) cnt++, leader = cur; // 리더를 현재인 값으로 업데이트 

    }

    cout &amp;lt;&amp;lt; cnt&amp;lt;&amp;lt; '\n';

    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqbgLu/dJMcabxDOhI/KCITMbJ5jXXxieSHYnrxnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqbgLu/dJMcabxDOhI/KCITMbJ5jXXxieSHYnrxnk/img.png&quot; data-alt=&quot;실행결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqbgLu/dJMcabxDOhI/KCITMbJ5jXXxieSHYnrxnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqbgLu%2FdJMcabxDOhI%2FKCITMbJ5jXXxieSHYnrxnk%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;1206&quot; height=&quot;270&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;270&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780547519917&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 MAX_T 1000000

using namespace std;

int n, m;
int pos_a[MAX_T + 1], pos_b[MAX_T + 1];

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m;
    
    // A가 매 초마다 서있는 위치를 기록
    int time_a = 1;
    for(int i = 0; i &amp;lt; n; i++) {
        int v, t;
        cin &amp;gt;&amp;gt; v &amp;gt;&amp;gt; t;
        
        while(t--) {
            pos_a[time_a] = pos_a[time_a - 1] + v;
            time_a++;
        }
    }
    
    // B가 매 초마다 서있는 위치를 기록
    int time_b = 1;
    for(int i = 0; i &amp;lt; m; i++) {
        int v, t;
        cin &amp;gt;&amp;gt; v &amp;gt;&amp;gt; t;
        
        while(t--) {
            pos_b[time_b] = pos_b[time_b - 1] + v;
            time_b++;
        }
    }
    
    // A와 B 중 더 앞서 있는 경우를 확인합니다.
    // A가 리더면 1, B가 리더면 2, 둘 다 리더면 3으로 관리합니다.
    int leader = 0, ans = 0;
    for(int i = 1; i &amp;lt; time_a; i++) {
        if(pos_a[i] &amp;gt; pos_b[i]) {
            // 조합이 바뀌었다면
            // 답을 갱신합니다.
            if(leader != 1)
                ans++;
            
            // 리더를 A로 변경합니다.
            leader = 1; 
        }
        else if(pos_a[i] &amp;lt; pos_b[i]) {
            // 조합이 바뀌었다면
            // 답을 갱신합니다.
            if(leader != 2)
                ans++;
            
            // 리더를 B로 변경합니다.
            leader = 2; 
        }
        else {
            // 조합이 바뀌었다면
            // 답을 갱신합니다.
            if(leader != 3)
                ans++;
            
            // 리더를 둘 다로 변경합니다.
            leader = 3;
        }
    }
    
    cout &amp;lt;&amp;lt; ans;
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm</category>
      <author>geologs</author>
      <guid isPermaLink="true">https://geologs.tistory.com/48</guid>
      <comments>https://geologs.tistory.com/48#entry48comment</comments>
      <pubDate>Fri, 5 Jun 2026 12:10:12 +0900</pubDate>
    </item>
    <item>
      <title>[CodeTree] Ch5.시뮬레이션 2 - 최장 연속 부분 수열</title>
      <link>https://geologs.tistory.com/47</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NmcWB/dJMb997ENEr/yY0K3vfQ6kLq474WZkYpr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NmcWB/dJMb997ENEr/yY0K3vfQ6kLq474WZkYpr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NmcWB/dJMb997ENEr/yY0K3vfQ6kLq474WZkYpr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNmcWB%2FdJMb997ENEr%2FyY0K3vfQ6kLq474WZkYpr0%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;3840&quot; height=&quot;2160&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&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;DP(Dynamic Programming)의 유형인 LCS(Longest Common Subsequence) 최장&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;b&gt;공통&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;부분 수열과 다른 유형입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최장&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;연속&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;부분 수열은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;구현 시뮬레이션&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;문제입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개념 : 숫자가 동일한 연속 부분 수열&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수열이 (2, 2, 7, 7, 7, 7, 5, 7, 7) 다음과 같이 주어졌을 때,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;연속해서 나오는 같은 숫자를 한 묶음&lt;/b&gt;&lt;/span&gt;이라 보면,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2, 2), (7, 7, 7, 7), (5), (7, 7) 총 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;&lt;span&gt;&lt;b&gt;새로운 묶음이 생겨나는 순간에 개수를 세줍니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새로운 묶음이 생겨나는 기준은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;이웃한 이전 원소의 값과 현재의 값이 다를 때&lt;/b&gt;입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;a[i] != a[i -1]&amp;nbsp;&lt;/b&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;|| OR 연산자&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if( A || B)에서 A가 true이면 뒤의 B는 계산하지 않고 바로 {} 명령문들을 실행합니다. 따라서 A 에는 에러가 발생하지 않을 조건을 두어야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Warmup : 연속되는 수 2&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1622&quot; data-origin-height=&quot;1086&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tGRV6/dJMcabdia1C/QKbORqeCgtfZIRvy7hIlEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tGRV6/dJMcabdia1C/QKbORqeCgtfZIRvy7hIlEk/img.png&quot; data-alt=&quot;Warmup 연속되는 수 2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tGRV6/dJMcabdia1C/QKbORqeCgtfZIRvy7hIlEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtGRV6%2FdJMcabdia1C%2FQKbORqeCgtfZIRvy7hIlEk%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;1622&quot; height=&quot;1086&quot; data-origin-width=&quot;1622&quot; data-origin-height=&quot;1086&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Warmup 연속되는 수 2&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1654&quot; data-origin-height=&quot;1436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZfRQP/dJMcafNDs57/4QkPbyak0YYYROxUbUR8bK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZfRQP/dJMcafNDs57/4QkPbyak0YYYROxUbUR8bK/img.png&quot; data-alt=&quot;입출력 및 복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZfRQP/dJMcafNDs57/4QkPbyak0YYYROxUbUR8bK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZfRQP%2FdJMcafNDs57%2F4QkPbyak0YYYROxUbUR8bK%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;1654&quot; height=&quot;1436&quot; data-origin-width=&quot;1654&quot; data-origin-height=&quot;1436&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력 및 복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-continuous-number2/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-continuous-number2/description&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780368696084&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/intro-continuous-number2/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-continuous-number2/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ceKjbi/dJMb8UHWq4e/Kw3Kiqyj0KdVLT3njtek9K/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/intro-continuous-number2/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-continuous-number2/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ceKjbi/dJMb8UHWq4e/Kw3Kiqyj0KdVLT3njtek9K/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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이 1 : 배열 인덱스 1번째부터 탐색&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;놓친 부분&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;모든 숫자가 같을 때&lt;/b&gt;&lt;/span&gt;, 연속된 개수를 ret(최종값)에 업데이트를 하지 않음&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;숫자의 개수가&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;최소 1개일 때 예외케이스 누락&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;-&amp;gt; 1일 때는 for반복문으로 이웃 비교를 하면 인덱스 에러가 발생함.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해설코드와 다른점&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;해설 코드는 수열의 0번째부터 시작하여 if문에 i == 0일 때 a[i-1] 이전값을 참조하는 것을 막음. (인덱스 에러 방지)&amp;nbsp;&lt;/li&gt;
&lt;/ul&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이 2 : 배열 인덱스 0번째부터 탐색&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1780299550922&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int n, ret = -1e9, arr[1004], cnt=1;
int main() {
    cin &amp;gt;&amp;gt; n;
    for(int i = 0; i &amp;lt; n; i++) {
        cin &amp;gt;&amp;gt; arr[i];
    }
    for(int i = 0; i &amp;lt; n; i++) {
        if(i == 0 || arr[i] != arr[i - 1]) {
            ret = max(ret, cnt); cnt = 0;
        }
        cnt++; // 연속으로 같은 숫자를 더한다 
    }
    // 모두 다 같을 때 처리하는 방법 
    ret = max(ret, cnt);
    cout &amp;lt;&amp;lt; ret &amp;lt;&amp;lt; '\n';
    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-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780299602413&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;

#define MAX_N 1000

using namespace std;

int n;
int arr[MAX_N];

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n;
    for(int i = 0; i &amp;lt; n; i++)
        cin &amp;gt;&amp;gt; arr[i];
    
    // 연속하여 동일한 숫자가 나오는 횟수를 구해보며,
    // 그 중 최댓값을 갱신합니다.
    int ans = 0, cnt = 0;
    for(int i = 0; i &amp;lt; n; i++) {
		// Case 1
        if(i &amp;gt;= 1 &amp;amp;&amp;amp; arr[i] == arr[i - 1])
            cnt++;
		// Case 2
        else
            cnt = 1;
        
        ans = max(ans, cnt);
    }
    
    cout &amp;lt;&amp;lt; ans;
    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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge : &lt;/b&gt;&lt;b&gt;연속되는 수 3&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1660&quot; data-origin-height=&quot;1110&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Esui0/dJMcageEGKe/GhOprKKummZo9JoNCt9KCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Esui0/dJMcageEGKe/GhOprKKummZo9JoNCt9KCk/img.png&quot; data-alt=&quot;Challenge 연속되는 수3&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Esui0/dJMcageEGKe/GhOprKKummZo9JoNCt9KCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEsui0%2FdJMcageEGKe%2FGhOprKKummZo9JoNCt9KCk%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;1660&quot; height=&quot;1110&quot; data-origin-width=&quot;1660&quot; data-origin-height=&quot;1110&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Challenge 연속되는 수3&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1624&quot; data-origin-height=&quot;1474&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lMSTX/dJMcagFLDJX/xu80H6Xbee1dtZJyj9AKd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lMSTX/dJMcagFLDJX/xu80H6Xbee1dtZJyj9AKd1/img.png&quot; data-alt=&quot;입출력 및 복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lMSTX/dJMcagFLDJX/xu80H6Xbee1dtZJyj9AKd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlMSTX%2FdJMcagFLDJX%2Fxu80H6Xbee1dtZJyj9AKd1%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;1624&quot; height=&quot;1474&quot; data-origin-width=&quot;1624&quot; data-origin-height=&quot;1474&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력 및 복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-continuous-number3/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-continuous-number3/description&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780368500036&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;연속되는 수 3 설명 | 코드트리&quot; data-og-description=&quot;연속되는 수 3을 통해 문제 요구사항과 입력&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-continuous-number3/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-continuous-number3/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ToiYH/dJMb8WMwQ5p/pTUp3DaxoY90rKo2Rv65fK/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-continuous-number3/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-continuous-number3/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ToiYH/dJMb8WMwQ5p/pTUp3DaxoY90rKo2Rv65fK/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;연속되는 수 3 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;연속되는 수 3을 통해 문제 요구사항과 입력&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;&lt;b&gt;`증가하는 연속 부분 수열`&lt;/b&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞에서 배운 틀을 유지하되, &quot;원소의 숫자가 증가하는 수열&quot;만 적용해 코드를 작성했더니 해설코드와 똑같이 나왔습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개념설명과 쌍을 이루는 기본문제와 여러 Challenge문제가 변형이 잘 되는 것 같습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1780300485195&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int n, arr[1004], cnt, ret = -1e9;
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt;  n; 
    for(int i = 0; i &amp;lt; n; i++) {
        cin &amp;gt;&amp;gt; arr[i];
    }
    for(int i = 0; i &amp;lt; n; i++) {
        if(i &amp;gt;= 1 &amp;amp;&amp;amp; arr[i] &amp;gt; arr[i-1]) cnt++;
        else cnt = 1;
        ret = max(ret, cnt);
    }
    cout &amp;lt;&amp;lt; ret;
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge : 연속되는 수 4&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1628&quot; data-origin-height=&quot;1196&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/161Z0/dJMcahR7POT/hXCEwFLxbqt2HsdqtryBvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/161Z0/dJMcahR7POT/hXCEwFLxbqt2HsdqtryBvK/img.png&quot; data-alt=&quot;Challenge : 연속되는 수 4&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/161Z0/dJMcahR7POT/hXCEwFLxbqt2HsdqtryBvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F161Z0%2FdJMcahR7POT%2FhXCEwFLxbqt2HsdqtryBvK%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;1628&quot; height=&quot;1196&quot; data-origin-width=&quot;1628&quot; data-origin-height=&quot;1196&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Challenge : 연속되는 수 4&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1606&quot; data-origin-height=&quot;1554&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rovuG/dJMb99T7vE4/28JWYL1Wg7kVf1Pvjm5kGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rovuG/dJMb99T7vE4/28JWYL1Wg7kVf1Pvjm5kGk/img.png&quot; data-alt=&quot;입출력 및 복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rovuG/dJMb99T7vE4/28JWYL1Wg7kVf1Pvjm5kGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrovuG%2FdJMb99T7vE4%2F28JWYL1Wg7kVf1Pvjm5kGk%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;1606&quot; height=&quot;1554&quot; data-origin-width=&quot;1606&quot; data-origin-height=&quot;1554&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력 및 복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780368619165&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int n, arr[1004], cnt, ret = -1e9;
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt;  n; 
    for(int i = 0; i &amp;lt; n; i++) {
        cin &amp;gt;&amp;gt; arr[i];
    }
    for(int i = 0; i &amp;lt; n; i++) {
        if(i &amp;gt;= 1 &amp;amp;&amp;amp; arr[i] &amp;gt; arr[i-1]) cnt++;
        else cnt = 1;
        ret = max(ret, cnt);
    }
    cout &amp;lt;&amp;lt; ret;
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780368636297&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;

#define MAX_N 1000

using namespace std;

int n;
int arr[MAX_N];

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n;
    for(int i = 0; i &amp;lt; n; i++)
        cin &amp;gt;&amp;gt; arr[i];
    
    // 연속하여 동일한 숫자가 나오는 횟수를 구해보며,
    // 그 중 최댓값을 갱신합니다.
    int ans = 0, cnt = 0;
    for(int i = 0; i &amp;lt; n; i++) {
		// Case 1
        if(i &amp;gt;= 1 &amp;amp;&amp;amp; arr[i] &amp;gt; arr[i - 1])
            cnt++;
		// Case 2
        else
            cnt = 1;
        
        ans = max(ans, cnt);
    }
    
    cout &amp;lt;&amp;lt; ans;
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Test : T를 초과하는 연속 부분 수열&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1666&quot; data-origin-height=&quot;1218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bA4p73/dJMcahq7VCd/T1bPW2OKKGGSDd5iJbB670/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bA4p73/dJMcahq7VCd/T1bPW2OKKGGSDd5iJbB670/img.png&quot; data-alt=&quot;Test: T를 초과하는 연속 부분 수열&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bA4p73/dJMcahq7VCd/T1bPW2OKKGGSDd5iJbB670/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbA4p73%2FdJMcahq7VCd%2FT1bPW2OKKGGSDd5iJbB670%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;1666&quot; height=&quot;1218&quot; data-origin-width=&quot;1666&quot; data-origin-height=&quot;1218&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Test: T를 초과하는 연속 부분 수열&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1630&quot; data-origin-height=&quot;1184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/V8RPA/dJMcagloNM8/drLneDBugMBOwfGiGUGke0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/V8RPA/dJMcagloNM8/drLneDBugMBOwfGiGUGke0/img.png&quot; data-alt=&quot;입출력 및 복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/V8RPA/dJMcagloNM8/drLneDBugMBOwfGiGUGke0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV8RPA%2FdJMcagloNM8%2FdrLneDBugMBOwfGiGUGke0%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;1630&quot; height=&quot;1184&quot; data-origin-width=&quot;1630&quot; data-origin-height=&quot;1184&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력 및 복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이시간 &lt;/b&gt;1시간&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근 방법&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 탐색하는 원소가 T보다 큰 경우와 T보다 작거나 같은 경우로 나눠 연속 부분 수열을 구한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;막힌 지점&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;이전 문제들처럼 이전 요소간의 비교가 필요하다고 생각&lt;/b&gt;&lt;/span&gt;해, arr[i] &amp;gt; t &amp;amp;&amp;amp; arr[i-1] &amp;gt; t 일 때 cnt++ 하는 코드 작성. 이는 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;이전 요소가 arr[i] 현재 탐색하는 시점일 때 cnt++한 것을 중복으로 세어 정답보다 많은 값이 나오게 됨&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;현재 탐색하는 원소가 t 보다 큰 것을 카운팅하는 것이 목적이고, 이전 요소가 t보다 큰 것은 확인할 필요가 없음. &lt;b&gt;현재 탐색하는 원소가 t보다 작거나 같을 때 카운팅을 초기화&lt;/b&gt; 하면 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;놓친 지점&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테스트 케이스 `4 1 3 3 3 3` 일 때, 이전 문제처럼 첫 카운트 변수 (cnt )를 1로 초기화 하면 안됨.
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;이전에는 조건이 숫자이기만 하면 1개는 카운팅 되었고, 이 문제는 T보다 클 때만, 연속 부분 수열이 되기 때문&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1780300942952&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int n, t, arr[1004], cnt , ret= -1e9;
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; t; 
    for(int i = 0; i&amp;lt; n; i++) cin &amp;gt;&amp;gt; arr[i];

    for(int i = 0; i &amp;lt; n; i++) {
        if(arr[i] &amp;gt; t) {
            cnt++;
        }
        else cnt = 0;
        ret = max(ret, cnt);
    }

    cout &amp;lt;&amp;lt; ret &amp;lt;&amp;lt; '\n';
    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-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드 &lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780367750299&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;

#define MAX_N 1000

using namespace std;

int n, t;
int arr[MAX_N];

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; t;
    for(int i = 0; i &amp;lt; n; i++)
        cin &amp;gt;&amp;gt; arr[i];
    
    // 연속하여 t보다 큰 숫자가 나오는 횟수를 구해보며,
    // 그 중 최댓값을 갱신합니다.
    int ans = 0, cnt = 0;
    for(int i = 0; i &amp;lt; n; i++) {
		// Case 1
        if(arr[i] &amp;gt; t)
            cnt++;
		// Case 2
        else
            cnt = 0;
        
        ans = max(ans, cnt);
    }
    
    cout &amp;lt;&amp;lt; ans;
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;코드트리 청약 챌린지 진행중입니다!&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같이 코테 꾸준히 공부해봅시다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780322885351&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;3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리&quot; data-og-description=&quot;매주 학습 납입하고 7주 만기 채우면 코드트리 8월까지 무료. 매주 추첨권을 모아 맥북&amp;middot;에어팟&amp;middot;애플워치 응모까지. 신청 인원에 따라 조기마감될 수 있어요.&quot; data-og-host=&quot;www.codetree.ai&quot; data-og-source-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; data-og-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/SywLm/dJMb8U80NRX/JORlf9YkCLkZ1ssIKzg701/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890,https://scrap.kakaocdn.net/dn/9yORB/dJMb9g5iabv/EZPGpVHScNpp94bNSTpsm0/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/SywLm/dJMb8U80NRX/JORlf9YkCLkZ1ssIKzg701/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890,https://scrap.kakaocdn.net/dn/9yORB/dJMb9g5iabv/EZPGpVHScNpp94bNSTpsm0/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890');&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;3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;매주 학습 납입하고 7주 만기 채우면 코드트리 8월까지 무료. 매주 추첨권을 모아 맥북&amp;middot;에어팟&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;</description>
      <category>Algorithm</category>
      <author>geologs</author>
      <guid isPermaLink="true">https://geologs.tistory.com/47</guid>
      <comments>https://geologs.tistory.com/47#entry47comment</comments>
      <pubDate>Mon, 1 Jun 2026 16:40:35 +0900</pubDate>
    </item>
    <item>
      <title>[CodeTree] 4회차: 코테 꾸준히 하고자 하는 습관을 지켜주는 환경 (feat. 학습 리마인더 알림톡)</title>
      <link>https://geologs.tistory.com/46</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bigngZ/dJMcaiKfHd9/RQT53L9yDIz4yNYgjh4IxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bigngZ/dJMcaiKfHd9/RQT53L9yDIz4yNYgjh4IxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bigngZ/dJMcaiKfHd9/RQT53L9yDIz4yNYgjh4IxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbigngZ%2FdJMcaiKfHd9%2FRQT53L9yDIz4yNYgjh4IxK%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;3840&quot; height=&quot;2160&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;학습 독려 : 학습 리마인더 알림톡&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 주에는 &lt;b&gt;자격증 시험이 2개나 겹쳐 있어서 코드트리를 꾸준히 하지 못했습니다.&lt;/b&gt; 저는 꾸준하게 하던 걸 중단하고 다시 시작하는데 많은 에너지가 소요되는 편입니다. 꾸준하게 할 때의 수준까지 도달하는데 얼마나 걸릴지 모르기 때문에 부담감이 생기기 때문입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드트리의 장점은 며칠 연속으로 문제를 꾸준히 풀었는지 기록하는&amp;nbsp; &lt;b&gt;스트릭&lt;/b&gt;이 중단되면, &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;학습 텐션을 유지하는데 필요한 시간&lt;/b&gt;&lt;/span&gt;을 카카오톡 알림톡으로 학습 라마인드를 해줍니다. 원래 텐션으로 돌아가는데 생각한 시간은 1시간 넘을 줄 알았는데 &lt;b&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;생각보다 적은 학습 유지시간이 보이면 가볍게 1문제라도 풀게 되는 것 같습니다.&amp;nbsp;&lt;/span&gt;&lt;/b&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;614&quot; data-origin-height=&quot;850&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byWxk4/dJMcaarZmEe/vu4cH1q5gi4BEZYaCfOsS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byWxk4/dJMcaarZmEe/vu4cH1q5gi4BEZYaCfOsS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byWxk4/dJMcaarZmEe/vu4cH1q5gi4BEZYaCfOsS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyWxk4%2FdJMcaarZmEe%2Fvu4cH1q5gi4BEZYaCfOsS0%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;614&quot; height=&quot;850&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;850&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;나만의 꾸준함을 만드는 방법&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기상 후 컴퓨터 키면 바로 코드트리 화면이 보이게한다&lt;/b&gt;&lt;/h3&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;color: #009a87;&quot;&gt;&lt;b&gt;일어나자 마자 아무 생각없이 보이는 화면이 코트트리이면 오늘의 정해진 학습 분량을 문제 풀 때마다 보여주니, 이것만 해도 퀘스트를 깨는 느낌&lt;/b&gt;&lt;/span&gt;이 납니다. &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;한 문제 더 풀까? 문제는 풀지 않더라도 개념 설명이라도 볼까?&lt;/b&gt;&lt;/span&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;566&quot; data-origin-height=&quot;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4ZZmI/dJMcahdztL9/kCXtlQZM5O254USuu9wsQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4ZZmI/dJMcahdztL9/kCXtlQZM5O254USuu9wsQk/img.png&quot; data-alt=&quot;목표&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4ZZmI/dJMcahdztL9/kCXtlQZM5O254USuu9wsQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4ZZmI%2FdJMcahdztL9%2FkCXtlQZM5O254USuu9wsQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;566&quot; height=&quot;122&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;122&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;목표&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재는 하루 30분 기준이 목표 기준치인데 1주 스트릭을 연속으로 채우면 조금씩 늘려서 더 많은 문제를 꾸준히 할 수 있는 능력치를 기르고 싶습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;청약 챌린지에 참여하는 다른 사람의 우수 후기를 본다&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드트리 청약 챌린지에 참여하게 되면 매주 우수 학습 후기를 선정합니다. 학습 후기를 읽으면서 다른 사람들의 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;학습 방법, 진행 상태&lt;/b&gt;&lt;/span&gt; 등을 확인할 수 있어 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;꿀팁&lt;/b&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: #009a87;&quot;&gt;&lt;b&gt;열심히 하는 분들의 글을 읽으면 저도 더욱 더 꾸준히 노력해야겠다는 생각이 들었습니다.&lt;/b&gt;&lt;/span&gt; 또한 실력이 좋은 분들도 참여하는 만큼 학습 자료들이 좋다는 방증을 한다고 생각했습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1348&quot; data-origin-height=&quot;1362&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K4bcp/dJMcaaFx5PZ/N3XJKuyz7sfkZRRC0Hd9v0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K4bcp/dJMcaaFx5PZ/N3XJKuyz7sfkZRRC0Hd9v0/img.png&quot; data-alt=&quot;주마다 선정된 우수학습 후기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K4bcp/dJMcaaFx5PZ/N3XJKuyz7sfkZRRC0Hd9v0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK4bcp%2FdJMcaaFx5PZ%2FN3XJKuyz7sfkZRRC0Hd9v0%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;1348&quot; height=&quot;1362&quot; data-origin-width=&quot;1348&quot; data-origin-height=&quot;1362&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;주마다 선정된 우수학습 후기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이번 주 회고 및 다음 주 목표&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;이번 주 완료한 것&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ch4.시뮬레이션 완료, Ch5. 시뮬레이션2&amp;nbsp; 최장연속 부분 수열&amp;nbsp;&lt;/li&gt;
&lt;li&gt;배운 개념 및 푼 문제 블로그 정리&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;872&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi1Eus/dJMcaalaLcs/DT2xmOq4MMOrSPkcvRy130/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi1Eus/dJMcaalaLcs/DT2xmOq4MMOrSPkcvRy130/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi1Eus/dJMcaalaLcs/DT2xmOq4MMOrSPkcvRy130/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi1Eus%2FdJMcaalaLcs%2FDT2xmOq4MMOrSPkcvRy130%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;820&quot; height=&quot;872&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;872&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;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;다음 주 목표&amp;nbsp;&lt;/b&gt;&lt;/h3&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;b&gt;1. 7일 동안 매일 스트릭 채우기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 하루 1개 Lesson 완료 - Ch7. 완전탐색2 까지&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;학습 내용 정리&lt;/b&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트레일을 진행하면서 남긴 학습 기록은 다음을 참고해주세요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://geologs.tistory.com/43&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://geologs.tistory.com/43&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780321630982&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[CodeTree] Ch4. 시뮬레이션1 - 사각형 칠하기&quot; data-og-description=&quot;코드 트리 청약 챌린지 진행 중입니다! 관심 있으신 분들은 같이 참여해보세요 https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ 3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리매주 학습 납&quot; data-og-host=&quot;geologs.tistory.com&quot; data-og-source-url=&quot;https://geologs.tistory.com/43&quot; data-og-url=&quot;https://geologs.tistory.com/43&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bGJqjP/dJMb9jOt0oT/2kQPCjz6XPmh1PkO5nqZc0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/deNYtF/dJMb9frMwcd/smRvcRHGlDuNJvALhdzmKK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/dYtilu/dJMb9jgEq0e/44a98Re87w5tZi9r4ZaXDK/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160&quot;&gt;&lt;a href=&quot;https://geologs.tistory.com/43&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://geologs.tistory.com/43&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bGJqjP/dJMb9jOt0oT/2kQPCjz6XPmh1PkO5nqZc0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/deNYtF/dJMb9frMwcd/smRvcRHGlDuNJvALhdzmKK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/dYtilu/dJMb9jgEq0e/44a98Re87w5tZi9r4ZaXDK/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160');&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] Ch4. 시뮬레이션1 - 사각형 칠하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 트리 청약 챌린지 진행 중입니다! 관심 있으신 분들은 같이 참여해보세요 https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ 3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리매주 학습 납&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;geologs.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://geologs.tistory.com/47&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://geologs.tistory.com/47&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780327706527&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[CodeTree] Ch5.시뮬레이션 2 - 최장 연속 부분 수열&quot; data-og-description=&quot;DP(Dynamic Programming)의 유형인 LCS(Longest Common Subsequence) 최장 공통 부분 수열과 다른 유형입니다.최장 연속 부분 수열은 구현 시뮬레이션 문제입니다. 개념 : 숫자가 동일한 연속 부분 수열수열이 (2,&quot; data-og-host=&quot;geologs.tistory.com&quot; data-og-source-url=&quot;https://geologs.tistory.com/47&quot; data-og-url=&quot;https://geologs.tistory.com/47&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bBL2fW/dJMb9frMwCc/ucJr0gwXn8aFDssMObty51/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/dG8gxc/dJMb8SpPaDo/ZsiHx8JUXs2Mx21sTYMQz1/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/wzOss/dJMb8Yp2yPg/C0bq0vvCAfu1RFkK9RhHc0/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160&quot;&gt;&lt;a href=&quot;https://geologs.tistory.com/47&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://geologs.tistory.com/47&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bBL2fW/dJMb9frMwCc/ucJr0gwXn8aFDssMObty51/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/dG8gxc/dJMb8SpPaDo/ZsiHx8JUXs2Mx21sTYMQz1/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/wzOss/dJMb8Yp2yPg/C0bq0vvCAfu1RFkK9RhHc0/img.png?width=3840&amp;amp;height=2160&amp;amp;face=0_0_3840_2160');&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] Ch5.시뮬레이션 2 - 최장 연속 부분 수열&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;DP(Dynamic Programming)의 유형인 LCS(Longest Common Subsequence) 최장 공통 부분 수열과 다른 유형입니다.최장 연속 부분 수열은 구현 시뮬레이션 문제입니다. 개념 : 숫자가 동일한 연속 부분 수열수열이 (2,&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;geologs.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;코드트리 청약 챌린지 진행중입니다!&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같이 코테 꾸준히 공부해봅시다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot;&gt;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780323343798&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;3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리&quot; data-og-description=&quot;매주 학습 납입하고 7주 만기 채우면 코드트리 8월까지 무료. 매주 추첨권을 모아 맥북&amp;middot;에어팟&amp;middot;애플워치 응모까지. 신청 인원에 따라 조기마감될 수 있어요.&quot; data-og-host=&quot;www.codetree.ai&quot; data-og-source-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; data-og-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/SywLm/dJMb8U80NRX/JORlf9YkCLkZ1ssIKzg701/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890,https://scrap.kakaocdn.net/dn/9yORB/dJMb9g5iabv/EZPGpVHScNpp94bNSTpsm0/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/SywLm/dJMb8U80NRX/JORlf9YkCLkZ1ssIKzg701/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890,https://scrap.kakaocdn.net/dn/9yORB/dJMb9g5iabv/EZPGpVHScNpp94bNSTpsm0/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890');&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;3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;매주 학습 납입하고 7주 만기 채우면 코드트리 8월까지 무료. 매주 추첨권을 모아 맥북&amp;middot;에어팟&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;청약 챌린지 관련한 내용은 다음을 참고해주세요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://geologs.tistory.com/38&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://geologs.tistory.com/38&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780323381636&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[CodeTree 후기] 코드트리 청약 챌린지 참여 - 2회차 : 갭체크&quot; data-og-description=&quot;백준 알고리즘 사이트가 종료되고 매일 꾸준히 알고리즘 문제를 푸는 습관을 기르고자 찾아보던 중 코드 트리의 청약 챌린지를 알게 되었습니다. 코드트리란?CodeTree도 백준 처럼 알고리즘 문제&quot; data-og-host=&quot;geologs.tistory.com&quot; data-og-source-url=&quot;https://geologs.tistory.com/38&quot; data-og-url=&quot;https://geologs.tistory.com/38&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cVVDLH/dJMb887fW0R/M0xaDHJKwg9NEoDkwVD2ek/img.png?width=800&amp;amp;height=415&amp;amp;face=0_0_800_415,https://scrap.kakaocdn.net/dn/b1Egoc/dJMb82eT8WU/VaIoEsoNDh8lvpWXRbXltK/img.png?width=800&amp;amp;height=415&amp;amp;face=0_0_800_415,https://scrap.kakaocdn.net/dn/c8F97G/dJMb89ykMHo/Zk7WZvBhKDzKmJWZZAeY91/img.png?width=1790&amp;amp;height=1464&amp;amp;face=0_0_1790_1464&quot;&gt;&lt;a href=&quot;https://geologs.tistory.com/38&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://geologs.tistory.com/38&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cVVDLH/dJMb887fW0R/M0xaDHJKwg9NEoDkwVD2ek/img.png?width=800&amp;amp;height=415&amp;amp;face=0_0_800_415,https://scrap.kakaocdn.net/dn/b1Egoc/dJMb82eT8WU/VaIoEsoNDh8lvpWXRbXltK/img.png?width=800&amp;amp;height=415&amp;amp;face=0_0_800_415,https://scrap.kakaocdn.net/dn/c8F97G/dJMb89ykMHo/Zk7WZvBhKDzKmJWZZAeY91/img.png?width=1790&amp;amp;height=1464&amp;amp;face=0_0_1790_1464');&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 후기] 코드트리 청약 챌린지 참여 - 2회차 : 갭체크&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;백준 알고리즘 사이트가 종료되고 매일 꾸준히 알고리즘 문제를 푸는 습관을 기르고자 찾아보던 중 코드 트리의 청약 챌린지를 알게 되었습니다. 코드트리란?CodeTree도 백준 처럼 알고리즘 문제&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;geologs.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm</category>
      <category>1일1코테</category>
      <category>개발자루틴</category>
      <category>코드트리</category>
      <category>코딩테스트</category>
      <category>코테공부</category>
      <category>코테독학</category>
      <author>geologs</author>
      <guid isPermaLink="true">https://geologs.tistory.com/46</guid>
      <comments>https://geologs.tistory.com/46#entry46comment</comments>
      <pubDate>Mon, 1 Jun 2026 15:30:30 +0900</pubDate>
    </item>
    <item>
      <title>[CodeTree] Ch4. 시뮬레이션1 - 사각형 칠하기</title>
      <link>https://geologs.tistory.com/43</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvbyc5/dJMcacpL90y/gLb3xzS0bkjuiz349D3j61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvbyc5/dJMcacpL90y/gLb3xzS0bkjuiz349D3j61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvbyc5/dJMcacpL90y/gLb3xzS0bkjuiz349D3j61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcvbyc5%2FdJMcacpL90y%2FgLb3xzS0bkjuiz349D3j61%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;3840&quot; height=&quot;2160&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;코드 트리 청약 챌린지 진행 중입니다!&amp;nbsp;&lt;/b&gt;&lt;/h2&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/no-free-lunch-2026/?ref=T38PMZ&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780037441340&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;3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리&quot; data-og-description=&quot;매주 학습 납입하고 7주 만기 채우면 코드트리 8월까지 무료. 매주 추첨권을 모아 맥북&amp;middot;에어팟&amp;middot;애플워치 응모까지. 신청 인원에 따라 조기마감될 수 있어요.&quot; data-og-host=&quot;www.codetree.ai&quot; data-og-source-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; data-og-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qNYM8/dJMb9lldRFl/bOY4LeymYe77wa7WwH1AFk/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890,https://scrap.kakaocdn.net/dn/9F5DC/dJMb9fZB3uE/SlEhGEHBLvJXWi4YnI4x70/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qNYM8/dJMb9lldRFl/bOY4LeymYe77wa7WwH1AFk/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890,https://scrap.kakaocdn.net/dn/9F5DC/dJMb9fZB3uE/SlEhGEHBLvJXWi4YnI4x70/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890');&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;3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;매주 학습 납입하고 7주 만기 채우면 코드트리 8월까지 무료. 매주 추첨권을 모아 맥북&amp;middot;에어팟&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;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;사각형 칠하기 1&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;좌표상 사각형 넓이 구하는 방법&amp;nbsp;&lt;/b&gt;&lt;/h3&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;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;좌표를 2차원 격자(배열)로 바꾸고, 좌표 안의 격차일 때 1 값을 저장&lt;/b&gt;&lt;/span&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;(x1, y1), (x2, y2) 좌표 영역의 사각형을 2차원 격자로 바꿀 때 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;오른쪽 상단의 좌표를 (x2 -1, y2-1)을 해야한다.&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2,5), (4, 8) 좌표 영역을 2차원 배열로 만들면, 오른쪽 그림처럼 [2행 5열], [2행 6열],&amp;nbsp; [2행 7열], [3행 5열], [3행 6열], [3행 7열]의 넓이가 1인 정사각형을 카운팅하는 것이기 때문이다.&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;또한 좌표의 범위가 -100 &amp;lt;= x &amp;lt;= 100이라서 배열의 인덱스가 음수가 된다. 인덱스 에러 방지를 위해 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;범위의 최솟값을 오프셋을 더한다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g. x = -100 -&amp;gt; x + 100 = -100 + 100 = 0 으로 평행이동하는 것과 같다.&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 widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tEABP/dJMcagTbEuB/ntJMlQcbkplfoKE3JpNWv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tEABP/dJMcagTbEuB/ntJMlQcbkplfoKE3JpNWv0/img.png&quot; data-alt=&quot;사각형 칠하기 기본 개념&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tEABP/dJMcagTbEuB/ntJMlQcbkplfoKE3JpNWv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtEABP%2FdJMcagTbEuB%2FntJMlQcbkplfoKE3JpNWv0%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;1056&quot; height=&quot;640&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;사각형 칠하기 기본 개념&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 설명에서는 90도 회전한 2차원 배열을 만들었지만, 나의 경우 y(행) -&amp;gt; x(열) 좌표로 탐색하는 것이 익숙했기에 해설과 달리 코드를 작성했다.&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1722&quot; data-origin-height=&quot;1206&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lG8cR/dJMcaayGbm9/zKxFxUHUMoGZiQSBC8jIZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lG8cR/dJMcaayGbm9/zKxFxUHUMoGZiQSBC8jIZ1/img.png&quot; data-alt=&quot;사각형 총 넓이 2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lG8cR/dJMcaayGbm9/zKxFxUHUMoGZiQSBC8jIZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlG8cR%2FdJMcaayGbm9%2FzKxFxUHUMoGZiQSBC8jIZ1%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;1722&quot; height=&quot;1206&quot; data-origin-width=&quot;1722&quot; data-origin-height=&quot;1206&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;사각형 총 넓이 2&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;666&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPbqg3/dJMcaii87b1/X25q4ao3Q4v0RMUQ4KI4A0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPbqg3/dJMcaii87b1/X25q4ao3Q4v0RMUQ4KI4A0/img.png&quot; data-alt=&quot;입력 출력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPbqg3/dJMcaii87b1/X25q4ao3Q4v0RMUQ4KI4A0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPbqg3%2FdJMcaii87b1%2FX25q4ao3Q4v0RMUQ4KI4A0%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;1692&quot; height=&quot;666&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;666&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입력 출력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-total-width-of-a-rectangle2/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-total-width-of-a-rectangle2/description&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1779760067699&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/intro-total-width-of-a-rectangle2/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-total-width-of-a-rectangle2/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/g1c0X/dJMb8T95XuN/X0X3JTpgiX8sPHpqkiwKC1/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/intro-total-width-of-a-rectangle2/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-total-width-of-a-rectangle2/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/g1c0X/dJMb8T95XuN/X0X3JTpgiX8sPHpqkiwKC1/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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내 코드&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해설코드는 기본적으로 x1 &amp;lt; x2, y1 &amp;lt; y2를 가정하고 있어 대소 비교를 하는 코드가 없음&lt;/li&gt;
&lt;li&gt;C++에서 &amp;lt;bits/stdc++.h&amp;gt;를 사용하면 모든 라이브러리를 가져오기 때문에 전역변수 명인 y1 변수명이 존재합니다. 따라서 #define으로 임의의 문자열로 대체해야합니다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1779760974320&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
#define y1 aaaa

int N, ret, mxx, mxy, mnx, mny;
int x1[10], y1[10];
int x2[10], y2[10];
int offset = 100; 
int arr[204][204];
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; N;

    for (int i = 0; i &amp;lt; N; i++) {
        cin &amp;gt;&amp;gt; x1[i] &amp;gt;&amp;gt; y1[i] &amp;gt;&amp;gt; x2[i] &amp;gt;&amp;gt; y2[i];
        x1[i] += offset;
        x2[i] += offset;
        y1[i] += offset;
        y2[i] += offset;
        if(x1[i] &amp;gt; x2[i]) {
            mxx = x1[i]; mnx = x2[i];
        }
        else mxx = x2[i], mnx = x1[i];
        if(y1[i] &amp;gt; y2[i]) mxy = y1[i], mny = y2[i];
        else mxy = y2[i], mny = y1[i];

        for(int j = mny; j &amp;lt;= mxy - 1; j++ ) {
            for(int k = mnx; k &amp;lt;= mxx -1; k++) {
                arr[j][k] = 1; 
            }
        }
    }

    for(int i = 0; i &amp;lt; 204; i++ ) {
        for(int j = 0; j &amp;lt; 204; j++) {
            if(arr[i][j] == 1) ret++; 
        }
    }

    cout &amp;lt;&amp;lt; ret &amp;lt;&amp;lt; &quot;\n&quot;;
    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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;298&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rTniH/dJMcahkicO7/yJxjnECv7eRN3Qpku1mKB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rTniH/dJMcahkicO7/yJxjnECv7eRN3Qpku1mKB1/img.png&quot; data-alt=&quot;채점 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rTniH/dJMcahkicO7/yJxjnECv7eRN3Qpku1mKB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrTniH%2FdJMcahkicO7%2FyJxjnECv7eRN3Qpku1mKB1%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;1198&quot; height=&quot;298&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;298&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;채점 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설 코드&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779761515237&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 MAX_N 10
#define MAX_R 200
#define OFFSET 100

using namespace std;

int n;
int x1[MAX_N], y1[MAX_N];
int x2[MAX_N], y2[MAX_N];

int checked[MAX_R + 1][MAX_R + 1];

int main() {
    // 입력
    cin &amp;gt;&amp;gt; n;
    
    for(int i = 0; i &amp;lt; n; i++) {
        cin &amp;gt;&amp;gt; x1[i] &amp;gt;&amp;gt; y1[i] &amp;gt;&amp;gt; x2[i] &amp;gt;&amp;gt; y2[i];
        
        // OFFSET을 더해줍니다.
        x1[i] += OFFSET;
        y1[i] += OFFSET;
        x2[i] += OFFSET;
        y2[i] += OFFSET;
    }
    
    // 직사각형을 칠해줍니다.
    // 격자 단위로 진행하는 문제이므로
    // x2, y2에 등호가 들어가지 않음에 유의합니다.
    for(int i = 0; i &amp;lt; n; i++)
        for(int x = x1[i]; x &amp;lt; x2[i]; x++)
            for(int y = y1[i]; y &amp;lt; y2[i]; y++)
                checked[x][y] = 1;
    
    // 직사각형 넓이의 총 합을 구합니다.
    int area = 0;
    for(int x = 0; x &amp;lt;= MAX_R; x++)
        for(int y = 0; y &amp;lt;= MAX_R; y++)
            if(checked[x][y])
                area++;
    
    cout &amp;lt;&amp;lt; area;
    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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;사각형 칠하기2 : 여러 직사각형의 넓이 구하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제의 경우 여러 사각형을 나타내는 좌표 중에서 가장 작은 x좌표, y좌표와 가장 큰 x좌표, y좌표 영역을 탐색하면서 M 사각형을 제외한 사각형의 넓이를 구하면 된다.&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;color: #ef5369;&quot;&gt;&lt;b&gt;각 사각형 간의 영역을 구분&lt;/b&gt;&lt;/span&gt;하기 위해 이전과 다르게 1, 2 다르게 표기한다.&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;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-area-of-non-overlapping-rectangle/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-area-of-non-overlapping-rectangle/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779765112953&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;겹치지 않는 사각형의 넓이을 통해 문제 요구사항과 입력&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/intro-area-of-non-overlapping-rectangle/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-area-of-non-overlapping-rectangle/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ciaUr0/dJMb8SpOlW4/Iz2U8GfiXYmy1L9v9dT2l0/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/intro-area-of-non-overlapping-rectangle/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/intro-area-of-non-overlapping-rectangle/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ciaUr0/dJMb8SpOlW4/Iz2U8GfiXYmy1L9v9dT2l0/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;겹치지 않는 사각형의 넓이 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;겹치지 않는 사각형의 넓이을 통해 문제 요구사항과 입력&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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1728&quot; data-origin-height=&quot;1196&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MOp7m/dJMcai4sxTP/C7jdnYhAQktGKuln7HLt5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MOp7m/dJMcai4sxTP/C7jdnYhAQktGKuln7HLt5K/img.png&quot; data-alt=&quot;겹치지 않는 사각형의 넓이 구하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MOp7m/dJMcai4sxTP/C7jdnYhAQktGKuln7HLt5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMOp7m%2FdJMcai4sxTP%2FC7jdnYhAQktGKuln7HLt5K%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;1728&quot; height=&quot;1196&quot; data-origin-width=&quot;1728&quot; data-origin-height=&quot;1196&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;겹치지 않는 사각형의 넓이 구하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1730&quot; data-origin-height=&quot;666&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BdoEx/dJMcada0uBb/OPCsUA3XUWDoLxgAigS8QK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BdoEx/dJMcada0uBb/OPCsUA3XUWDoLxgAigS8QK/img.png&quot; data-alt=&quot;입출력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BdoEx/dJMcada0uBb/OPCsUA3XUWDoLxgAigS8QK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBdoEx%2FdJMcada0uBb%2FOPCsUA3XUWDoLxgAigS8QK%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;1730&quot; height=&quot;666&quot; data-origin-width=&quot;1730&quot; data-origin-height=&quot;666&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내 코드&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주어진 좌표마다 Offset을 더해야하고, 사각형마다 영역을 표기하는 반복문에서&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt; 중복되는 코드가 많이 발생&lt;/b&gt;&lt;/span&gt;했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 가독성에서는 함수로 인자만 전달해 처리하는 것이 좋아보인다. 하지만 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;함수 호출은 비용이 들기 때문에 여기서는 하지 않았다&lt;/b&gt;.&amp;nbsp;&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;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;해설코드 피드백&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사각형별로 좌표 변수를 다 선언할 필요 없음. 배열의 크기가 3인 배열 4개를 활용 x1[3], x2[3], y1[3], y2[3]&amp;nbsp;&lt;/li&gt;
&lt;li&gt;배열에 사각형 좌표를 저장하면 이중 for문과 offset 더하는 부분이 1개로 축약됨&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1779764940952&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
#define offset 1000

using namespace std;
int ax1, ay1, ax2, ay2, bx1, bx2, by1, by2, mx1, mx2, my1, my2; 
int ret, mnx, mxx, mny, mxy; 
int checked[2004][2004]; 
int main() {
    ios_base::sync_with_stdio(false);
    cin &amp;gt;&amp;gt; ax1 &amp;gt;&amp;gt; ay1 &amp;gt;&amp;gt; ax2 &amp;gt;&amp;gt; ay2;
    cin &amp;gt;&amp;gt; bx1 &amp;gt;&amp;gt; by1 &amp;gt;&amp;gt; bx2 &amp;gt;&amp;gt; by2; 
    cin &amp;gt;&amp;gt; mx1 &amp;gt;&amp;gt; my1 &amp;gt;&amp;gt; mx2 &amp;gt;&amp;gt; my2;

    ax1 += offset;  ax2 += offset; ay1 += offset; ay2 += offset;
    bx1 += offset; bx2 += offset;  by1 += offset; by2 += offset;
    mx1 += offset; mx2 += offset; my1 += offset; my2 += offset;

    mnx = min(ax1, bx1);
    mxx = max(ax2, bx2);
    mny = min(ay1, by1);
    mxy = max(ay2, by2);

    for(int y = ay1 ; y &amp;lt; ay2; y++) {
        for(int x = ax1; x &amp;lt; ax2; x++) {
            checked[y][x] = 1;
        }
    }
    for(int y = by1 ; y &amp;lt; by2; y++) {
        for(int x = bx1; x &amp;lt; bx2; x++) {
            checked[y][x] = 2;
        }
    }

    for(int y = my1 ; y &amp;lt; my2; y++) {
        for(int x = mx1; x &amp;lt; mx2; x++) {
            checked[y][x] = 0;
        }
    }
    for(int y = mny; y &amp;lt; mxy; y++) {
        for(int x = mnx; x &amp;lt; mxx; x++) {
            if(checked[y][x]) ret++;
        }
    }
    cout &amp;lt;&amp;lt; ret &amp;lt;&amp;lt; &quot;\n&quot;;
    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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;302&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNqFKY/dJMcafmsqEc/mjkkz2F2dfoXOHk92e9Pk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNqFKY/dJMcafmsqEc/mjkkz2F2dfoXOHk92e9Pk0/img.png&quot; data-alt=&quot;실행결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNqFKY/dJMcafmsqEc/mjkkz2F2dfoXOHk92e9Pk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNqFKY%2FdJMcafmsqEc%2Fmjkkz2F2dfoXOHk92e9Pk0%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;1198&quot; height=&quot;302&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;302&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1779765270262&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 N 3
#define MAX_R 2000
#define OFFSET 1000

using namespace std;

int x1[N], y1[N];
int x2[N], y2[N];

int checked[MAX_R + 1][MAX_R + 1];

int main() {
    // 입력
    for(int i = 0; i &amp;lt; N; i++) {
        cin &amp;gt;&amp;gt; x1[i] &amp;gt;&amp;gt; y1[i] &amp;gt;&amp;gt; x2[i] &amp;gt;&amp;gt; y2[i];
        
        // OFFSET을 더해줍니다.
        x1[i] += OFFSET;
        y1[i] += OFFSET;
        x2[i] += OFFSET;
        y2[i] += OFFSET;
    }
    
    // 직사각형에 주어진 순으로 1, 2, 3 번호를 붙여줍니다.
    // 격자 단위로 진행하는 문제이므로
    // x2, y2에 등호가 들어가지 않음에 유의합니다.
    for(int i = 0; i &amp;lt; N; i++)
        for(int x = x1[i]; x &amp;lt; x2[i]; x++)
            for(int y = y1[i]; y &amp;lt; y2[i]; y++)
                checked[x][y] = i + 1;
    
    // 1, 2, 3 순으로 붙였는데도
    // 아직 숫자 1, 2로 남아있는 영역의 넓이를 구합니다.
    int area = 0;
    for(int x = 0; x &amp;lt;= MAX_R; x++)
        for(int y = 0; y &amp;lt;= MAX_R; y++)
            if(checked[x][y] == 1 || checked[x][y] == 2)
                area++;
    
    cout &amp;lt;&amp;lt; area;
    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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge 1 : 색종이의 총 넓이&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-the-total-area-of-colored-paper/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-the-total-area-of-colored-paper/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780035911070&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;색종이의 총 넓이을 통해 문제 요구사항과 입력&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-the-total-area-of-colored-paper/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-the-total-area-of-colored-paper/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/clkNqe/dJMb81fZp4R/O8ck9r3q6bjGoMBpmJWkk0/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-the-total-area-of-colored-paper/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-the-total-area-of-colored-paper/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/clkNqe/dJMb81fZp4R/O8ck9r3q6bjGoMBpmJWkk0/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;색종이의 총 넓이 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;색종이의 총 넓이을 통해 문제 요구사항과 입력&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenge 2 : 잔해물을 덮기 위한 사각형의 최소 넓이&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-minimum-area-of-rectangle-to-cover-debris/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-minimum-area-of-rectangle-to-cover-debris/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780035902673&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;잔해물을 덮기 위한 사각형의 최소 넓이을 통해 문제 요구사항과 입력&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-minimum-area-of-rectangle-to-cover-debris/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-minimum-area-of-rectangle-to-cover-debris/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/byOT7n/dJMb85vVNh3/R6nzG649KbE0kdljdAvujK/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-minimum-area-of-rectangle-to-cover-debris/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-minimum-area-of-rectangle-to-cover-debris/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/byOT7n/dJMb85vVNh3/R6nzG649KbE0kdljdAvujK/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;잔해물을 덮기 위한 사각형의 최소 넓이 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;잔해물을 덮기 위한 사각형의 최소 넓이을 통해 문제 요구사항과 입력&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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1570&quot; data-origin-height=&quot;1214&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dvBdGF/dJMcaf7Snoz/itlu2FugOQK31N6pKjNrok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dvBdGF/dJMcaf7Snoz/itlu2FugOQK31N6pKjNrok/img.png&quot; data-alt=&quot;Challenge2 : 잔해물을 덮기 위한 사각형의 최소 넓이&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dvBdGF/dJMcaf7Snoz/itlu2FugOQK31N6pKjNrok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdvBdGF%2FdJMcaf7Snoz%2Fitlu2FugOQK31N6pKjNrok%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;1570&quot; height=&quot;1214&quot; data-origin-width=&quot;1570&quot; data-origin-height=&quot;1214&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Challenge2 : 잔해물을 덮기 위한 사각형의 최소 넓이&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1552&quot; data-origin-height=&quot;1394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vShRS/dJMcacwBCXQ/rgpXyeAcVZitAb8aUHlb60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vShRS/dJMcacwBCXQ/rgpXyeAcVZitAb8aUHlb60/img.png&quot; data-alt=&quot;입출력 예제&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vShRS/dJMcacwBCXQ/rgpXyeAcVZitAb8aUHlb60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvShRS%2FdJMcacwBCXQ%2FrgpXyeAcVZitAb8aUHlb60%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;1552&quot; height=&quot;1394&quot; data-origin-width=&quot;1552&quot; data-origin-height=&quot;1394&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력 예제&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1570&quot; data-origin-height=&quot;1302&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJSWkx/dJMcacXEmCp/zy2TZ5zeCmFbEEEWV0BKP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJSWkx/dJMcacXEmCp/zy2TZ5zeCmFbEEEWV0BKP1/img.png&quot; data-alt=&quot;복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJSWkx/dJMcacXEmCp/zy2TZ5zeCmFbEEEWV0BKP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJSWkx%2FdJMcacXEmCp%2Fzy2TZ5zeCmFbEEEWV0BKP1%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;1570&quot; height=&quot;1302&quot; data-origin-width=&quot;1570&quot; data-origin-height=&quot;1302&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;개인적인 평가&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코드를 작성하는 것보다 풀이 방법을 떠올리는데 시간이 많이 소요됨&lt;/li&gt;
&lt;li&gt;겹치는 영역이 첫번째 직사각형의 가로/세로 부분을 모두 겹치는 것도 아니어서 어떻게 덮는 게 최소 직사각형인지 방법을 떠올리는 것이 어려움.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내풀이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이시간&lt;/b&gt; : 4시간&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근방법&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;각각 사각형의 양끝 좌표를 기준으로 2차원 배열에 첫번째 사각형은 1, 두번째 사각형은 2로 색칠(저장)한다.&lt;/li&gt;
&lt;li&gt;첫번째 사각형 영역을 탐색하며 두번째 사각형과 겹치지 않는 &quot;첫번째 사각형 영역&quot; 1인 영역 중 좌표(인덱스) x의 최소/최댓값, y의 최소/최댓값을 구한다.&lt;/li&gt;
&lt;li&gt;두번째 사각형이 첫번째 사각형의 모든 영역을 덮어쓴 경우와 아닌 경우를 나누어 첫번째 사각형의 넓이를 덮을 최소 넓이를 구한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실수한 부분&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;벡터에 첫번째 사각형의 영역 중 겹치지 않은 부분의 좌표만 저장하고,&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;u&gt;&lt;b&gt; sort()로 정렬할 때 맨 마지막 원소의 (y, x)일 때 y는 가장 큰 값일지언정 x는 큰 값이 들어가는 것이 아님.&amp;nbsp;&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1780628623438&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; MAX; i++) {
        for(int j = 0; j &amp;lt; MAX; j++) {
            if(arr[i][j] == 1 || arr[i][j] == 3) v.push_back({j,i}); // x, y좌표 
        }
    }
    sort(v.begin(), v.end()); // v[(int)v.size() - 1]&lt;/code&gt;&lt;/pre&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;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해설코드와 다른 점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해설코드는 두 사각형이 겹친 부분에 3이란 다른 값을 넣지 않음, 겹친 부분은 두번째 사각형이 마지막으로 칠하는 상태로 둠
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;이걸 적용하면 3중 for문에서 조건문이 제거됨. 실행시간이 4ms, 메모리 1ms 감소됨&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1780628359537&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
#define y1 aaaa
#define OFFSET 1000
#define MAX 2004
int mxx[2], mxy[2],mnx[2], mny[2]; 
int x1[2],x2[2], y1[2], y2[2];
int arr[MAX][MAX];
vector&amp;lt;pair&amp;lt;int,int&amp;gt;&amp;gt; v; 
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    for(int i = 0; i &amp;lt; 2; i++) {
        cin &amp;gt;&amp;gt; x1[i] &amp;gt;&amp;gt; y1[i] &amp;gt;&amp;gt; x2[i] &amp;gt;&amp;gt; y2[i];
        x1[i] += OFFSET; y1[i] += OFFSET; x2[i] += OFFSET; y2[i] += OFFSET;
    }

    // 2차원 좌표에 각 사각형의 영역을 색칠한다. 
    for(int i = 0; i &amp;lt; 2; i++) {
        mxy[i] = max(y1[i], y2[i]); mny[i] = min(y1[i], y2[i]);
        mxx[i] = max(x1[i], x2[i]); mnx[i] = min(x1[i], x2[i]);
        for(int j = mny[i]; j &amp;lt; mxy[i]; j++) {
            for(int k = mnx[i]; k &amp;lt; mxx[i]; k++) {
                if(arr[j][k] != 0)  arr[j][k] = 3; // 두 사각형이 겹치는 영역 : 3
                else arr[j][k] = i + 1; // 1 : A, 2 : B
            }
        }
    }

    int mxx_ = -1e9, mxy_ = -1e9, mnx_ = 1e9, mny_ = 1e9;
    for(int i = mny[0]; i &amp;lt; mxy[0]; i++) { // i = y 
        for(int j = mnx[0]; j &amp;lt; mxx[0]; j++) { // j = x
            if(arr[i][j] == 1 ) {
                if(j &amp;gt; mxx_ ) mxx_ = j; 
                if(j &amp;lt; mnx_) mnx_ = j; 
                if(i &amp;gt; mxy_) mxy_ = i;
                if(i &amp;lt; mny_) mny_ = i;  
            }
        }
    }
    if(mxx_ == -1e9 ||  mxy_ == -1e9 ||  mnx_ == 1e9 ||  mny_ == 1e9) cout &amp;lt;&amp;lt; 0 &amp;lt;&amp;lt; &quot;\n&quot;;
    else cout &amp;lt;&amp;lt; (mxx_ - mnx_ + 1) * (mxy_ - mny_ + 1) &amp;lt;&amp;lt; &quot;\n&quot; ; 

    



    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpC9HC/dJMcagFNQI0/OkCSONwOwFqkEkMys8ROX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpC9HC/dJMcagFNQI0/OkCSONwOwFqkEkMys8ROX1/img.png&quot; data-alt=&quot;실행결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpC9HC/dJMcagFNQI0/OkCSONwOwFqkEkMys8ROX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpC9HC%2FdJMcagFNQI0%2FOkCSONwOwFqkEkMys8ROX1%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;1206&quot; height=&quot;300&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780633172393&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;

#define N 2
#define MAX_R 2000
#define OFFSET 1000

using namespace std;

int x1[N], y1[N];
int x2[N], y2[N];

int checked[MAX_R + 1][MAX_R + 1];

int main() {
    // 입력
    for(int i = 0; i &amp;lt; N; i++) {
        cin &amp;gt;&amp;gt; x1[i] &amp;gt;&amp;gt; y1[i] &amp;gt;&amp;gt; x2[i] &amp;gt;&amp;gt; y2[i];
        
        // OFFSET을 더해줍니다.
        x1[i] += OFFSET;
        y1[i] += OFFSET;
        x2[i] += OFFSET;
        y2[i] += OFFSET;
    }
    
    // 직사각형에 주어진 순으로 1, 2 번호를 붙여줍니다.
    // 격자 단위로 진행하는 문제이므로
    // x2, y2에 등호가 들어가지 않음에 유의합니다.
    for(int i = 0; i &amp;lt; N; i++)
        for(int x = x1[i]; x &amp;lt; x2[i]; x++)
            for(int y = y1[i]; y &amp;lt; y2[i]; y++)
                checked[x][y] = i + 1;
    
    // 1, 2 순으로 붙였는데도
    // 아직 숫자 1로 남아있는 곳들 중 최대 최소 x, y 값을 전부 계산합니다.
    int min_x = MAX_R, max_x = 0, min_y = MAX_R, max_y = 0;
    bool first_rect_exist = false;
    for(int x = 0; x &amp;lt;= MAX_R; x++)
        for(int y = 0; y &amp;lt;= MAX_R; y++)
            if(checked[x][y] == 1) {
                first_rect_exist = true;
                min_x = min(min_x, x);
                max_x = max(max_x, x);
                min_y = min(min_y, y);
                max_y = max(max_y, y);
            }
    
    // 넓이를 계산합니다.
    int area;
    // Case 1. 첫 번째 직사각형이 전혀 남아있지 않다면 넓이는 0입니다.
    if(!first_rect_exist)
        area = 0;
    // Case 2. 첫 번째 직사각형이 남아있다면, 넓이를 계산합니다.
    else
        area = (max_x - min_x + 1) * (max_y - min_y + 1);

    cout &amp;lt;&amp;lt; area;
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Test : 계속 중첩되는 사각형 설명&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/test-continuously-overlapping-squares/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/test-continuously-overlapping-squares/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1780035416881&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;계속 중첩되는 사각형을 통해 문제 요구사항과 입력&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/test-continuously-overlapping-squares/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/test-continuously-overlapping-squares/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/h8KgW/dJMb8XScz6N/O6H9A8f94KoOYWQhroU05k/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/test-continuously-overlapping-squares/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/test-continuously-overlapping-squares/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/h8KgW/dJMb8XScz6N/O6H9A8f94KoOYWQhroU05k/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;계속 중첩되는 사각형 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;계속 중첩되는 사각형을 통해 문제 요구사항과 입력&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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1914&quot; data-origin-height=&quot;1398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckqC63/dJMcaarXAl0/AoB7K6rMvtuRAPSlWSAOmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckqC63/dJMcaarXAl0/AoB7K6rMvtuRAPSlWSAOmk/img.png&quot; data-alt=&quot;문제&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckqC63/dJMcaarXAl0/AoB7K6rMvtuRAPSlWSAOmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckqC63%2FdJMcaarXAl0%2FAoB7K6rMvtuRAPSlWSAOmk%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;1914&quot; height=&quot;1398&quot; data-origin-width=&quot;1914&quot; data-origin-height=&quot;1398&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;문제&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1760&quot; data-origin-height=&quot;982&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dIDhU7/dJMcad3cYn5/bgh0KodSuwUg1SZUDKwKMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dIDhU7/dJMcad3cYn5/bgh0KodSuwUg1SZUDKwKMk/img.png&quot; data-alt=&quot;입출력 및 복잡도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dIDhU7/dJMcad3cYn5/bgh0KodSuwUg1SZUDKwKMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdIDhU7%2FdJMcad3cYn5%2Fbgh0KodSuwUg1SZUDKwKMk%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;1760&quot; height=&quot;982&quot; data-origin-width=&quot;1760&quot; data-origin-height=&quot;982&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입출력 및 복잡도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;내 코드&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;풀이 논리&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사각형 칠하기 개념 두번째 문제처럼 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;사각형 별로 좌표에 해당하는 영역을 2차원 배열에 표기&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;사각형이 빨간색 -&amp;gt; 파란색 -&amp;gt; 빨간색 .. &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;반복되니까 모듈러 연산자로 영역을 구분&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;놓친 부분&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;빨간색, 파란색 번갈아가며 색칠하되, 마지막으로 색칠된 것은 파란색이 아닐 수도 있음&lt;/li&gt;
&lt;li&gt;테스트 케이스가 번갈아가면서 색이 바뀌니까 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;모듈러 연산자(나머지 연산자)로 사각형 별로 영역을 표기&lt;/b&gt;&lt;/span&gt;해줘야함.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해설 코드 차이점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해설 좌표를 기반으로 사각형 영역 표기할 때 if문으로 쓰지 않고&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt; 삼항 연산자(? : )&lt;/b&gt;&lt;/span&gt;를 이용해 간단히 표현함&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;i % 2 ? 2 : 1&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;해설은 OFFSET 적용을&amp;nbsp; 입력받을 때 진행하여, &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;목적별로 분리&lt;/b&gt;&lt;/span&gt;가 잘 됨.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1780035382528&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
#define OFFSET 100
#define y1 aaaa
#define MAX 204
using namespace std;
int checked[MAX][MAX];
int x1[MAX], y1[MAX], ret;
int x2[MAX], y2[MAX];
int n; 
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n; 
    for(int i = 0; i &amp;lt; n; i++) {
        cin &amp;gt;&amp;gt;  x1[i] &amp;gt;&amp;gt; y1[i] &amp;gt;&amp;gt; x2[i] &amp;gt;&amp;gt; y2[i];
    }

    for(int i = 0; i &amp;lt; n; i++ ) {
        x1[i] += OFFSET; y1[i] += OFFSET;
        x2[i] += OFFSET; y2[i] += OFFSET;
        for(int j = y1[i]; j &amp;lt; y2[i]; j++) {
            for(int k = x1[i]; k &amp;lt; x2[i]; k++) {
                // if(checked[j][k]) checked[j][k] = 3; 
                if(i % 2 == 0) checked[j][k] = 2;
                else checked[j][k] = i % 2; 
            }
        }
    }

    for(int i  = 0; i &amp;lt; MAX; i++) {
        for(int j = 0; j &amp;lt; MAX; j++) {
            if(checked[i][j] % 2 == 1) {
                // cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &quot; : &quot; &amp;lt;&amp;lt; j &amp;lt;&amp;lt; &quot;\n&quot;;
                ret++;
            }
        }
    }
    cout &amp;lt;&amp;lt; ret &amp;lt;&amp;lt; &quot;\n&quot;; 


    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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1172&quot; data-origin-height=&quot;314&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kFCXE/dJMb997CNIv/gscNVfq8zvhdv1PLTtKjo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kFCXE/dJMb997CNIv/gscNVfq8zvhdv1PLTtKjo1/img.png&quot; data-alt=&quot;실행 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kFCXE/dJMb997CNIv/gscNVfq8zvhdv1PLTtKjo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkFCXE%2FdJMb997CNIv%2FgscNVfq8zvhdv1PLTtKjo1%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;1172&quot; height=&quot;314&quot; data-origin-width=&quot;1172&quot; data-origin-height=&quot;314&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해설 코드&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1780035686559&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 MAX_N 10
#define MAX_R 200
#define OFFSET 100

using namespace std;

int x1[MAX_N], y1[MAX_N];
int x2[MAX_N], y2[MAX_N];

int checked[MAX_R + 1][MAX_R + 1];

int main() {
    // 변수 선언 및 입력
    int n;
    cin &amp;gt;&amp;gt; n;
    for(int i = 0; i &amp;lt; n; i++) {
        cin &amp;gt;&amp;gt; x1[i] &amp;gt;&amp;gt; y1[i] &amp;gt;&amp;gt; x2[i] &amp;gt;&amp;gt; y2[i];
        
        // OFFSET을 더해줍니다.
        x1[i] += OFFSET;
        y1[i] += OFFSET;
        x2[i] += OFFSET;
        y2[i] += OFFSET;
    }
    
    // 직사각형에 주어진 순으로 1, 2 번호를 붙여줍니다.
    // 격자 단위로 진행하는 문제이므로
    // x2, y2에 등호가 들어가지 않음에 유의합니다.
    for(int i = 0; i &amp;lt; n; i++)
        for(int x = x1[i]; x &amp;lt; x2[i]; x++)
            for(int y = y1[i]; y &amp;lt; y2[i]; y++)
                checked[x][y] = i % 2 ? 2 : 1;
    
    // 숫자 2로 남아있는 영역의 넓이를 구합니다.
    int area = 0;
    for(int x = 0; x &amp;lt;= MAX_R; x++)
        for(int y = 0; y &amp;lt;= MAX_R; y++)
            if(checked[x][y] == 2)
                area++;
    
    cout &amp;lt;&amp;lt; area;
    return 0;
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Algorithm</category>
      <category>사각형칠하기</category>
      <category>시뮬레이션1</category>
      <category>코드트리</category>
      <author>geologs</author>
      <guid isPermaLink="true">https://geologs.tistory.com/43</guid>
      <comments>https://geologs.tistory.com/43#entry43comment</comments>
      <pubDate>Tue, 26 May 2026 11:13:38 +0900</pubDate>
    </item>
    <item>
      <title>[CodeTree] 3회차: Trail2.시뮬레이션1  약점 학습 후기</title>
      <link>https://geologs.tistory.com/42</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;처음 갭체크를 통해 약점 유형인 시뮬레이션부터 시작을 했습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpXqgI/dJMcag6Hld1/lNFAB1SOA5a9ddRYjrIgL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpXqgI/dJMcag6Hld1/lNFAB1SOA5a9ddRYjrIgL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpXqgI/dJMcag6Hld1/lNFAB1SOA5a9ddRYjrIgL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpXqgI%2FdJMcag6Hld1%2FlNFAB1SOA5a9ddRYjrIgL1%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;3840&quot; height=&quot;2160&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2160&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 widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;924&quot; data-origin-height=&quot;1092&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Hizsm/dJMcaaFsCLx/CgRC04YXxfWVlTVx2XOYi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Hizsm/dJMcaaFsCLx/CgRC04YXxfWVlTVx2XOYi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Hizsm/dJMcaaFsCLx/CgRC04YXxfWVlTVx2XOYi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHizsm%2FdJMcaaFsCLx%2FCgRC04YXxfWVlTVx2XOYi1%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;924&quot; height=&quot;1092&quot; data-origin-width=&quot;924&quot; data-origin-height=&quot;1092&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;간단 후기&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;레슨은 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;기본 개념 -&amp;gt; Challenge -&amp;gt; Test 순&lt;/b&gt;&lt;/span&gt;으로 개념을 적용할 수 있는 문제를 제공합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;레슨을 3개 진행해보니,&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;기본 개념&lt;/b&gt;에서 &lt;b&gt;정의 및 여러 풀이 방법 소개, 최선 풀이 이유, 시각화&lt;/b&gt; 제공&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Challenge&lt;/b&gt;는 개념 1개를 알면 그 &lt;b&gt;1개를 적용해서 풀 수 있는 문제&lt;/b&gt;를 제공하고,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Test&lt;/b&gt;는 앞에&lt;b&gt; 여러 개념&lt;/b&gt;을 배웠다면 이걸&lt;b&gt; 한 번에 활용한 문제&lt;/b&gt;를 제공한 느낌을 받았습니다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;또한 배우지 않은 내용을 알아야 풀 수 있는 문제가 아니라서 문제를 이해할 때, 풀 때 부담감(스트레스)가 적었습니다.&amp;nbsp;&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;Lesson 소개&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;1. 기본 개념&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;먼저 &lt;b&gt;시뮬레이션&lt;/b&gt;의 유형인 1.날짜와 시간에 대한 개념을 먼저 소개를 합니다.&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&gt;이전에 백준 실버 후반 ~ 브론즈 상위 문제에서 시간 계산을 하는 문제를 풀었던 적이 있습니다. 이때 모든 시간, 분을 체크하는 방식만 떠올리고 차이를 먼저 떠올리고 다른 풀이 방법을 생각하지는 않았었는데요. 여기서는 목표 시간과 문제에서 주어진 시간의 차이를 구하는 것이 연산이 적어 빠르다는 개념을 소개해서 좋았습니다.&amp;nbsp;&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&gt;-&amp;gt; &lt;b&gt;여러 풀이 방법을 심플하게 설명하고 시각화한 부분&lt;/b&gt;이 이해하는데 도움이 되었습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1982&quot; data-origin-height=&quot;1668&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vi8Tl/dJMcad29Pzh/DeuSHgNkcs2dolgwsfVpwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vi8Tl/dJMcad29Pzh/DeuSHgNkcs2dolgwsfVpwK/img.png&quot; data-alt=&quot;기본 개념&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vi8Tl/dJMcad29Pzh/DeuSHgNkcs2dolgwsfVpwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVi8Tl%2FdJMcad29Pzh%2FDeuSHgNkcs2dolgwsfVpwK%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;1982&quot; height=&quot;1668&quot; data-origin-width=&quot;1982&quot; data-origin-height=&quot;1668&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;기본 개념&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6ferS/dJMcaayFXTw/fIJxE6ghTTDIDXjODbaRkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6ferS/dJMcaayFXTw/fIJxE6ghTTDIDXjODbaRkk/img.png&quot; data-alt=&quot;흐른 시간 계산 방법&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6ferS/dJMcaayFXTw/fIJxE6ghTTDIDXjODbaRkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6ferS%2FdJMcaayFXTw%2FfIJxE6ghTTDIDXjODbaRkk%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;1000&quot; height=&quot;558&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;558&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;흐른 시간 계산 방법&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;2. Challenge&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Challenge 부분은 기본 개념에서 소개한 개념 설명과 코드 예제 방식을 그대로 적용하지만, 입출력을 조건에 맞게 변형하는 것이 추가됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1870&quot; data-origin-height=&quot;1878&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beMNOB/dJMcaayFX5f/AlsUquGWPpjtOPKXHPG3QK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beMNOB/dJMcaayFX5f/AlsUquGWPpjtOPKXHPG3QK/img.png&quot; data-alt=&quot;Challenge 문제&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beMNOB/dJMcaayFX5f/AlsUquGWPpjtOPKXHPG3QK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeMNOB%2FdJMcaayFX5f%2FAlsUquGWPpjtOPKXHPG3QK%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;1870&quot; height=&quot;1878&quot; data-origin-width=&quot;1870&quot; data-origin-height=&quot;1878&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Challenge 문제&lt;/figcaption&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;3. Test&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Test문제인데요 이는 앞의 개념이 2개 이상이라면 이를 둘다 활용해야하는 문제가 제공됩니다.&lt;/span&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 widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1862&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjn2Hw/dJMcagyQy44/59dw0KIIrKeMmi9Wpl8d01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjn2Hw/dJMcagyQy44/59dw0KIIrKeMmi9Wpl8d01/img.png&quot; data-alt=&quot;Test 문제&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjn2Hw/dJMcagyQy44/59dw0KIIrKeMmi9Wpl8d01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjn2Hw%2FdJMcagyQy44%2F59dw0KIIrKeMmi9Wpl8d01%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;1862&quot; height=&quot;1536&quot; data-origin-width=&quot;1862&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Test 문제&lt;/figcaption&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;&amp;nbsp;4. 토론 : 빠른 답변 제공 &lt;/b&gt;&lt;b&gt;⭐️&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문제를 풀다가 이해가 가지 않을 때, 맞왜틀 등&amp;nbsp;&lt;b&gt;토론에 글을 작성하면 코드트리 관계자분들이 빠르게 답변을 달아주십니다!&amp;nbsp;&lt;/b&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&gt;&lt;b&gt;요즘 AI가 답변을 잘해주긴 합니다만&lt;span style=&quot;color: #ef5369;&quot;&gt;,&amp;nbsp;코딩테스트를 공부할 때는 AI에게 질문하다가 정답을 강제로 알게 되는 불상사(?)가 발생할 수 있어 토론 탭을 이용하는 것이 좋다고 생각합니다.&amp;nbsp;&lt;/span&gt;&lt;/b&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&gt;&lt;b&gt;토론에 작성된 모든 글에 답변이 달려있어 저와 동일한 문제를 겪었던 분들 글을 참고해 문제를 스스로 끝까지 풀 수 있었습니다.&lt;/b&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&gt;저도 토론 탭을 통해 질문을 했었는데 늦어도 1시간 안에 답변 받은 것 같습니다.&amp;nbsp;&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&gt;단점은 이미지가 첨부가 안되는 것인데 마크 다운 형식으로 질문글을 올려야해서&amp;nbsp;&lt;b&gt;외부에 올라간 이미지인 경우 url만 붙여넣으면 이미지 첨부가 가능&lt;/b&gt;합니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span&gt;토론 탭에서는 마크다운 문법을 지원하고 있습니다. 마크다운에서 이미지는 다음과 같이 첨부가 가능합니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;![대체 텍스트](이미지 링크)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;별도의 저장소에 이미지를 업로드하신 뒤 위의 문법에 따라 URL을 통해 이미지를 첨부해주실 수 있습니다&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1874&quot; data-origin-height=&quot;1872&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccDTlY/dJMcajoJGG7/lkXwo1B5BBgKdI3yLos9q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccDTlY/dJMcajoJGG7/lkXwo1B5BBgKdI3yLos9q0/img.png&quot; data-alt=&quot;토론 글&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccDTlY/dJMcajoJGG7/lkXwo1B5BBgKdI3yLos9q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccDTlY%2FdJMcajoJGG7%2FlkXwo1B5BBgKdI3yLos9q0%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;1874&quot; height=&quot;1872&quot; data-origin-width=&quot;1874&quot; data-origin-height=&quot;1872&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;토론 글&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1690&quot; data-origin-height=&quot;1450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l5Cbh/dJMcacQKulZ/TC6OBHU9xaIHQcaT5awj10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l5Cbh/dJMcacQKulZ/TC6OBHU9xaIHQcaT5awj10/img.png&quot; data-alt=&quot;토론 질문글 답변&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l5Cbh/dJMcacQKulZ/TC6OBHU9xaIHQcaT5awj10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl5Cbh%2FdJMcacQKulZ%2FTC6OBHU9xaIHQcaT5awj10%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;1690&quot; height=&quot;1450&quot; data-origin-width=&quot;1690&quot; data-origin-height=&quot;1450&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;토론 질문글 답변&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;5. 히든 케이스, 실제답, 내 코드 출력값 제공 &lt;/b&gt;&lt;b&gt;⭐️&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;제출한 코드가 틀렸을 때 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;히든 테스트 케이스, 내코드의 출력값과 실제 답을 알려줘서 디버깅하기 용이합니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;제가 풀었던 코딩테스트 사이트들은 히든 케이스를 명시적으로 제공하지 않습니다. 그 이유는 실제 코딩테스트에서도 예시 몇 개만 제공하지 히든 케이스는 직접 예외 케이스를 찾아야하기 때문입니다.&amp;nbsp;&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&gt;실제 코딩테스트에서는 히든 케이스까지 직접 찾아야 하지만, 막 입문한 입장에서는 이렇게 히든 케이스가 제공된다는 점이 꾸준히 공부하는 습관을 만드는 디딤돌이 되는 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1220&quot; data-origin-height=&quot;1300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BUF8O/dJMcai4siqO/cxoTzhelXX7uWOyDqWrEkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BUF8O/dJMcai4siqO/cxoTzhelXX7uWOyDqWrEkK/img.png&quot; data-alt=&quot;히든 테스트케이스&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BUF8O/dJMcai4siqO/cxoTzhelXX7uWOyDqWrEkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBUF8O%2FdJMcai4siqO%2FcxoTzhelXX7uWOyDqWrEkK%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;1220&quot; height=&quot;1300&quot; data-origin-width=&quot;1220&quot; data-origin-height=&quot;1300&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;히든 테스트케이스&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;6. 해설 코드 제공 ⭐️&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&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&gt;보통 문제를 맞춰도 &lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;이게 좋은 풀이일까? 내가 배운 개념을 제대로 적용한 것일까? 라는 의문을 품고, 이상적인 답을 찾는데 많은 시간을 보낸 적이 있었는데요.&lt;/span&gt;&lt;/b&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&gt;의도랑 해설코드를 제공해줘서 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;사고 과정을 교정&lt;/b&gt;&lt;/span&gt;할 수 있고,&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt; 더 효율적인 풀이 or 범용적인 풀이&lt;/b&gt;&lt;/span&gt;를 해설 코드를 통해 알아갈 수 있어 좋았습니다. 해설 코드에 대한 시간복잡도를 제공해줘서 내 풀이에 대한 시간복잡도를 비교해 더 좋은 풀이인지 체크할 수&amp;nbsp; 있었습니다.&lt;/span&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 widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1872&quot; data-origin-height=&quot;1852&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dA4X7K/dJMcahEvlKY/AtDd9SCKFwvPQGmsWgIAtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dA4X7K/dJMcahEvlKY/AtDd9SCKFwvPQGmsWgIAtK/img.png&quot; data-alt=&quot;해설&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dA4X7K/dJMcahEvlKY/AtDd9SCKFwvPQGmsWgIAtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdA4X7K%2FdJMcahEvlKY%2FAtDd9SCKFwvPQGmsWgIAtK%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;1872&quot; height=&quot;1852&quot; data-origin-width=&quot;1872&quot; data-origin-height=&quot;1852&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;해설&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1704&quot; data-origin-height=&quot;1012&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y3crr/dJMcadowX9n/eLRtjkH6wbKnURxFrbDT91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y3crr/dJMcadowX9n/eLRtjkH6wbKnURxFrbDT91/img.png&quot; data-alt=&quot;해설코드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y3crr/dJMcadowX9n/eLRtjkH6wbKnURxFrbDT91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy3crr%2FdJMcadowX9n%2FeLRtjkH6wbKnURxFrbDT91%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;1704&quot; height=&quot;1012&quot; data-origin-width=&quot;1704&quot; data-origin-height=&quot;1012&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;해설코드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;토론 기능 적극 활용한 문제&lt;/b&gt; : 흰검 칠하기&amp;nbsp;&lt;/span&gt;&lt;/h2&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&gt;&lt;a href=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-painting-white-black/description&quot;&gt;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-painting-white-black/description&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779717254655&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;흰검 칠하기을 통해 문제 요구사항과 입력&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-painting-white-black/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-painting-white-black/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/HeXJa/dJMb86O73ie/GKkDrhgZVh7dcBtQapkLxk/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-painting-white-black/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-painting-white-black/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/HeXJa/dJMb86O73ie/GKkDrhgZVh7dcBtQapkLxk/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;흰검 칠하기 설명 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;흰검 칠하기을 통해 문제 요구사항과 입력&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;&lt;span&gt;아래 문제를 풀 때 &quot;&lt;b&gt;현재 위치 타일 포함 총 x칸 타일을 연속하게 칠함&quot;&lt;/b&gt;에서 저는 &lt;b&gt;현재 위치 타일은 미포함하게 구간을 잡는 바람&lt;/b&gt;에 정답과 작은 차이가 계속 났었습니다. 30분정도 고민해도 무엇이 문제인지 몰라서, &lt;b&gt;해설을 보지 않고 작성한 코드와 이해가 안가는 부분을 토론에 질문을 남겼습니다.&amp;nbsp;&lt;/b&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&gt;체감상 &lt;b&gt;30분~ 1시간 후에 답변이 달렸고&lt;/b&gt; &quot;현재 위치 타일 포함&quot;을 하면 된다는 답변을 받고 문제를 풀 수 있었습니다. AI를 통해 문제점을 찾을 수 있지만, 문제, 입력값, 출력값을 직접 제공해야하는 불편과 히든케이스는 고려하지 못한다는 점 때문에 토론을 이용한 것이 유용했습니다.&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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1758&quot; data-origin-height=&quot;1484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3b7BC/dJMcacb97s6/0UcT34ikXouLjEZEd1jHr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3b7BC/dJMcacb97s6/0UcT34ikXouLjEZEd1jHr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3b7BC/dJMcacb97s6/0UcT34ikXouLjEZEd1jHr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3b7BC%2FdJMcacb97s6%2F0UcT34ikXouLjEZEd1jHr0%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;1758&quot; height=&quot;1484&quot; data-origin-width=&quot;1758&quot; data-origin-height=&quot;1484&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;&lt;span&gt;직접 문제를 풀었지만, 수행시간과 메모리가 높아 북마크로 저장해두고 다음에 다시 풀어보려고합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1558&quot; data-origin-height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxeMMu/dJMcadhRaSG/C52kaudCLJb9G8m5HrgHY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxeMMu/dJMcadhRaSG/C52kaudCLJb9G8m5HrgHY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxeMMu/dJMcadhRaSG/C52kaudCLJb9G8m5HrgHY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxeMMu%2FdJMcadhRaSG%2FC52kaudCLJb9G8m5HrgHY1%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;1558&quot; height=&quot;290&quot; data-origin-width=&quot;1558&quot; data-origin-height=&quot;290&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;그 외 좋은 기능&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;목표 달성 경험치바&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;매일 목표를 달성하면 자동적으로 경험치가 채워지는게 눈에 보여서 더 열심히 하게 됩니다. 문제를 풀고 바로 다음 문제를 또 풀고 싶어지더라고요.&amp;nbsp;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dTu04L/dJMcafGKOEs/6FkOEkPbuDAkjM0z3URYDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dTu04L/dJMcafGKOEs/6FkOEkPbuDAkjM0z3URYDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dTu04L/dJMcafGKOEs/6FkOEkPbuDAkjM0z3URYDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdTu04L%2FdJMcafGKOEs%2F6FkOEkPbuDAkjM0z3URYDk%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;582&quot; height=&quot;112&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;112&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;테스트케이스 입력시 정답 값은 자동 생성&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;보통 테스트케이스 입력값과 정답(출력값)을 직접 찾아야하는데 입력값만 조건에 맞게 제공하면 자동으로 정답값을 만들어 줘서 테스트 하기 편했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1878&quot; data-origin-height=&quot;606&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcNrMq/dJMcabROBUI/20OXi9LKKmqz91UGSY9Xrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcNrMq/dJMcabROBUI/20OXi9LKKmqz91UGSY9Xrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcNrMq/dJMcabROBUI/20OXi9LKKmqz91UGSY9Xrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcNrMq%2FdJMcabROBUI%2F20OXi9LKKmqz91UGSY9Xrk%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;1878&quot; height=&quot;606&quot; data-origin-width=&quot;1878&quot; data-origin-height=&quot;606&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;다음 목표&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아직 시뮬레이션1의 모든 파트를 끝내지 못했는데요, 다음 미션까지 시뮬레이션1, 2를 끝내는 것이 목표입니다. 더 할 수 있다면 완전탐색까지 진행하고 싶습니다.&amp;nbsp;&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;</description>
      <category>Algorithm</category>
      <category>시뮬레이션</category>
      <category>코드트리</category>
      <category>코딩테스트</category>
      <category>코테공부</category>
      <author>geologs</author>
      <guid isPermaLink="true">https://geologs.tistory.com/42</guid>
      <comments>https://geologs.tistory.com/42#entry42comment</comments>
      <pubDate>Fri, 22 May 2026 10:54:58 +0900</pubDate>
    </item>
    <item>
      <title>[CodeTree 후기] 코드트리 청약 챌린지 참여 - 2회차 : 갭체크</title>
      <link>https://geologs.tistory.com/38</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;&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;1098&quot; data-origin-height=&quot;570&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drFAfS/dJMcafUbVPk/odpjTM0iNT4fb4wL8qTbuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drFAfS/dJMcafUbVPk/odpjTM0iNT4fb4wL8qTbuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drFAfS/dJMcafUbVPk/odpjTM0iNT4fb4wL8qTbuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrFAfS%2FdJMcafUbVPk%2FodpjTM0iNT4fb4wL8qTbuk%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;1098&quot; height=&quot;570&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;570&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;코드트리란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CodeTree도 백준 처럼&lt;b&gt; 알고리즘 문제를 푸는 사이트&lt;/b&gt;이지만,&lt;b&gt; 단계적으로 문제와 해설코드를 제공&lt;/b&gt;합니다. 체계적으로 배우고자 하는 분들에게 추천합니다. 대신 무료가 아닌 &lt;b&gt;유료&lt;/b&gt;입니다. &lt;b&gt;제휴 대학&lt;/b&gt;이면 무료로 이용할 수 있지만, 아니더라도 &lt;b&gt;대학 계정 인증을 통해 할인된 금액&lt;/b&gt;으로 정기권을 구매할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;코테 청약 통장 챌린지&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3년만에 코테 청약 통장 챌린지를 진행하고 있습니다. 이는 7주간 유료로 제공되는 코드트리 서비스를 무료로 이용할 수 있는 이벤트 입니다. &lt;b&gt;매주 학습 인증 시 통장 만기일(7주)까지 모든 콘텐츠를 '무료'로 이용할 수 있습니다.&lt;/b&gt; 무료로 꾸준히 공부할 수 있으니 추천합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;총 6회 납입 시 무료 사용 연장(8월 31일까지) 제공합니다. 9월에 2학기 개강을 하니 방학 때 코테 실력을 기르고자 하는 학생 혹은 하반기 코테 노리는 취준생 분들이 적합할듯 합니다.&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;&lt;a href=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779034801028&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;3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리&quot; data-og-description=&quot;매주 학습 납입하고 7주 만기 채우면 코드트리 8월까지 무료. 매주 추첨권을 모아 맥북&amp;middot;에어팟&amp;middot;애플워치 응모까지. 신청 인원에 따라 조기마감될 수 있어요.&quot; data-og-host=&quot;www.codetree.ai&quot; data-og-source-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; data-og-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bC69DB/dJMb87N1WVM/KmUacGDBGCqyAoDRdRzmvk/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890,https://scrap.kakaocdn.net/dn/biSxUU/dJMb85vUmAM/wog2f6fdkD22qP3BMmnQqk/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/no-free-lunch-2026/?ref=T38PMZ&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bC69DB/dJMb87N1WVM/KmUacGDBGCqyAoDRdRzmvk/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890,https://scrap.kakaocdn.net/dn/biSxUU/dJMb85vUmAM/wog2f6fdkD22qP3BMmnQqk/img.png?width=3600&amp;amp;height=1890&amp;amp;face=0_0_3600_1890');&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;3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;매주 학습 납입하고 7주 만기 채우면 코드트리 8월까지 무료. 매주 추첨권을 모아 맥북&amp;middot;에어팟&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1444&quot; data-origin-height=&quot;1064&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xQSu4/dJMcabqI0mi/yhVSXqMhQjIQgCQgv4Amik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xQSu4/dJMcabqI0mi/yhVSXqMhQjIQgCQgv4Amik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xQSu4/dJMcabqI0mi/yhVSXqMhQjIQgCQgv4Amik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxQSu4%2FdJMcabqI0mi%2FyhVSXqMhQjIQgCQgv4Amik%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;1444&quot; height=&quot;1064&quot; data-origin-width=&quot;1444&quot; data-origin-height=&quot;1064&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;822&quot; data-origin-height=&quot;816&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0dVdR/dJMb997umWF/sF6aaO7IjLk7esSKUbCshk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0dVdR/dJMb997umWF/sF6aaO7IjLk7esSKUbCshk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0dVdR/dJMb997umWF/sF6aaO7IjLk7esSKUbCshk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0dVdR%2FdJMb997umWF%2FsF6aaO7IjLk7esSKUbCshk%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;822&quot; height=&quot;816&quot; data-origin-width=&quot;822&quot; data-origin-height=&quot;816&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;갭체크 후기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Gap Check로 현재 저의 위치를 확인하는 과정을 거쳤는데요, 본인이 작성한 코드 기반으로 본인이 어느 파트에서 부족한지 확인할 수 있었습니다.&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt; 총 문제는 4문제&lt;/b&gt;&lt;/span&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;풀면서 좋았던 점은&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;b&gt;제한 시간이 나와있다. 못풀면 다음 문제로 이동&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 백준이나 프로그래머스의 경우 문제를 내가 얼만큼 고민했는지 절대적인 시간을 체크하지 못해 맞출때까지, 혹은 답지를 볼 때까지 계속 푸는 경우가 있었기 때문에 저는 이 부분이 유독 마음에 들었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;b&gt;무엇이 부족한지 알려준다&lt;/b&gt;.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 평소 코테 문제를 풀면서 문제 이해를 '빠르고' '정확하게' 못한다는 느낌이 들었는데 그 유형이 시뮬레이션인 것을 알게되었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &lt;b&gt;UI가 간편하다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. &lt;b&gt;예제에 대한 설명이 있다.&amp;nbsp;&lt;/b&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;1790&quot; data-origin-height=&quot;1464&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cboayo/dJMcadPwMYc/ltpCR3DYflbZ1keYopOHe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cboayo/dJMcadPwMYc/ltpCR3DYflbZ1keYopOHe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cboayo/dJMcadPwMYc/ltpCR3DYflbZ1keYopOHe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcboayo%2FdJMcadPwMYc%2FltpCR3DYflbZ1keYopOHe0%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;1790&quot; height=&quot;1464&quot; data-origin-width=&quot;1790&quot; data-origin-height=&quot;1464&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;약 7주간 열심히 해보도록 하겠습니다.&lt;/p&gt;</description>
      <category>Algorithm</category>
      <category>코드트리 #코딩테스트 #코테공부 #코테준비 #알고리즘공부 #갭체크</category>
      <author>geologs</author>
      <guid isPermaLink="true">https://geologs.tistory.com/38</guid>
      <comments>https://geologs.tistory.com/38#entry38comment</comments>
      <pubDate>Mon, 18 May 2026 01:21:39 +0900</pubDate>
    </item>
    <item>
      <title>[Claude Code] 1. Claude Code 설치, Command, Plan Mode, 토큰 관리, 세션 관리  + Whisper Flow 소개</title>
      <link>https://geologs.tistory.com/28</link>
      <description>&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;793&quot; data-origin-height=&quot;411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDs8yF/dJMb99TekMh/tMcR8qOqL3bbobQtWUFBFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDs8yF/dJMb99TekMh/tMcR8qOqL3bbobQtWUFBFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDs8yF/dJMb99TekMh/tMcR8qOqL3bbobQtWUFBFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDs8yF%2FdJMb99TekMh%2FtMcR8qOqL3bbobQtWUFBFK%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;793&quot; height=&quot;411&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;411&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Intro&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 CLI를 활용해 AI가 코드를 직접 작성해주고 관리하는 것을 처음 시작해봅니다. 그 이유는 그동안 코드는 개발자가 직접 짰을 때 더 견고해진다고 느꼈고, 배울 때는 최대한 AI를 활용하는 것을 자제해야 생각하는 힘, 사고가 길러진다고 생각했습니다.&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;하지만 취업 준비를 하면서 채용 공고를 많이 보면서 AI를 활용할 수 있는 능력이 중요하고 요구하고 있구나를 느끼면서 다른 비전공생, 전공생보다 가산점이 되려면 적극적으로 활용하되, 생각을 멈추지 말자는 결론에 다다르게 되었습니다. 그래서 할거면 제대로 하자는 마인드로 클로드 코드에 관해 질적으로 좋은 콘텐츠들을 찾고 배우면서 기록하고자 이 글을 시작하게 되었습니다.&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;'시작은 미약하지만 그 끝은 창대하리라'라 생각하며 Claude Code부터 시작해 AI를 잘 활용하는 순간까지 담아보겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 클로드 코드 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mac OS 일반 Terminal에 입력하면 됩니다. brew를 이용하면 Claude Code가&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1773973979660&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;curl -fsSL https://claude.ai/install.sh | bash&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 클로드 코드 커맨드&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;/init&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클로드 코드 CLAUDE.md 파일을 만들어주는 역할&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;b&gt;CLAUDE.md&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Claude Code 에서 프로젝트의 컨텍스트, 코딩 컨벤션, 명렁어 규칙 등을 정의해두는 설정파일&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Claude가 프로젝트를 이해하고 일관된 방식으로 코드를 작성하도록 안내하는 &quot;프로젝트 지침서&quot; 역할&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 컨텍스트 관리 도구&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;b&gt;AI Agent 특징&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컨텍스트 관리가 중요하다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜? CLAUDE.md는 매 대화 시작 시 자동으로 컨텍스트에 로드되기 때문에,&lt;u&gt; 반복적으로 프로젝트 규칙이나 선호사항을 설명할 필요 없이 제한된 컨텍스트 윈도우를 효율적으로 활용할 수 있게 해줌.&amp;nbsp;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, &lt;u&gt;토큰 낭비를 줄이면서&lt;/u&gt;도 Claude가 항상 &lt;u&gt;프로젝트 맥락을 파악한 상태에서 작업을 시작&lt;/u&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;h2 data-ke-size=&quot;size26&quot;&gt;3. Plan Mode&amp;nbsp; &lt;b&gt;⭕️ 중요&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Claude가 바로 코드를 작성하지 않고 &lt;u&gt;먼저 구현 계획을 세우고 사용자와 확인하는 단계&lt;/u&gt;를 거치게 함으로써,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 잘못된 방향으로 대량의 토큰을 소비하는 것을 방지하고 정확한 결과물을 얻을 확률을 높여주는 비용&amp;middot;품질 최적화 전략&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;Plan Mode에서 세운 구현 계획은 Claude가 수정할 권한이 없음. 구현 계획 세운 다음 Edit On Mode 로 가자.&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;b&gt;cf. Edit On Mode&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 코드를 고쳐줌.&amp;nbsp; 빨라보이지만, AI가 잘못 알아듣고 더 많은 파일을 고칠 확률이 높음. Plan Mode를 쓰자.&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;h2 data-ke-size=&quot;size26&quot;&gt;4. 토큰 관리 &lt;b&gt;⭕️ 중요&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;/context&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;60%이상 채워진 상태에서 계속 대화를 이어나가면 AI가 환각을 일으켜 비효율적인 대화가 됨. -&amp;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;1248&quot; data-origin-height=&quot;530&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bS0qcd/dJMcadH3Kqh/e4ki4xQZ2OvJBJRkTMaB91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bS0qcd/dJMcadH3Kqh/e4ki4xQZ2OvJBJRkTMaB91/img.png&quot; data-alt=&quot;/context - 현재 컨텍스트의 카테고리별 사용량&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bS0qcd/dJMcadH3Kqh/e4ki4xQZ2OvJBJRkTMaB91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbS0qcd%2FdJMcadH3Kqh%2Fe4ki4xQZ2OvJBJRkTMaB91%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;1248&quot; height=&quot;530&quot; data-origin-width=&quot;1248&quot; data-origin-height=&quot;530&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;/context - 현재 컨텍스트의 카테고리별 사용량&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;컨텍스트 정리 방법 -2&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;/clear&amp;nbsp;&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;/compact&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 대화 내용을 요약해 컨텍스트 윈도우 사용량을 줄여줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 대화를 없애진 않고, 어느 정도 이해한 상태에서 대화를 이어나가고 싶은 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. 세션관리&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;병렬 처리&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 여러 Claude Code를 실행시킨 후 여러 서브 에이전트를 실행시키는 것을 병렬적으로 처리한다라고 함.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하나의 Claude Code 창은 하나의 세션을 가지는데, 여러 세션을 가진 경우 '관리'를 할 줄 알아야 함.&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;1544&quot; data-origin-height=&quot;574&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnarj0/dJMcahjs1ew/tyhYdsBNk4wjNlVvNXKOE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnarj0/dJMcahjs1ew/tyhYdsBNk4wjNlVvNXKOE1/img.png&quot; data-alt=&quot;병렬 처리&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnarj0/dJMcahjs1ew/tyhYdsBNk4wjNlVvNXKOE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbnarj0%2FdJMcahjs1ew%2FtyhYdsBNk4wjNlVvNXKOE1%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;1544&quot; height=&quot;574&quot; data-origin-width=&quot;1544&quot; data-origin-height=&quot;574&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;병렬 처리&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;세션 관리 명령어&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;claude --continue&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 방금 끝냈던 Claude의 세션이 불러와 짐&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;color: #ef5369;&quot;&gt;&lt;b&gt;claude --resume&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 Claude와 나눴던 대화의 history 보여줌&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;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;/rename &amp;lt;세션명&amp;gt;&lt;/span&gt;&amp;nbsp; ⭕️ TIP&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Claude와 대화를 하다가 직접 대화명을 지정하는 명령어.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g /rename &amp;lt;db_schema_update&amp;gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;claude --resume했을 때 &amp;lt;db_schema_update&amp;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;1732&quot; data-origin-height=&quot;676&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kPtRj/dJMcagx2vv9/P8QdgTKKxl91m7lW7ghEc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kPtRj/dJMcagx2vv9/P8QdgTKKxl91m7lW7ghEc1/img.png&quot; data-alt=&quot;claude --resume&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kPtRj/dJMcagx2vv9/P8QdgTKKxl91m7lW7ghEc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkPtRj%2FdJMcagx2vv9%2FP8QdgTKKxl91m7lW7ghEc1%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;1732&quot; height=&quot;676&quot; data-origin-width=&quot;1732&quot; data-origin-height=&quot;676&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;claude --resume&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Git&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버전 관리. Claude Code가 코드를 잘못 수정했을 때 즉시 이전 상태로 되돌릴 수 있는 안정망 역할을 함.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI 와 협업할 때 자주 커밋하는 습관이 작업 손실 방지&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Whisper Flow&lt;/b&gt; ⭕️ 추천&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;STT(Speak To Text) 기능 . 직접 타자 치지 않고 말로 Claude 에게 시킬 내용 작성 가능.&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;참고 영상&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;필요한 부분을 목차를 나눠 핵심만 빠르게 알려주시는 것이 좋아 영상의 내용을 정리했습니다. &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실리콘벨리 메타 시니어 개발자분이시라 더 신뢰성 있습니다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Claude Code 완벽 가이드 | 설치부터 실전 팁까지&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=VQeug8daU9k&amp;amp;list=PLCaxhZL8UZLVFjbghVC4VTpD1mzsHDxyv&quot;&gt;https://www.youtube.com/watch?v=VQeug8daU9k&amp;amp;list=PLCaxhZL8UZLVFjbghVC4VTpD1mzsHDxyv&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=VQeug8daU9k&amp;amp;list=PLCaxhZL8UZLVFjbghVC4VTpD1mzsHDxyv&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bS93bp/dJMb9b3Q8T9/QZV1iis2IHMKtFUJiSWzGk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=772_248_966_460,https://scrap.kakaocdn.net/dn/bhn3cr/dJMb9gxkuSf/OI9WK0vWtf9pshTsecwjIK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=772_248_966_460&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;Claude Code 완벽 가이드ㅣ설치부터 실전 팁까지&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/VQeug8daU9k&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&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;</description>
      <category>Artificial Intelligence</category>
      <category>claude code 설치</category>
      <category>Edit On Mode</category>
      <category>Plan Mode</category>
      <category>세션관리</category>
      <category>토큰관리</category>
      <author>geologs</author>
      <guid isPermaLink="true">https://geologs.tistory.com/28</guid>
      <comments>https://geologs.tistory.com/28#entry28comment</comments>
      <pubDate>Thu, 19 Mar 2026 18:12:22 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 6234번 : 용돈 관리 (도식화 -&amp;gt; 로직 -&amp;gt; 코드)</title>
      <link>https://geologs.tistory.com/26</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;478&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvP6Pa/dJMcacCki2N/bxr0N2BBgcUx3VNN6Elrb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvP6Pa/dJMcacCki2N/bxr0N2BBgcUx3VNN6Elrb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvP6Pa/dJMcacCki2N/bxr0N2BBgcUx3VNN6Elrb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvP6Pa%2FdJMcacCki2N%2Fbxr0N2BBgcUx3VNN6Elrb1%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;480&quot; height=&quot;626&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;478&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;span style=&quot;color: #000000;&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/6236&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/6236&lt;/a&gt;&lt;/span&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;1490&quot; data-origin-height=&quot;1202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tETQG/dJMcaiidPNH/3A3615L1b85b19GTVQ7Rk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tETQG/dJMcaiidPNH/3A3615L1b85b19GTVQ7Rk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tETQG/dJMcaiidPNH/3A3615L1b85b19GTVQ7Rk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtETQG%2FdJMcaiidPNH%2F3A3615L1b85b19GTVQ7Rk1%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;1490&quot; height=&quot;1202&quot; data-origin-width=&quot;1490&quot; data-origin-height=&quot;1202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;용돈 관리 문제의 경우 번역이 모호한 것이 있어 문제 이해를 하는데 오래 걸렸습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;금액의 경우 총 4가지 종류가 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1. 통장 금액&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2. 인출 금액 K&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3. 현우가 하루 당 사용할 금액 a[i]&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;4. 잔액 =&amp;nbsp; 인출 금액 K - 현우가 하루 사용할 금액 a[i]&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;TIP&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;여기서 1. 통장 금액의 경우 금액이 무한정라고 생각해야 문제가 이해가 됩니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;목표 &lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;M번 인출할 수 있을 때 인출 금액 K의 최솟값을 구해야합니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;도식화&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예시를 통해 문제를 이해해봅시다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1)&amp;nbsp; N = 2일 동안 M = 3 번 인출할 수 있고, 인출 금액(K)가 500원일 때, 현우가 2일 동안 100원, 400원이 필요하다면&lt;/span&gt;&lt;/blockquote&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: #000000;&quot;&gt;1일 때 인출된 금액 500원에서 100원을 소비하고 남은 금액이 400원이 됩니다. 이 남은 금액을 가지고 다음 날 사용할 금액에서 빼야합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;인출을 1번 했을 때, 모든 요일의 금액을 충당할 수 있기 때문에 조금 더 인출된 금액을 상향 시킬 수 있겠죠? 물론 2일차일 때 이미 남은 금액(400원)으로 2일차에서 필요한 금액 400원을 충당할 수 있지만 다시 인출을 할 수 있습니다. 그래서 M = 2를 맞출 수 있습니다.&amp;nbsp;&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: #000000;&quot;&gt;인출 금액 K = 500원을 더 작게 만들어 봅시다. K = 400원으로 낮춘다면&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1일 때 인출된 금액 400원에서 1일차에 100원을 소비하고 남은 금액은 300원이 됩니다. 남은 금액 300원으로는 2일차의 400원을 충당할 수 없습니다. 그러면 2일차 당일에 인출을 1회 합니다. 그럼으로써 실제로 인출한 횟수는 2회가 됩니다.&amp;nbsp;&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: #000000;&quot;&gt;주의사항은 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;인출된 금액은 한번 더 인출한다고 해서 누적되지 않습니다.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;지문에서 &quot; &lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;모자라게 되면 남은 금액은 통장에 집어넣고 다시 K원을 인출한다. &quot; 라고 명시되어있기 때문입니다. 이 말은 인출 금액 K 400 원으로 남은 금액 300원을 담는 변수를 초기화 해야하는 것을 의미합니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그럼 인출 금액 400원으로 2번 인출이 가능해집니다. 하지만 이것이 최소 금액인지는 정확히 모릅니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;로직&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;인출 금액이 가질 수 있는 값의 범위를 구해서 시작값부터 끝 값까지 for 반복문으로 &lt;b&gt;선형 탐색&lt;/b&gt;하면서 최소 인출 금액 K를 구할 수 있습니다. 하지만 [시작값, 끝값] 범위가 10억을 넘어간다면 O(N)시간 초과가 발생합니다. 매우 큰 범위의 탐색을 하는 경우 &quot;&lt;b&gt;이분 탐색&quot;&lt;/b&gt;을 하면 O(logN)의 복잡도로 줄어들게 됩니다.&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: #000000;&quot;&gt;주의 사항&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;이분 탐색으로 탐색할 범위는 입력으로 받은 현우의 사용 금액이 아닙니다. -&amp;gt; 정렬이 필요없는 이유&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이분탐색 문제임에도 &amp;lsquo;현우가 이용할 금액&amp;rsquo;이 저장된 배열을 정렬하지 않는 이유는 이미 lo, hi가 탐색하는 배열은 등차가 1인 수열이므로 정렬을 할 필요가 없기 때문입니다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; low, high가 탐색하는 배열에 저장된 값이 어떤 값인지 확인&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;low와 high가 탐색하는 배열은 입력으로 받은 &amp;lsquo;현우가 이용할 금액&amp;rsquo;이 저장된 배열이 아니라 d = 1 인 등차수열입니다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이분 탐색에 필요한 low, high 의 범위를 구해봅시다.&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1. low &lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;low = max(현우가 입력받은 사용금액)&lt;/b&gt; &lt;/span&gt;입니다. 문제에서 '인출 금액 K &amp;lt; 하루 사용 금액 a[i] '인 경우 &quot;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;남은 금액이 그날 사용할 금액보다 많더라도 남은 금액은 통장에 집어넣고 다시 K원을 인출할 수 있다.&quot; 라고 했기 때문입니다. n일차에 1번 인출 금액 K원을 가지고 현우가 n일차에 필요한 금액을 &quot;무조건 차감&quot;하게 됩니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;2. high&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;high = 10000 vs. high = 1,000,000,000 (10억)중 무엇일까요? &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;정답은 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;high = 10억&lt;/b&gt;&lt;/span&gt; 입니다.&amp;nbsp;&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;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;high = 10,000 이 틀린 이유&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최악의 경우를 고려할 때 m 의 값을 고려해야합니다. 금액의 범위의 상한선이 되는 것이 아닙니다. (1 &amp;le; 금액 &amp;le; 10,000) m = 1 번 인출, n = 100,000일, 현우가 n일 동안 10,000원씩 필요하다면 총 1,000,000,000원이 인출금액이어야 성립합니다.&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;h2 data-ke-size=&quot;size26&quot;&gt;코드&lt;/h2&gt;
&lt;pre id=&quot;code_1773219001816&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
typedef long long ll ;
ll a[100'004], n, m, ret = 1e18, mx = -1e18;
bool check(ll e_val) {
    int temp = e_val; 

    ll cnt = 0;
    for(ll i = 0; i &amp;lt; n; i++) {
        if(a[i] &amp;gt; e_val) { // 하루 가용 금액(K)로 사용 불가능한 경우 
            cnt++; 
            e_val = temp; 
        }
        // 하루 가용 금액(K)로 소비가 가능한 경우 
            e_val -= a[i]; 
        
    }
    cnt++;
    return cnt &amp;lt;= m; 
}

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m; 
    for(ll i = 0; i &amp;lt; n; i++) {
        cin &amp;gt;&amp;gt; a[i];
        mx = max(a[i], mx);
    }

    ll lo = mx;
    ll hi = 1'000'000'004; 

    while(lo &amp;lt;= hi) {
        ll mid = (lo + hi) / 2; 

        if(check(mid)) {
            hi = mid -1; 
            ret = min(ret, mid);

        }
        else {
            lo = mid + 1; 
        } 
    }

    cout &amp;lt;&amp;lt; ret &amp;lt;&amp;lt; '\n';
    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;&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;490&quot; data-origin-height=&quot;226&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ETr8B/dJMcaaLgKit/GJsGshQ7QiAI38LtO3LoTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ETr8B/dJMcaaLgKit/GJsGshQ7QiAI38LtO3LoTK/img.png&quot; data-alt=&quot;실행결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ETr8B/dJMcaaLgKit/GJsGshQ7QiAI38LtO3LoTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FETr8B%2FdJMcaaLgKit%2FGJsGshQ7QiAI38LtO3LoTK%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;490&quot; height=&quot;226&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;226&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm</category>
      <category>c++</category>
      <category>백준</category>
      <category>용돈관리</category>
      <category>이분탐색</category>
      <author>geologs</author>
      <guid isPermaLink="true">https://geologs.tistory.com/26</guid>
      <comments>https://geologs.tistory.com/26#entry26comment</comments>
      <pubDate>Wed, 11 Mar 2026 17:19:28 +0900</pubDate>
    </item>
  </channel>
</rss>