<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>ponyo_.log</title>
        <link>https://velog.io/</link>
        <description>Hello!</description>
        <lastBuildDate>Tue, 14 Oct 2025 23:09:07 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>ponyo_.log</title>
            <url>https://velog.velcdn.com/images/ponyo_/profile/ede3918c-a888-4488-9ffe-2b6adef7ab66/image.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. ponyo_.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/ponyo_" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[# 28278]]></title>
            <link>https://velog.io/@ponyo_/28278</link>
            <guid>https://velog.io/@ponyo_/28278</guid>
            <pubDate>Tue, 14 Oct 2025 23:09:07 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Cstack {
private:
    int* stack;
    int cap;
    int top;
public:
    Cstack(int cap = 1000000){
        stack = new int[cap];
        this-&gt;cap = cap;
        top = -1;
    }

    void pushStack(int x){ // 1
        if (top == cap) return;
        stack[++top] = x;
    }

    void two() { // 2
        if (top == -1) return;
        for(int i = 0; i &lt; top; i++) {
            cout &lt;&lt; stack[i] &lt;&lt; &quot;\n&quot;;
        }
    }

    int getSize() { // 3
        return top + 1;
    }

    bool isEmpty() { // 4
        return (top == -1);
    }

    int popStack(){ // 5
        if (top == -1) return -1;
        return stack[--top];
    }
};

int main(void) {
    Cstack s;
    int n;
    cin &gt;&gt; n;
    for(int i = 0; i &lt; n; i++){
        int v;
        cin &gt;&gt; v;
        switch(v) {
            case 1:
                int x;
                cin &gt;&gt; x;
                s.pushStack(x);
                break;
            case 2:
                s.two();
                break;
            case 3:
                cout &lt;&lt; s.getSize() &lt;&lt; &quot;\n&quot;;
                break;
            case 4:
                cout &lt;&lt; s.isEmpty() &lt;&lt; &quot;\n&quot;;
                break;
            case 5:
                cout &lt;&lt; s.popStack() &lt;&lt; &quot;\n&quot;;
                break;
        }
    }
    return 0;
}</code></pre>
<p>스택 구현 문제 월요일 구현 내용인데</p>
<p>잘못된 부분을 찾은줄 알았는데, 그게 아니라서 정답을 보니까</p>
<p>문제 해석자체를 잘못한거 같아서 난독증있나 싶었다.</p>
<p><a href="https://www.acmicpc.net/board/view/128983">https://www.acmicpc.net/board/view/128983</a></p>
<p>출제자도 인정했다.</p>
<p>근데 여기 답변을 보면 문제를 보고, 해석이 애매하면 예제를 보고 알 수 있어야 한다고 하는데.</p>
<p>물론 타당한 의견이지만
음... 뭔가 비유로 표현하면 레고 조립설명서 같은 느낌... 설명은 잘못됐지만 그림은 이상없죠?</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[#10 13909 2트]]></title>
            <link>https://velog.io/@ponyo_/10-13909-2%ED%8A%B8</link>
            <guid>https://velog.io/@ponyo_/10-13909-2%ED%8A%B8</guid>
            <pubDate>Wed, 01 Oct 2025 23:35:32 GMT</pubDate>
            <description><![CDATA[<h1 id="정답">정답</h1>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;math.h&gt;
using namespace std;

int main(void) {
    int n;
    cin &gt;&gt; n;

    cout &lt;&lt; int(sqrt(n));
    return 0;
}</code></pre>
<h1 id="회고">회고</h1>
<p>전에 했던 방식으로 21억까지 입력이 들어오면 메모리 할당에 필요한 공간이 약 <strong>8000MB = 8GB</strong>가 필요한 어마무시한 상황이였다.</p>
<p>이 문제를 어떻게 해결해야하나 고민해봤는데
15분정도 더 고민해도 문제가 풀리지 않아서</p>
<p>인터넷에 검색하여 해답을 보았다.</p>
<p>결과값의 규칙을 찾고
제곱근을 출력하면 되는 규칙을 찾아내면 된다.</p>
<p>간단했다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[#9 13909]]></title>
            <link>https://velog.io/@ponyo_/9-13909</link>
            <guid>https://velog.io/@ponyo_/9-13909</guid>
            <pubDate>Tue, 30 Sep 2025 23:49:11 GMT</pubDate>
            <description><![CDATA[<p>1차 세그먼트 오류 (배열 메모리할당 실패)
2차 메모리 초과 ㅅㄱ</p>
<p>진행중</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
using namespace std;

int main(void) {
    int n, cnt = 0;
    cin &gt;&gt; n;
    vector&lt;bool&gt; w(n, false);

    for (int i = 1; i &lt;= n; i++) {
        for (int j = i; j &lt;= n; j += i) {
            w[j] = !w[j];
        }
    }

    for (int i = 1; i &lt;= n; i++) {
        if (w[i]) cnt++;
    }
    cout &lt;&lt; cnt;

    return 0;
}</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[#8 17103]]></title>
            <link>https://velog.io/@ponyo_/8-17103</link>
            <guid>https://velog.io/@ponyo_/8-17103</guid>
            <pubDate>Mon, 29 Sep 2025 23:43:47 GMT</pubDate>
            <description><![CDATA[<h1 id="결과">결과</h1>
<p>어제 말한대로 체 이용해서 문제를 풀었고, 
<img src="https://velog.velcdn.com/images/ponyo_/post/a7f6b3dd-b90e-413f-a078-e2f8a24754be/image.png" alt="">
52ms가 나왔는데 한 중간정도 되는거 같다</p>
<p>굿굿</p>
<h1 id="작성-코드">작성 코드</h1>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
using namespace std;

int main(void) {
    int max = 1000000;

    vector&lt;bool&gt; isPrime(max, true);

    for (int i = 2; i * i &lt; max; i++) {
        if (isPrime[i]) {
            for (int j = i * i; j &lt;= max; j += i) {
                isPrime[j] = false;
            }
        }
    }

    int t;
    cin &gt;&gt; t;

    for(int i = 0; i &lt; t; i++){
        int n, cnt = 0;
        cin &gt;&gt; n;
        for(int j = 2; j &lt;= n / 2; j++) {
            if(isPrime[j] &amp;&amp; isPrime[n - j]) cnt++;
        }
        cout &lt;&lt; cnt &lt;&lt; &quot;\n&quot;;
    }

    return 0;
}</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[#7 베르트랑 공준]]></title>
            <link>https://velog.io/@ponyo_/7-%EB%B2%A0%EB%A5%B4%ED%8A%B8%EB%9E%91-%EA%B3%B5%EC%A4%80</link>
            <guid>https://velog.io/@ponyo_/7-%EB%B2%A0%EB%A5%B4%ED%8A%B8%EB%9E%91-%EA%B3%B5%EC%A4%80</guid>
            <pubDate>Sun, 28 Sep 2025 23:43:37 GMT</pubDate>
            <description><![CDATA[<p><a href="https://www.acmicpc.net/problem/4948">https://www.acmicpc.net/problem/4948</a></p>
<h1 id="제출-코드">제출 코드</h1>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

bool isPrime(int x) {
    for (int i = 2; i * i &lt;= x; i++) {
        if (x % i == 0) {
            return false;
        }
    }
    return true;
}

int main(void) {
    int n = 1;

    cin &gt;&gt; n;
    while (n) {
        int cnt = 0;
        for (int i = n + 1; i &lt;= 2 * n; i++) {
            if(isPrime(i)) cnt++;
        }

        cout &lt;&lt; cnt &lt;&lt; &#39;\n&#39;;
        cin &gt;&gt; n;
    }

    return 0;
}</code></pre>
<p><img src="https://velog.velcdn.com/images/ponyo_/post/b362358b-b2d1-48ab-86b1-0532eedc721d/image.png" alt=""></p>
<p><strong>음 풀었는데 시간이 너무 오래걸린다!!</strong></p>
<h1 id="풀이-방식">풀이 방식</h1>
<p>전 포스트들과 똑같이 소수 판별할 때 그 수의 제곱근까지만 판별하면 되는데</p>
<p><strong>에라토스테네스의 체</strong> 방식으로 풀어야 할거 같다</p>
<p>왜냐하면 소수 판별에 필요한 범위가 주워지기 때문이다.</p>
<p>구현이 어려워서 의사코드를 찾아봤다.</p>
<pre><code class="language-text">algorithm Sieve of Eratosthenes is
    input: an integer n &gt; 1.
    output: all prime numbers from 2 through n.

    let A be an array of Boolean values, indexed by integers 2 to n,
    initially all set to true.

    for i = 2, 3, 4, ..., not exceeding √n do
        if A[i] is true
            for j = i2, i2+i, i2+2i, i2+3i, ..., not exceeding n do
                set A[j] := false

    return all i such that A[i] is true.</code></pre>
<p>음 영어 어렵지만 하나하나 구현해보자</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(void) {
    int n;
    cin &gt;&gt; n;

    bool A[n];

    for (int i = 0; i &lt; n; i++) {
        A[i] = true;
    }

    for (int i =2; i * i &lt; n; i++) {
        if (A[i]) {
            // i2, i2+i, i2+2i, i2+3i ???????????
            for (int j = i * i; j &lt;= n; j += i) { //그녀석의 도움
                 A[j] = false;
            }
        }
    }
    return 0;
}</code></pre>
<p>내일은 정말 이 기술을 마스터 해보자.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[#6 소수구하기 2트째 (보류)]]></title>
            <link>https://velog.io/@ponyo_/6-%EC%86%8C%EC%88%98%EA%B5%AC%ED%95%98%EA%B8%B0-2%ED%8A%B8%EC%A7%B8</link>
            <guid>https://velog.io/@ponyo_/6-%EC%86%8C%EC%88%98%EA%B5%AC%ED%95%98%EA%B8%B0-2%ED%8A%B8%EC%A7%B8</guid>
            <pubDate>Thu, 25 Sep 2025 23:46:30 GMT</pubDate>
            <description><![CDATA[<p>아직 하는중</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(void) {
    int m, n;
    cin &gt;&gt; m &gt;&gt; n;

    // 체는 소수가 아닌것들을 미리 판단할 수 있음.

    bool isPrime[n - m + 1] = { false };

    for (int i = m; i &lt;= n; i++) {
        if (isPrime[i - m]) continue;

        bool flag = true;
        for (int j = 2; j * j &lt;= i; j++) {
            if (i % j == 0) {
                flag = false;
                break;
            }
        }

        if (flag) {
            for (int k = i; k &lt;= n; k *= i) {
                isPrime[k - m] = false; // 소수가 아님
            }
        }
    }

    for (int i = 0; i &lt;= n - m; i++) {
        if(!isPrime[i]) continue;
        cout &lt;&lt; isPrime[i] &lt;&lt; &quot;\n&quot;;
    }

    return 0;
}</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[#5 1929 소수 구하기]]></title>
            <link>https://velog.io/@ponyo_/5-1929-%EC%86%8C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@ponyo_/5-1929-%EC%86%8C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 23 Sep 2025 23:35:09 GMT</pubDate>
            <description><![CDATA[<p>음... 1트만에 성공했는데 거의 꼴등 했다...</p>
<p>어제 이 문제를 분석하면서</p>
<ol>
<li>소수 판별과정에서 제곱근까지만 판별한다.</li>
<li>소수의 배수는 소수 판별에서 제외한다.</li>
</ol>
<p>2개가 핵심 키 포인트라고 강조했는데</p>
<p>먼저 1번만 대충 구현하고 제출 해봤는데</p>
<p>바로 통과 됐다.</p>
<h1 id="1차-제출">1차 제출</h1>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(void) {
    int m, n;
    cin &gt;&gt; m &gt;&gt; n;

    if (m == 1) m = 2;

    for (int i = m; i &lt;= n; i++) {

        bool flag = true;
        for (int j = 2; j * j &lt;= i; j++) {
            if(i % j == 0) {
                flag = false;
                break;
            }
        }

        if (flag) {
            cout &lt;&lt; i &lt;&lt; endl;
        }
    }

    return 0;
}</code></pre>
<p>아무래도 이대로 끝내긴 아쉬워서 내일 2번을 구현을 꼭 해봐야겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[#4 코테준비 4일차]]></title>
            <link>https://velog.io/@ponyo_/4-%EC%BD%94%ED%85%8C%EC%A4%80%EB%B9%84-4%EC%9D%BC%EC%B0%A8</link>
            <guid>https://velog.io/@ponyo_/4-%EC%BD%94%ED%85%8C%EC%A4%80%EB%B9%84-4%EC%9D%BC%EC%B0%A8</guid>
            <pubDate>Mon, 22 Sep 2025 23:27:46 GMT</pubDate>
            <description><![CDATA[<p><a href="http://acmicpc.net/problem/1929">http://acmicpc.net/problem/1929</a></p>
<p>1929 소수 구하기</p>
<h1 id="문제-분석">문제 분석</h1>
<p>(1 ≤ M ≤ N ≤ 1,000,000) </p>
<p>M이상, N이하의 숫자의 모든 소수를 구하기</p>
<p>이거 보니까.</p>
<p>어제 풀었던 다음 소수 문제에서 <strong>해당 숫자의 제곱근까지만 소수를 판별</strong>하고, 로직 그대로 사용하면 풀릴것 같은데??</p>
<p>오 근데,
범위가 주어진 케이스라서... 2는 소수야 -&gt; 근데 2의 배수 4, 8, 10, 12 --- 는 소수가 아니니까 이것들을 제외하는 로직도 있어야 하겠지??
<strong>에라토스테네스의 체</strong> 라는건데
<a href="https://velog.io/@changhee09/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%86%8C%EC%88%98%EC%9D%98-%ED%8C%90%EB%B3%84-%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98-%EC%B2%B4">참고 블로그</a>를 보면 메모리 할당이 많아져서 보통 N이 1,000,000 이하인 경우만 이 방식으로 해결한다고 하는데 혼자 검증해보면 좋을듯.</p>
<h1 id="결론">결론</h1>
<ol>
<li>해당 숫자의 제곱근까지만 소수 판별</li>
<li>소수로 판정된 수의 배수들은 미리 필터링</li>
</ol>
<p>2가지가 핵심인데...</p>
<p>오늘 아침밥 안 먹으면 아마 영양실조로 숨쉰채 발견이라 밥좀 먹을게요
:&gt;</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[#3 4134 다음 소수]]></title>
            <link>https://velog.io/@ponyo_/4134-%EB%8B%A4%EC%9D%8C-%EC%86%8C%EC%88%98</link>
            <guid>https://velog.io/@ponyo_/4134-%EB%8B%A4%EC%9D%8C-%EC%86%8C%EC%88%98</guid>
            <pubDate>Sun, 21 Sep 2025 23:41:02 GMT</pubDate>
            <description><![CDATA[<p>역시나 시간초과</p>
<h1 id="1차-시도">1차 시도</h1>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

bool f(unsigned int n){
    unsigned int x = n - 1;

    while(x &gt; 1){
        if(n % x == 0) return false;
        else x--;
    }

    return true;
}

int main(void) {
    int t = 0;
    cin &gt;&gt; t;

    for(int i = 0; i &lt; t; i++){
        unsigned int n;
        cin &gt;&gt; n;

        while(true){
            if(f(n)) break;
            n++;
        }

        if(n &lt; 2) n = 2;
        cout &lt;&lt; n &lt;&lt; endl;
    }

    return 0;
}</code></pre>
<p><img src="https://velog.velcdn.com/images/ponyo_/post/afbd7172-a045-45d6-ae92-1dd5629fdc89/image.png" alt=""></p>
<p>원래 이정도 난이도면 엄청 쉽게 푸는데.... 너무 오랜만에 잡으니까 감을 잃어버렸네요.</p>
<h2 id="시간초과-솔루션">시간초과 솔루션</h2>
<h3 id="1-소수-판별-순서변경">1. 소수 판별 순서변경</h3>
<p>일단 n이 주워지면 100일때 99부터 나눠보면서 내려가는게 아니라 2부터 나눠서 소수인지 판별하는게 좀더 빠르게 나오지 않을까?</p>
<pre><code class="language-cpp">bool f(unsigned int n){
    unsigned int x = 2;

    while(x &lt; n){
        if(n % x == 0) return false;
        else x++;
    }

    return true;
}</code></pre>
<p>음 해결안됨.</p>
<h3 id="2-음-소수인지-아닌지를-메모제이션">2. 음 소수인지 아닌지를 메모제이션?</h3>
<p>알고리즘 책에서 봤던거 같은데... 중복 연산을 피하기 위해서 메모제이션 해서 검사를 통과 시키면 될 것 같은데..</p>
<p>시간 부족해서 구현 안 함.</p>
<h3 id="3-음-소수에-배수를-곱하면-그-수들은-소수가-아니라는-그런-내용이-있었던거-같은데">3. 음 소수에 배수를 곱하면 그 수들은 소수가 아니라는 그런 내용이 있었던거 같은데...</h3>
<h1 id="정답-찾아본-결과">정답 찾아본 결과.</h1>
<p><strong>n의 값에(입력 값) 제곱근까지만(소수를 계산할 때) 계산하면 풀리는 문제고</strong>,</p>
<p>입력이 0과 1도 포함이라서 여기서 실수가 많이 나오는 것 같은데..
나는  if(n &lt; 2) n = 2; 이 형식으로 미리 해결을 했어서 시간 초과만 나왔던것 같다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[#2 4134 다음 소수]]></title>
            <link>https://velog.io/@ponyo_/2-4134-%EB%8B%A4%EC%9D%8C-%EC%86%8C%EC%88%98</link>
            <guid>https://velog.io/@ponyo_/2-4134-%EB%8B%A4%EC%9D%8C-%EC%86%8C%EC%88%98</guid>
            <pubDate>Thu, 18 Sep 2025 23:45:32 GMT</pubDate>
            <description><![CDATA[<p> 4 x 10의 9승 만큼 입력값이 주어진다는건 1,000,000,000 * 4 이면 4억까지의 정수 입력값이 주어지는건데 그러면 일반 자료형 int는 내가 알기론 21억정도 까지라서 <del>그냥 써도됨.</del>
 unsigned int 사용하면 될 듯.</p>
<p>오랜만에 알고리즘 문제를 풀어서 글씨가 눈에 안들어왔다</p>
<h2 id="오랜만에-봐서-헷갈린-문장들">오랜만에 봐서 헷갈린 문장들</h2>
<p><strong>&quot;첫번째 줄에 테스트케이스가 주어진다&quot;</strong></p>
<p>입력값이 몇번 들어올지 알려준다라고 바로 해석이 됐어야 했는데 그냥 바로 해결해야할 자연수가 주어진다라고 이해해가지고 시간이 좀 걸렸다.</p>
<p><strong>&quot;n보다 크거나 같은 소수 중 가장 작은 소수</strong></p>
<p>이거 문장은 그러니까 100이라면 100부터 101... 102... 103.... 이렇게 쭉 나가면서 소수인 수가 나오면 그때 출력하라는 소리였다.</p>
<p>헷갈린 포인트는 아니 n이 소수가 아닐 수도 있고 소수는 1과 자기자신을 제외한 수로 나누었을때 나누어 떨어지지 않는 수를 말하는데 </p>
<p>...?</p>
<p>아하</p>
<h2 id="근데-시간안에-못-풀었음">근데 시간안에 못 풀었음</h2>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

bool f(int x){
    int div = 
    while(x &gt; 1){

    }
    return true;
}

int main(void) {
    int t = 0;
    cin &gt;&gt; t;

    for(int i = 0; i &lt; t; i++){
        int n;
        cin &gt;&gt; n;

        while(true){
            int x = n;
            if(f(x)) break;
            x++;
        }
    }

    return 0;
}</code></pre>
<h2 id="근데-아마-이렇게-계속-풀면-시간-초과날듯">근데 아마 이렇게 계속 풀면 시간 초과날듯</h2>
<p>f에다가 x가 소수면 true 소수가 아니면 false를 반환하는거 만들고, 소수면 출력하면 끝나서</p>
<p>이거 내일 이어서 풀어 볼텐데 내일이 아니라 월요일이 될 것 같습니다. :&gt;</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[#1 코딩 테스트 스터디]]></title>
            <link>https://velog.io/@ponyo_/1-%EC%BD%94%EB%94%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%8A%A4%ED%84%B0%EB%94%94</link>
            <guid>https://velog.io/@ponyo_/1-%EC%BD%94%EB%94%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%8A%A4%ED%84%B0%EB%94%94</guid>
            <pubDate>Wed, 17 Sep 2025 23:56:21 GMT</pubDate>
            <description><![CDATA[<p>이거 블로그 하려니까 어색하네요</p>
<p>사실 블로그 일상주제로는 몇번 적어봤는데 일단 잡소리 집어치우고.</p>
<h2 id="코딩테스트-준비-계획">코딩테스트 준비 계획</h2>
<p>제가 원래 코테를 준비했을때 백준에서 &quot;단계별로 풀어보기&quot;를 순서대로 문제를 풀어나갔어요
&quot;약수, 배수와 소수 2&quot;에서 5번 문제부터 풀어나가면 되는데
C++ 기반으로 코딩테스트 문제 풀어나가겠습니다.</p>
<p>알고리즘과 자료구조 책 펴봤는데, 일단 백준 하면서 그 단계에 필요한 내용을 먼저 배운 뒤
다음으로 문제를 푸는 형식으로 진행하겠습니다.</p>
<h2 id="4134번-다음-소수">4134번: 다음 소수</h2>
<blockquote>
<p>수학
브루트포스 알고리즘
정수론
소수 판정</p>
</blockquote>
<p>아직 문제는 안읽고 필요한 알고리즘만 빼서 봤는데 브루트포스 알고리즘이 전체를 다 조회하러 다니는 그런 알고리즘으로 알고 있었는데 찾아 보니까 얼추 맞네요</p>
<p>이제 브루투포스 안에서 깊이탐색(DFS)할거냐 너비우선탐색(BFS)할거냐 나뉘는거 같습니다.</p>
<p>근데 DFS, BFS 탐색 알고리즘 공부한적이 없어서 고민 되는데</p>
<p>미리 문제를 잠깐 봐볼게요. ㅋㅋ</p>
<p>음 DFS, BFS 필요 없고 그냥 무식하게 풀어가도 괜찮은데 이제 시간 초과나 메모리 초과 되면 공부하는 것으로 하겠습니다.</p>
<p>일단 소수판정 이거 다시 한번보고 문제를 풀어봐야겠네요.</p>
]]></description>
        </item>
    </channel>
</rss>