<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>hjin_310.log</title>
        <link>https://velog.io/</link>
        <description>HYU🦁 Information System 22✨</description>
        <lastBuildDate>Sun, 21 May 2023 12:35:05 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>hjin_310.log</title>
            <url>https://velog.velcdn.com/images/hjin_310/profile/2cc4cdc4-ba46-4c20-a00f-6b66076114ec/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. hjin_310.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/hjin_310" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Bakjoon 2108. 통계학]]></title>
            <link>https://velog.io/@hjin_310/Bakjoon-2108.-%ED%86%B5%EA%B3%84%ED%95%99</link>
            <guid>https://velog.io/@hjin_310/Bakjoon-2108.-%ED%86%B5%EA%B3%84%ED%95%99</guid>
            <pubDate>Sun, 21 May 2023 12:35:05 GMT</pubDate>
            <description><![CDATA[<p>오랜만에 돌아온 벨로그 ^-^ </p>
<p><a href="https://www.acmicpc.net/problem/2108">https://www.acmicpc.net/problem/2108</a></p>
<h3 id="문제">[문제]</h3>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/85f12444-2b30-4a2c-849e-4b4e7a3d21bd/image.png" alt=""></p>
<h3 id="풀이과정">[풀이과정]</h3>
<ol>
<li>이번에 스터디를 하면서 배운것인데, import sys를 통해 입력을 input 대신 sys.stdin.readline()을 이용하면 시간을 절약할 수 있다. 그래서 import sys를 하여 앞으로의 input은 모두 sys.stdin.readline()을 통해 코딩 할 것이다.</li>
<li>수를 받아와야하는데, 정렬의 문제도 발생하게 되므로 list를 통해 구현해야 한다.</li>
<li>다른 부분은 딱히 건들 것이 없는데, 최빈값이 가장 고난이도로 보인다. 최빈값은 list를 하나 더 만들어서 가장 많이 존재하는 값을 count를 통해 구한 뒤 리스트에 append해주는 방식으로 구현하려 했으나, 이 방법은 시간에 자유롭지 못하다.</li>
<li>따라서 collections 모듈을 이용해 Counter의 most_common 함수를 이용하여 문제를 해결했다.</li>
</ol>
<h3 id="최종코드">[최종코드]</h3>
<pre><code class="language-py">import sys
from collections import Counter
s=int(sys.stdin.readline())
lista=[]

for i in range(s):
    lista.append(int(sys.stdin.readline()))



print(round(sum(lista)/s))
lista.sort()
print(lista[int(s/2)])


count=Counter(lista)
order=count.most_common()
max_frequency=order[0][1]

fq=[]
for i in order:
    if i[1] == max_frequency:
        fq.append(i[0])

if len(fq)==1:
    print(fq[0])
else:
    print(sorted(fq)[1])

print(lista[-1]-lista[0])

</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 1547]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-1547</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-1547</guid>
            <pubDate>Fri, 14 Apr 2023 07:58:05 GMT</pubDate>
            <description><![CDATA[<h2 id="문제">[문제]</h2>
<p><a href="https://www.acmicpc.net/problem/1547">https://www.acmicpc.net/problem/1547</a></p>
<h2 id="풀이">[풀이]</h2>
<p>공의 위치를 판별하는 문제~
처음에 실행할 횟수의 정수를 입력받고, 
그 수동안 x,y를 입력받고 공이 있는 수가 입력되면 공의 위치를 갱신해주면 된다.</p>
<h2 id="최종코드">[최종코드]</h2>
<pre><code class="language-py">M=int(input())
ball=1
for i in range(M):
    x,y=map(int,input().split())
    if x==ball:
        ball=y
    elif y==ball:
        ball=x
print(ball)
</code></pre>
<h2 id="돌아보며">[돌아보며]</h2>
<p>백준 회식 합시다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 1920 수 찾기]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-1920-%EC%88%98-%EC%B0%BE%EA%B8%B0</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-1920-%EC%88%98-%EC%B0%BE%EA%B8%B0</guid>
            <pubDate>Sun, 09 Apr 2023 07:40:31 GMT</pubDate>
            <description><![CDATA[<h2 id="문제">[문제]</h2>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/d5247225-6ce4-483c-9cf4-a887d3fc685f/image.png" alt=""></p>
<p><a href="https://www.acmicpc.net/problem/1920">https://www.acmicpc.net/problem/1920</a></p>
<h2 id="풀이">[풀이]</h2>
<p>이 문제는 수가 존재하는지 판별하는 문제로, 얼핏 보기에는 list를 둗개 만들어서 존재하는가를 확인하면 될것같아 보인다.</p>
<pre><code class="language-py">import sys
n=int(input())
slist=list(map(int,sys.stdin.readline().split()))

m=int(input())
nlist=list(map(int,sys.stdin.readline().split()))

for i in nlist:
    if i in slist:
        print(1)
    else:
        print(0)</code></pre>
<p>그래서 이렇게 list를 만들어준 뒤 in이라는 keyword를 사용해 존재하는가 여부를 물어보는 작업을 해봤다.
여기서 import sys를 통해 sys 모듈을 이용하고
sys.stdin.readline().split()을 통해 조금 더 빠르게 input을 받아올 수 있게 되었다.
하지만 이럼에도 불구하고 시간초과 문제가 발생하였다.</p>
<p>이에 나는,,, 결국 인터넷을 찾아봤고, 새로운 set이라는 개념을 알게되었다.</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/73c8232a-2d4e-4768-ad80-edb8313fbe7a/image.png" alt="">
출처 : 점프투파이썬</p>
<p>set을 이용하면 list를 이용할 때보다 탐색 시간이 줄어든다고 한다. (신기하당)</p>
<h2 id="최종코드">[최종코드]</h2>
<pre><code class="language-py">import sys
n=int(input())
slist=set(map(int,sys.stdin.readline().split()))

m=int(input())
nlist=list(map(int,sys.stdin.readline().split()))

for i in nlist:
    if i in slist:
        print(1)
    else:
        print(0)
</code></pre>
<h2 id="돌아보며">[돌아보며]</h2>
<p>set은 위대하다,,,!
OS 공부하다가 백준푸니까 너무 재밌었는데,,,
역시 시험기간은 위대하다 ,,!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 10870. 피보나치 수 5]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-10870.-%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98-%EC%88%98-5</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-10870.-%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98-%EC%88%98-5</guid>
            <pubDate>Sun, 02 Apr 2023 12:11:22 GMT</pubDate>
            <description><![CDATA[<h2 id="문제">[문제]</h2>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/02d233b7-18a8-407c-af8d-a92e1f21fdf9/image.png" alt=""></p>
<p><a href="https://www.acmicpc.net/problem/10870">https://www.acmicpc.net/problem/10870</a></p>
<h2 id="풀이">[풀이]</h2>
<p>전형적인 피보나치 수 문제다.
f1 = 0, f2 = 1로 다음 수는 앞의 두 수를 합한 것과 같다.
따라서 f3 = f1 + f2일 것이고, f4 = f2 + f3일 것이다.
따라서 이렇게 코드의 경우를 나누어 주면 
f1이면 0을 출력, f2는 1을 출력, 이 이상의 경우에 대해서는 이전 두 수를 더하는 행위를 반복해서 f3에 할당해주면 된다. 이후 f1과 f2로 뒤의 수를 하나씩 밀어버리면 피보나치 수열을 반복할 수 있다.</p>
<h2 id="최종코드">[최종코드]</h2>
<pre><code class="language-py">f1=0
f2=1
num=int(input())
if num==0:
    print(f1)
elif num==1:
    print(f2)
else:
    for i in range(num-1):
        f3=f1+f2
        f1=f2
        f2=f3
    print(f3)
</code></pre>
<h2 id="돌아보며">[돌아보며]</h2>
<p>이번주는 벨로그 적었당..ㅎㅎ
저 진짜 꾸준히 풀고 있슴다 !~!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 2530 인공지능 시계]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-2530-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%8B%9C%EA%B3%84</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-2530-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%8B%9C%EA%B3%84</guid>
            <pubDate>Sun, 19 Mar 2023 06:37:56 GMT</pubDate>
            <description><![CDATA[<h2 id="문제">[문제]</h2>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/cc95506c-4bf3-41b0-a5d5-c14de8753c27/image.png" alt=""></p>
<p><a href="https://www.acmicpc.net/problem/2530">https://www.acmicpc.net/problem/2530</a></p>
<h2 id="풀이">[풀이]</h2>
<p>시, 분, 초를 입력받은 뒤 요리를 하는데 필요한 시간을 다음줄에 입력받아서
시, 분, 초 연산을 해주면 된다.</p>
<p>이때 초부터 시작해서 분, 초는 60으로 나누고, 시는 24로 나누어야 한다는 점을 주의하자.</p>
<h2 id="최종코드">[최종코드]</h2>
<pre><code class="language-py">x,y,z=map(int,input().split())
time=int(input())

z=z+time
if(z&gt;=60):
    time=z//60
    z=z%60
    y=y+time

if(y&gt;=60):
    time=y//60
    y=y%60
    x=x+time

if(x&gt;=24):
    x=x%24

print(x,y,z)</code></pre>
<h2 id="돌아보며">[돌아보며]</h2>
<p>휴.. 언제 실버 탈출하지....</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 13866 팀 나누기]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-13866-%ED%8C%80-%EB%82%98%EB%88%84%EA%B8%B0</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-13866-%ED%8C%80-%EB%82%98%EB%88%84%EA%B8%B0</guid>
            <pubDate>Sat, 25 Feb 2023 13:32:32 GMT</pubDate>
            <description><![CDATA[<h2 id="문제">[문제]</h2>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/b9200a5c-c79d-4035-957a-bfbcfeb4231b/image.png" alt=""></p>
<h2 id="풀이">[풀이]</h2>
<p>가장 차이가 작게 팀을 만든다는 것은 크기가 큰 순서대로 1,2,3,4가 있을 때, 1+4와 2+3으로 팀을 나눈다는 뜻이다.
그러므로 나는 가장 큰 것과 가장 작은 것을 a와 d에 오도록 비교 연산식을 수행한 뒤, a+d와 b+c의 차를 구했다.</p>
<p>그런데 가장 중요한 것은 절댓값 취하기 !!</p>
<h2 id="최종코드">[최종코드]</h2>
<pre><code class="language-py">a,b,c,d=map(int,input().split())
if(a&lt;b):
    a,b=b,a
if(b&lt;c):
    b,c=c,b
if(c&lt;d):
    c,d=d,c
if(b&lt;c):
    b,c=c,b
if(c&lt;d):
    c,d=d,c
if(a&lt;b):
    a,b=b,a
res=a+d-c-b
if(res&lt;0):
    res=0-res
print(res)</code></pre>
<h2 id="돌아보며">[돌아보며]</h2>
<p>열심히 스트릭 채우고 있었는데 월요일날 미터가서 다 깨져버렷다ㅠㅠ
일본 여행갔을때도 풀어서 채운 스트릭인데...
슬프지만 남은 스트릭이라도 잘 관리하자 ^^
오히려 잘된걸지도.. 하루 한문제 풀겟다고 맨날 브론즈 문제나 찾아서 풀고있고...ㅋㅋㅋ</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 2754 학점계산]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-2754-%ED%95%99%EC%A0%90%EA%B3%84%EC%82%B0</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-2754-%ED%95%99%EC%A0%90%EA%B3%84%EC%82%B0</guid>
            <pubDate>Sat, 18 Feb 2023 14:18:19 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">[문제]</h3>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/4bb5761c-f1c9-4dd3-811c-25e221f6878b/image.png" alt=""></p>
<h3 id="풀이">[풀이]</h3>
<p>이 문제는 단순히 if-else문을 잘 쓰면 된다.
물론 여기서 코드를 더 간단히 만들 수도 있다.</p>
<h3 id="최종코드">[최종코드]</h3>
<pre><code class="language-py">
x=input()
if x==&#39;A+&#39;:
    print(4.3)
elif x==&#39;A0&#39;:
    print(4.0)
elif x==&#39;A-&#39;:
    print(3.7)
elif x==&#39;B+&#39;:
    print(3.3)
elif x==&#39;B0&#39;:
    print(3.0)
elif x==&#39;B-&#39;:
    print(2.7)
elif x==&#39;C+&#39;:
    print(2.3)
elif x==&#39;C0&#39;:
    print(2.0)
elif x==&#39;C-&#39;:
    print(1.7)
elif x==&#39;D+&#39;:
    print(1.3)
elif x==&#39;D0&#39;:
    print(1.0)
elif x==&#39;D-&#39;:
    print(0.7)
elif x==&#39;F&#39;:
    print(0.0)
</code></pre>
<h3 id="돌아보며">[돌아보며]</h3>
<p>위의 코드를 자세히 보면 알파벳과 +/0/- 중 하나의 기호로 구성된 것을 알 수 있다.
그렇기때문에 A에는 3, B에는 2, C에는 1, D와 F에는 0을 부여한 뒤 +라면 1.3을, 0이라면 1.0을, -라면 0.7을 더하는 식으로 코드를 만들 수 있을 것 같다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 11729 하노이 탑 이동 순서]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-11729-%ED%95%98%EB%85%B8%EC%9D%B4-%ED%83%91-%EC%9D%B4%EB%8F%99-%EC%88%9C%EC%84%9C</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-11729-%ED%95%98%EB%85%B8%EC%9D%B4-%ED%83%91-%EC%9D%B4%EB%8F%99-%EC%88%9C%EC%84%9C</guid>
            <pubDate>Fri, 10 Feb 2023 11:28:23 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">[문제]</h3>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/6a6f3278-7115-4c65-85e1-76b3d34fe672/image.png" alt=""></p>
<h3 id="풀이">[풀이]</h3>
<p>해당 문제는 하노이탑 문제로, 아주 유명한 <strong>재귀함수 문제</strong>이다.
작년, 자료구조 시간에 Stack으로 풀 수 있는 문제의 예시로 공부한 적 있는데,
재밌는 점은 LIFO의 특징을 가지는 Stack으로는 풀 수 있지만  FIFO의 특징을 가지는 Queue로는 풀 수 없다는 점 ! 이건 그림을 보면 바로 이해가 되는데, 당연하게도 제일 위에 있는 원부터 꺼내야하기 때문이다.</p>
<p>하노이 코드는 해당 코드를 암기하는 것이 가장 편한 방법이다.</p>
<pre><code class="language-cpp">void hanoi(int n, int fro, int by, int to))
{
    if (n == 1)
    {
            printf(&quot;%d %d\n&quot;, fro, to);
            return;
    }
    else
    {
        hanoi(n - 1, fro, to, by);
        {
            printf(&quot;%d %d\n&quot;, fro, to);
        }
        hanoi(n - 1, by, fro, to);
        return;
    }
}</code></pre>
<p>내가 이 코드를 이해하는 방식은 다음과 같다.
<strong>1. 출발점에서 시작해서 도착지를 거쳐 보조축으로 !
2. 보조축에서 시작해서 출발점을 거쳐 도착지로 !</strong></p>
<p>나는 이 두 문장만 기억하면 함수의 매개변수의 위치가 달라지더라도
헷갈리지 않고 쉽게 코드를 만들어낼 수 있더라 !</p>
<p>나는 이 코드를 작성할 때, cstdio를 사용했는데 그 이유는 cin/cout보다 scanf/printf가 더 빠르기 때문 ! 이전에 비슷한 하노이탑 문제를 시도했는데 시간초과가 떠서 수정했고, 이 문제의 코드도 똑같이 반영해서 cstudio를 사용해 scanf/printf로 코드를 짜보았다.</p>
<h3 id="최종코드">[최종코드]</h3>
<pre><code class="language-cpp">#include &lt;cstdio&gt;
void hanoi(int n, int fro, int by, int to))
{
    if (n == 1)
    {
            printf(&quot;%d %d\n&quot;, fro, to);
            return;
    }
    else
    {
        hanoi(n - 1, fro, to, by);
        {
            printf(&quot;%d %d\n&quot;, fro, to);
        }
        hanoi(n - 1, by, fro, to);
        return;
    }
}

int main(void)
{
    int n;
    int num=1;
    int idx = 1;
    scanf(&quot;%d&quot;, &amp;n);


    printf(&quot;%d\n&quot;,(1&lt;&lt;n)-1);
    hanoi(n, 1, 2, 3);
    return 0;
}
</code></pre>
<h3 id="돌아보며">[돌아보며]</h3>
<p>이 문제 푼지 오래됐는데 풀자마자 안하니까 그때랑은 또 느낌이 다른네.
담부턴 문제 풀자마자 바로 코드 리뷰, 벨로그 작성해야겠다.</p>
<p>요즘엔 시간초과랑 답이 나오는데도 틀렸습니다가 떠서 쉬운 문제를 꾸준히 풀고있는데...
이제 시간 여유나니까 여러 자료 보고 공부하면서 다시 도전해봐야겟당 휴 ㅠㅠ</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 15552 빠른 A+B]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-15552-%EB%B9%A0%EB%A5%B8-AB</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-15552-%EB%B9%A0%EB%A5%B8-AB</guid>
            <pubDate>Wed, 01 Feb 2023 14:47:49 GMT</pubDate>
            <description><![CDATA[<p>요즘 백준을 풀면 시간초과 문제로 나날이 스트레스를 받고 있었는데,
시간초과와 관련된 좋은 문제가 있어서 풀어보았다.</p>
<h3 id="문제">[문제]</h3>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/8e943938-c694-4c4e-a4bb-0f60fcd7d2e4/image.png" alt="">
<a href="https://www.acmicpc.net/problem/15552">https://www.acmicpc.net/problem/15552</a></p>
<h3 id="풀이">[풀이]</h3>
<ul>
<li><p>일반적으로 c++에서 <strong>cin/cout이 scanf/printf보다 속도가 느린다</strong>고 한다.</p>
</li>
<li><p><strong>endl을 이용하는 것보다, &#39;\n&#39;을 통해 줄바꿈을 하는 것이 빠르다</strong>고 한다.
(endl은 개행문자를 출력할 뿐 아니라 출력 버퍼를 비우는 역할까지 하기때문에 출력 한 뒤 화면에 바로 보이게 할 수 있다. 하지만 이렇게 버퍼를 비우는 작업이 매우 느리다고 한다. 그래서 endl을 &#39;\n&#39;으로 바꾸어주어 시간 향상을 이루어내는 것이라고 한다.)</p>
</li>
<li><p><strong>cin.tie(NULL)</strong>은 cin과 cout의 묶음을 풀어 준다. 기본적으로 cin으로 읽을 때 먼저 출력 버퍼를 비운다. 입력과 풀력을 여러 번 번갈아서 반복해야 하는 경우 필수적이라고 한다.</p>
</li>
<li><p><strong>ios_base::sync_with_stdio(false)</strong>는 C와 C++의 버퍼를 분리한다. 이것을 사용하면 cin/cout이 더이상 stdin/stdout과 맞춰 줄 필요가 없으므로 속도가 빨라진다고 한다. 단, 버퍼가 분리되었기때문에 cin과 scanf, gets, getchar등을 같이 사용하면 안되고, cout과 printf, puts, putchar등을 같이 사용하면 안 된다고 한다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/6d0ff0f7-d520-4cbb-99d5-3b91a3322971/image.png" alt="">
(출처 : <a href="https://www.acmicpc.net/board/view/22716">https://www.acmicpc.net/board/view/22716</a>)</p>
<p>이 사이트에 멋진분께서 잘 정리해주셨다.</p>
<h3 id="최종코드">[최종코드]</h3>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(void)
{
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);

    int tc;
    cin&gt;&gt;tc;

    for (int i=0; i&lt;tc; i++){
        int x, y;
        cin&gt;&gt;x&gt;&gt;y;
        cout&lt;&lt;x+y&lt;&lt;&#39;\n&#39;;
    }
    return 0;
}</code></pre>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/4e710d1d-4f0c-4375-8837-10b239640bbe/image.png" alt=""></p>
<h3 id="돌아보며">[돌아보며]</h3>
<p>결과가 정말 신기하다.
여태까지는 하나하나 입력이 들어가는대로 출력을 했는데,
이 코드에서는 입력을 모두 받은 뒤 출력을 진행했다.</p>
<p>작년에 데이터구조를 배우면서 지나언니가 버퍼에대해 설명해줬는데
그게 이렇게 쓰이는구나 ! 
덕분에 이해 쏙쏙이다.</p>
<p>아직 알아야하는게 많구나...
파 이 팅 !ㅠ</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 2164 카드2]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-2164-%EC%B9%B4%EB%93%9C2</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-2164-%EC%B9%B4%EB%93%9C2</guid>
            <pubDate>Sun, 29 Jan 2023 05:17:14 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">[문제]</h3>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/4d13b549-3ef7-48cb-81b8-961fa48c83eb/image.png" alt=""></p>
<h3 id="풀이">[풀이]</h3>
<p>가장 위에 있는 카드를 pop하고, push를 할 때에느 가장 아래에 있는 카드 밑으로 하기때문에 자료구조 queue가 이번 문제를 푸는 열쇠임을 알 수 있다. </p>
<p>하지만 나는 만약의 경우에 대비해 시간 복잡도면에서 보다 효율적인 deque를 불러와 문제를 풀었다.</p>
<p>deque은 push와 pop이 위, 아래 모든 곳에서 가능하다. </p>
<p>먼저, deque를 파이썬에서 이용하기 위해서는 이를 import해와야한다.
이때 주의할 점은, 
deque는 collections에서 import 해야하며,
그냥 <strong>_import deque이 아닌, from collections import deque를 해야한다.</strong></p>
<p>입력받은 수만큼 deque에 하나씩 저장해주고, 문제에서 주어진 과정을 반복한다.
<strong>1. 가장 위에 있는 카드를 pop()
2. 가장 위에 있는 카드를 pop()한 뒤, 맨 아래에 push()</strong></p>
<p><strong>이 과정에서 카드가 하나만 남게 된다면 이 과정을 break로 빠져나와 그 카드를 출력해주면 된다.</strong></p>
<h3 id="최종코드">[최종코드]</h3>
<pre><code class="language-py">from collections import deque

que=deque()

num=int(input())
for i in range(num):
    que.append(i+1)


while (1):
    if(len(que)==1):
        break
    que.popleft()

    if(len(que)==1):
        break
    x=que.popleft()
    que.append(x)

print(que[0])</code></pre>
<h3 id="돌아보며">[돌아보며]</h3>
<p>첫 시도때에는 카드가 하나(1)만 주어졌을때의 경우를 고려하지 않아서 런타임에러가 발생하였다. 
이처럼 내가 작성한 코드에 있어서 예외 사항까지 더 신경써야겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 2839 설탕 배달]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-2839-%EC%84%A4%ED%83%95-%EB%B0%B0%EB%8B%AC</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-2839-%EC%84%A4%ED%83%95-%EB%B0%B0%EB%8B%AC</guid>
            <pubDate>Sat, 28 Jan 2023 11:10:17 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">[문제]</h3>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/11c82344-2b74-4a79-b242-9c559c211ead/image.png" alt="">
<img src="https://velog.velcdn.com/images/hjin_310/post/99458d28-db8a-496f-be5b-529bb065f4b9/image.png" alt=""></p>
<h3 id="풀이">[풀이]</h3>
<p>3과 5를 가지고 수를 구성하는데, 가장 적은 수로 만들기 위해서는 <strong>5를 최대한 많이 사용</strong>해야한다. </p>
<p>수가 주어졌을 때, 3,6,9,12처럼 바로 나누어떨어지는 경우를 제외하고 나머지가 5보다 작을때까지 계속해서 입력받은 수에서 5를 빼준다.</p>
<p>만약 이 수가 바로 3으로 나누어 떨어진다면 남은 3의 개수를 세주면 되는데, 그렇지 않다면 5를 더하고 다시 한 번 3으로 나누어떨어지는가를 본다.</p>
<p>이 과정을 지속하다 처음 입력한 수와 같은 수가 돼버린다면, 만들 수 없는 수로, -1을 출력해준다.</p>
<p>그리고 총 수를 출력해주면 된다.</p>
<h3 id="최종코드">[최종코드]</h3>
<pre><code class="language-py">num=int(input())
x=num
cnt=0
idx=1


while(idx) :
    if(num==3):
        break
    if(num==6):
        break
    if(num==9):
        break
    if(num==12):
        break

    cnt=cnt+1
    num=num-5
    if(num&lt;5):
        idx=0
idx=1

msg=0

while (idx):
    if(num%3==0):
        idx=0
        while(num):
            num=num-3
            cnt=cnt+1
        break
    num=num+5
    cnt=cnt-1
    if(num==x):
        idx=0
        msg=-1

if(msg!=-1):
    print(cnt)

elif(msg==-1):
    print(msg)
</code></pre>
<h3 id="돌아보며">[돌아보며]</h3>
<p>코드 너무너무 길다
그래서 다른 사람들 코드를 참고해봤다 !</p>
<pre><code class="language-py">n = int(input())
print(-(n in [4, 7]) or n-2*n//5*2)</code></pre>
<p>이건 아직 잘 모르겠다..</p>
<pre><code class="language-py">n = int(input())
cnt = 0

if n % 5 == 0:
    print(n // 5)
else:
    while True:
        if n - 5 &lt; 0 and n - 3 &lt; 0:
            print(-1)
            break
        else:
            n -= 3
            cnt += 1
            if n % 5 == 0:
                print(cnt + (n // 5))
                break</code></pre>
<p>일단, 5로 나누어떨어지면 바로 출력하면 된다.
그렇지 않다면, n은 3을 빼고 그 횟수를 cnt로 카운팅한다. 그리고 만약 5로 나누어 떨어질 때, 3의 횟수와 5로 나눈 몫을 더해 출력하면 된다.
이 과정을 반복했는데도 나누어떨어지지 않는다면 가능한 경우가 없는 것. 그러므로 -1을 출력한다.</p>
<p><strong>내 코드</strong>는 최대한 5를 빼준다음에 다시 올라오는 형식으로 카운팅하는 것인데,
<strong>이 코드</strong>는 처음 숫자에서 3을 빼가면서 내려가는 형식으로 카운팅하는 것이다.</p>
<p>확실히 내가 처음에 짠 코드보다 이게 더 효율적인 듯 ! (if로 예외처리 해줄 필요가 없어성..)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 1436 영화감독 숌]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-1436-%EC%98%81%ED%99%94%EA%B0%90%EB%8F%85-%EC%88%8C</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-1436-%EC%98%81%ED%99%94%EA%B0%90%EB%8F%85-%EC%88%8C</guid>
            <pubDate>Fri, 13 Jan 2023 11:37:01 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">[문제]</h3>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/c44b135b-812a-4118-98d0-fd70e6912c42/image.png" alt=""> <img src="https://velog.velcdn.com/images/hjin_310/post/c06680a3-ecc5-4727-85ea-9d13987a7432/image.png" alt=""></p>
<p>못말리는 어린양 숀 !</p>
<h3 id="풀이">[풀이]</h3>
<p><strong>666이 연속</strong>으로 들어가는 수를 <strong>작은 수부터 탐색</strong>하면 되는 문제이다.
C++로 코드를 짜기엔 수를 앞뒤로 생각해야하기때문에 복잡해져서
이번엔 파이썬으로 코딩을 해보았다.</p>
<p>파이썬에는 in이라는 간편한 기능이 있기때문에 이처럼 유무를 판별하기에 간편하다.
비슷한 문제로는, 369게임 코드가 있다.</p>
<p>지난번에 파이썬을 몰랐을 때, 369게임 코드를 작성할땐 너무 복잡해졌었는데
파이썬으로 풀면 매우 간단한 문제였다.</p>
<p><strong>고려할 점</strong>은,</p>
<ol>
<li><strong>&#39;666&#39;이 연속</strong>으로 들어있다.</li>
<li>순차적으로 탐색하다 원하는 수를 발견하면 출력한다.</li>
</ol>
<p>이런 코드를 brute force라고 한다.</p>
<h3 id="최종코드">[최종코드]</h3>
<pre><code class="language-py">n=int(input())
cnt=0
num=666
for i in range(1000000000):
    if &#39;666&#39; in str(num):
        cnt+=1
        if(cnt==n):
            print(num)
            break
    num=num+1</code></pre>
<h3 id="돌아보며">[돌아보며]</h3>
<p>이렇게 파이썬으로 하면 정말 간단해지네 !
C++로 코딩하면 어떻게 될지 참고해서 C++도 만들어보았다.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(void){
    int num, t=666, cnt=0; //666부터 counting 시작
    cin&gt;&gt;num; //666부터 start

    while(1){ //break를 통해 while문 빠져나감

        int k=t, a[100], idx=0;

        while(k){
            a[idx] = k%10;
            idx=idx+1; //길이
            k = k/10;
        }

        for(int i=1; i&lt;idx-1; i++){
            if(a[i-1]==6&amp;&amp;a[i]==6&amp;&amp;a[i+1]==6){
                cnt=cnt+1;
                break;
            }
        }
        if(cnt==num){
            cout&lt;&lt;t&lt;&lt;endl;
            break;
        }
        t=t+1; //666부터 차례로 증가
    }
    return 0;
}</code></pre>
<p>이 아이디어도 기억해두자 !</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 10866 덱(Deque)]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-10866-%EB%8D%B1Deque</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-10866-%EB%8D%B1Deque</guid>
            <pubDate>Thu, 12 Jan 2023 15:16:04 GMT</pubDate>
            <description><![CDATA[<p>자료구조 세번째, 덱 !</p>
<h3 id="문제">[문제]</h3>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/ae898ea5-b8bd-4862-a68b-53e303fccc2a/image.png" alt=""><img src="https://velog.velcdn.com/images/hjin_310/post/40114665-2a1b-474d-b7e6-936e9f0a285b/image.png" alt=""></p>
<h3 id="풀이">[풀이]</h3>
<p><strong>덱(Deque)</strong>은 <strong>큐(Queue)와 유사</strong>한 성격을 가지고 있기때문에, Queue를 베이스로 코드를 구현할 수 있다.</p>
<p>Queue와의 다른 점은, </p>
<ol>
<li>FIFO인 Queue와는 달리, <strong>front와 back 모든 곳에서 push, pop이 가능</strong>하다.</li>
<li>front와 back 모두 고려해야한다.</li>
</ol>
<p>덱은 Circular Queue의 형태로 디자인하면 쉽게 구현할 수 있다.
front는 실제 저장정보의 시작점 하나 앞이며, rear은 말 그대로 저장된 정보의 마지막 위치이다.
앞선 queue의 구현에서는 front와 rear가 같으면 empty를 의미했다.
하지만 여기서는 조금 다르다.</p>
<p>front와 rear일 때, 두가지 경우를 생각할 수 있다.</p>
<ol>
<li>empty</li>
<li>full</li>
</ol>
<p>하지만 위의 문제에서는 고려할 필요가 없다. 
이미 충분한 입력가능수만큼 배열을 만들어주었기 때문이다. (10,000)</p>
<p>이 문제를 풀며 실제로 <strong>고려해야할 점</strong>은,</p>
<ol>
<li>front와 rear의 이동</li>
<li>circular의 형태로 구현</li>
<li><strong>front가 0일때의 push, pop / rear가 배열의 마지막 위치일때의 push, pop
=&gt;이는 mod(%)를 이용해 해결할 수 있다.</strong></li>
</ol>
<h3 id="최종코드">[최종코드]</h3>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Deque {
public:
    int deque[10000]={0};
    int size;
    int f;
    int rear;

    Deque(){ // constructor
        size=0;
        f=0;
        rear=0;
    }


    int empty() {
        if(f==rear){
            return 1;
        }
        else return 0;
    }


    void push_front(int data) {
        size+=1;
        if(f==0){
            f=(10000-1);
            deque[(f+1)%10000]=data;
            return;
        }
        else{
            f=f-1;
            deque[(f+1)%10000]=data;
            return;
        }
    }

    void push_back(int data){
        size+=1;
        if(rear==9999){
            rear=(9999+1)%10000;
            deque[rear]=data;
            return;
        }
        else{
            rear=rear+1;
            deque[rear]=data;
            return;
        }
    }

    int pop_front(void){

        if(empty()){
            return -1;
        }
        else{
            size-=1;

            if(f==9999){
                f=(9999+1)%10000;
                return deque[f];
            }
            else{
                f=f+1;
                return deque[f];
            }
        }
    }

    int pop_back(void){
        if(empty()){
            return -1;
        }
        else{
            size-=1;

            if(rear==0){
                rear=9999;
                return deque[(9999+1)%10000];
            }
            else{
                rear=rear-1;
                return deque[rear+1];
            }
        }
    }

    int front(void){
        if(empty()){
            return -1;
        }
        else{
            if(f==9999) return deque[0];
            else return deque[f+1];
        }
    }

    int back(void){
        if(empty()){
            return -1;
        }
        else{
            return deque[rear];
        }
    }



}; //class의 끝에 semi colon 필수 !!


int main (void){
    int N; //test case
    cin&gt;&gt;N;
    Deque d;
    for(int i=0; i&lt;N; i++){
        string msg;
        cin&gt;&gt;msg;
        if(msg==&quot;push_back&quot;){
            int num;
            cin&gt;&gt;num;
            d.push_back(num);
        }

        else if(msg==&quot;push_front&quot;){
            int num;
            cin&gt;&gt;num;
            d.push_front(num);
        }

        else if(msg==&quot;pop_front&quot;){
            cout&lt;&lt;d.pop_front()&lt;&lt;endl;
        }

        else if(msg==&quot;pop_back&quot;){
            cout&lt;&lt;d.pop_back()&lt;&lt;endl;
        }

        else if(msg==&quot;size&quot;){
            cout&lt;&lt;d.size&lt;&lt;endl;
        }

        else if(msg==&quot;front&quot;){
            cout&lt;&lt;d.front()&lt;&lt;endl;
        }

        else if(msg==&quot;back&quot;){
            cout&lt;&lt;d.back()&lt;&lt;endl;
        }
        else if(msg==&quot;empty&quot;){
            cout&lt;&lt;d.empty()&lt;&lt;endl;
        }
    }

    return 0;

      return 0;
}</code></pre><h3 id="돌아보며">[돌아보며]</h3>
<p>circular의 형태로 구조화한 부분이 신선했다. 
앞으로는 늘릴 수 없는 배열의 한계를 극복할 수 있는 적절한 방법으로 보인다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 10845 큐(Queue)]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-10845-%ED%81%90Queue</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-10845-%ED%81%90Queue</guid>
            <pubDate>Thu, 12 Jan 2023 13:56:31 GMT</pubDate>
            <description><![CDATA[<p>자료구조 문제풀이 두번째 ! ! !
큐(Queue)에 도전</p>
<h3 id="문제">[문제]</h3>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/4f8f7357-d05c-468f-83d7-e32e2e6373c2/image.png" alt=""> <img src="https://velog.velcdn.com/images/hjin_310/post/335e9013-e475-48b7-83f1-f43b505db2ee/image.png" alt=""></p>
<h3 id="풀이">[풀이]</h3>
<p>문제는 <strong>Queue</strong>를 구현하는 것이다. Queue는 LIFO(Last-In, First-Out)의 성격을 가진 Stack과는 다르게 <strong>FIFO(First-In, First-Out)</strong>의 성격을 가지는 자료구조이다.</p>
<p>앞서 Stack을 구현할때와 마찬가지로, class를 통해 Queue 함수를 만들어보았다.</p>
<p><strong>고려할 점</strong>은,</p>
<ol>
<li>문제에서 주어진대로 크기가 최대 10,000인 배열로 만들 것.</li>
<li>test case를 받아와 모두 실행할 것.</li>
<li>입력 시, string을 적절히 이용할 것. (케이스 분류)</li>
<li><strong>변수명과 함수명이 겹치지 않도록 조심할 것 !!</strong> (변수로 front를 사용했다가 오류가 나버렸다.. -&gt; f로 수정)</li>
<li>C++은 절차 지향적 성격과 객체 지향적 특성을 모두 지니고 있음을 기억하자 !</li>
</ol>
<h3 id="최종코드">[최종코드]</h3>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Queue {
public:
    int queue[10000]={0};
    int size;
    int f;
    int rear;

    Queue(){
        size=0;
        f=0;
        rear=0;
    }


    int empty() {
        if(f==rear){
            return 1;
        }
        else return 0;
    }


    void push (int data){
        rear=rear+1;
        queue[rear]=data;
        size=size+1;
    }

    int pop (void) {
        if(empty()){
            return -1;
        }
        size=size-1;
        f=f+1;
        return queue[f];

    }


    int front() {
        if(empty()){
            return -1;
        }
        else return queue[f+1];
    }

    int back() {
        if(empty()){
            return -1;
        }
        else return queue[rear];
    }
};


int main (void){
    Queue q;
    int N;
    cin&gt;&gt;N;
    for(int i=0; i&lt;N; i++){
        string msg;
        cin&gt;&gt;msg;
        if(msg==&quot;push&quot;){
            int num;
            cin&gt;&gt;num;
            q.push(num);
        }
        else if(msg==&quot;pop&quot;){
            cout&lt;&lt;q.pop()&lt;&lt;endl;
        }
        else if(msg==&quot;size&quot;){
            cout&lt;&lt;q.size&lt;&lt;endl;
        }
        else if(msg==&quot;empty&quot;){
            cout&lt;&lt;q.empty()&lt;&lt;endl;
        }
        else if(msg==&quot;front&quot;){
            cout&lt;&lt;q.front()&lt;&lt;endl;
        }
        else if(msg==&quot;back&quot;){
            cout&lt;&lt;q.back()&lt;&lt;endl;
        }


    }
           return 0;
}</code></pre><h3 id="돌아보며">[돌아보며]</h3>
<p>지난 Stack문제 경험을 기반으로 Queue는 처음부터 끝까지 혼자 힘으로 성공해냈다. 이제 class 사용법을 지난번보다 익힌것 같다.
string을 적절히 이용하면 코드를 보다 간단하게 만들 수 있다. C++ 좋네 !
자료구조때 배운 Circular 형태도 기억해두자.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 9012 VPS]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-9012-VPS</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-9012-VPS</guid>
            <pubDate>Wed, 11 Jan 2023 16:08:53 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/hjin_310/post/8736d2dc-927d-4722-9022-b600dffab2f4/image.png" alt="">
이 문제는 괄호문자열이 올바른지 아닌지를 판별하는 문제이다.</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/220ae08f-8a34-4cb1-adc3-08087d18749d/image.png" alt="">
어쩌다 이렇게까지 틀렸는지에 대해 적어보겠다..</p>
<p>처음 문제를 읽을 때, 지난 데이터구조 시간에 배운 parenthesis matching을 생각했다. 그래서 괄호가 맞기만하면 yes를 출력하고, 남거나 부족하면 no를 출력하는 방식으로 코드를 짰다.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;stack&gt;
using namespace std;

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

    char s[50];
    for(int i=0; i&lt;T; i++){
        stack&lt;char&gt; S;
        cin&gt;&gt;s;
        string cmd;
        for (int j=0; j&lt;strlen(s);j++){
            if(s[j]==&#39;(&#39;){
                S.push(j);
            }
            if(s[j]==&#39;)&#39;){
                if(S.empty()){
                    cmd=&quot;NO&quot;;
                    break;
                }
                else{
                    S.pop();
                }
            }
            if(S.empty()){
                cmd=&quot;YES&quot;;
            }
            else {
                cmd=&quot;NO&quot;;
            }
        }
        cout&lt;&lt;cmd&lt;&lt;endl;
    }
    return 0;
}</code></pre><p>하지만 이 코드에서
<img src="https://velog.velcdn.com/images/hjin_310/post/7c3c9316-e278-45e8-b8ff-121a74da5983/image.png" alt="">
이런 에러가 떴다. strlen과 j의 자료형이 달라 경고를 보낸 것 같았다.
그래서 이를 수정했다.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;stack&gt;
using namespace std;

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

    for(int i=0; i&lt;T; i++){
        char s[50]={};
        stack&lt;char&gt; S;
        cin&gt;&gt;s;
        int len=strlen(s);
        if(len&gt;=2){
        string cmd;
        for (int j=0; j&lt;len;j++){
            if(s[j]==&#39;(&#39;){
                S.push(j);
            }
            else if(s[j]==&#39;)&#39;){
                if(S.empty()){
                    cmd=&quot;NO&quot;;
                    break;
                }
                else{
                    S.pop();
                }
            }
            if(S.empty()){
                cmd=&quot;YES&quot;;
            }
            else {
                cmd=&quot;NO&quot;;
            }
        }
        cout&lt;&lt;cmd&lt;&lt;endl;
 }   }
    return 0;
}</code></pre><p>하지만 그냥 틀려버렸다.</p>
<p>분명히 test case도 잘 실행돼는데, 왜 자꾸 틀렸습니다가 뜨는지 도통 모르겠어서
조금씩 코드를 수정하며 여러번 제출을 시도했지만 결과는 마찬가지였다.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;stack&gt;
using namespace std;

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

    for(int i=0; i&lt;T; i++){
        char s[50]={};
        stack&lt;char&gt; S;
        cin&gt;&gt;s;
        int idx=1;

        int len=strlen(s);

        if(len&gt;=2){

        string cmd;

        for (int j=0; j&lt;len;j++){
            if(s[0]!=&#39;(&#39;) {
                cmd=&quot;NO&quot;;
                idx=0;
                break;
            }
            if(s[j]==&#39;(&#39;){
                S.push(j);
            }
            else if(s[j]==&#39;)&#39;){
                if(S.empty()){
                    cmd=&quot;NO&quot;;
                    idx=0;
                    break;
                }
                else{
                    S.pop();
                }
            }
        }

        if(idx){
            if(S.empty()){
                cmd=&quot;YES&quot;;
            }
            else {
                cmd=&quot;NO&quot;;
            }

        }    
        cout&lt;&lt;cmd&lt;&lt;endl;  
        }
    }
    return 0;
}</code></pre><p>이렇게 인덱스를 넣어주면 어떨까 싶어 시도해보기도했다.</p>
<p>아무리 풀어도 안풀려서 문제가 원하는 것이 내가 이해한바와 다른것 같다는 생각에
문제를 다시 읽어보았고, VPS에 대해서 인터넷 검색을 해보았다.
결론은 내가 문제를 잘못 이해한 것이었다.</p>
<p>괄호문자열으로, &#39;(&#39;와 &#39;)&#39;만으로 이루어진다고 하였기에 중간에 괄호가 아닌 다른 문자가 들어가면 안되는것이다!!!
그래서 다시 코드를 수정해 제출했다.</p>
<pre><code>#include &lt;cstring&gt;
#include &lt;iostream&gt;
#include &lt;stack&gt;
using namespace std;

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

  for (int i = 0; i &lt; T; i++) {
    string s;
    stack&lt;char&gt; S;
    cin &gt;&gt; s;

    if (s.length() &gt;= 2) {

      string cmd = &quot;YES&quot;;

      for (int j = 0; j &lt; s.length(); j++) {

        if (s[j] == &#39;(&#39;) {
          S.push(s[j]);
        } else if (s[j] == &#39;)&#39;) {
          if (!S.empty()) {
            S.pop();
          } else {
            cmd = &quot;NO&quot;;
            break;
          }
        } else {
          cmd = &quot;NO&quot;;
          break;
        }
      }

      if (!S.empty()) {
        cmd = &quot;NO&quot;;
      }

      cout &lt;&lt; cmd &lt;&lt; endl;
    }
  }
  return 0;
}</code></pre><p>이것이 최종 코드이다.</p>
<p>그래도 이제 스택을 어느정도 쓰는 방법을 익힌 것 같고, 앞으로는 문제를 꼼꼼히 읽어서 요구사항을 정확하게 파악해야겠다.</p>
<p>그래도 실버문제를 풀어서 뿌듯하다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 10828 스택]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-10828-%EC%8A%A4%ED%83%9D</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-10828-%EC%8A%A4%ED%83%9D</guid>
            <pubDate>Wed, 11 Jan 2023 13:40:40 GMT</pubDate>
            <description><![CDATA[<p>작년에 Stack을 배워서 쉽게 풀 수 있을 줄 알았는데
생각보다 처음부터 감이 잡히지는 않았다..</p>
<p>그래서 작년에 공부할 때 저장해둔 노션을 참고해서 풀었다.</p>
<p>비슷한 문제 여러번 풀다보면 감이 잡히지 않을까 !</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/6a6133db-5687-4e21-ab89-0b9d389dcc1a/image.png" alt="">
push, pop, size, empty, top이 기본적인 stack의 기능 !
stack은 LIFO로, 마지막에 들어오는 것이 먼저 나가는 방식이다.</p>
<p>클래스 선언을 통해 Stack 클래스를 선언한다.</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Stack { // 스택 클래스 만들기
    public: // public 선언으로 클래스 밖에서도 접근이 가능하게 만든다.
    int stack[10000]; // 문제에서 제시된 범위를 참고하여 정수형 배열 선언
    int size;

    Stack(){size=0;}  // 초기화하는 함수이다. constructor, 생성자라고 한다. size를 0으로 설정한다.

    void push(int data){
        stack[size]=data;
        size+=1;
    }

    bool empty() {
        if(size==0){ // size가 0이면 empty가 진실이다.
            return true;
        }
        else{
            return false;
        }
    }

    int pop(){ // 배열의 가장 마지막에 있는 것을 지우는 함수.
        if(empty()){ // 비어있으면 지울 것이 없기때문에 -1을 반환한다.
            return -1;
        }
        else{
            stack[size-1]=0;
            size=size-1;
            return stack[size];
        }
    }
    int top(){ // 배열의 가장 마지막에 있는 것을 반환한다.
        if(empty())
        {
            return -1;
        }
        else{
            return stack[size-1];
        }
    }

};

int main(void){
    int N;
    cin&gt;&gt; N;
    Stack s;
    for (int i=0;i&lt;N;i++){
        string cmd; // string으로 받아온다.
        cin&gt;&gt;cmd; // cin string은 공백을 기준으로 하기때문에 제시된 문제와 부합한다.
        if(cmd==&quot;push&quot;){ // string이 무엇이냐에 따라 명령어를 시행한다.
            int data;
            cin&gt;&gt;data;
            s.push(data);
        }
        else if(cmd==&quot;pop&quot;){
            cout&lt;&lt;(s.empty()?-1:s.top())&lt;&lt;endl;
            if(!s.empty()){
                s.pop();
            }
        }
        else if(cmd==&quot;size&quot;){
            cout&lt;&lt;s.size&lt;&lt;endl;
        }
        else if(cmd==&quot;empty&quot;){
            cout&lt;&lt;s.empty()&lt;&lt;endl;
        }
        else if(cmd==&quot;top&quot;){
            cout&lt;&lt;s.top()&lt;&lt;endl;
        }
    }
    return 0;
}</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[문자, 문자열 정리]]></title>
            <link>https://velog.io/@hjin_310/%EB%AC%B8%EC%9E%90-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@hjin_310/%EB%AC%B8%EC%9E%90-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Wed, 11 Jan 2023 13:09:06 GMT</pubDate>
            <description><![CDATA[<p>지금까지 C언어, C++, python을 다뤄봤는데,
세 언어에 있어 정수형은 비슷해서 헷갈리지 않았는데,
문자와 문자열에 대해서는 헷갈리는 부분이 많아서 한눈에 정리해보려 한다.</p>
<hr>
<h3 id="python">Python</h3>
<p>python은 입력을 받을 때, 문자열로 입력을 받는다.</p>
<pre><code>var = input()</code></pre><p>이것을 int(), float() 등을 통해 형변환을 하는 것이다.</p>
<pre><code>num = int(input())</code></pre><p>또는</p>
<pre><code>num = float(input())</code></pre><p>출력에 있어서는</p>
<pre><code>%c or %s</code></pre><p>위와 같은 포맷 변환 문자를 통해 문자나 문자열로 출력이 가능하다.</p>
<h4 id="리스트">리스트</h4>
<p>리스트는 2개 이상의 값을 저장할 수 있는 자료형으로 리스트에 저장하고자 하는 값을 대괄호 [ , ]로 둘러싸주면 된다. </p>
<pre><code>listA = [ , , ]
print(listA[0])</code></pre><p>리스트 생성은</p>
<pre><code>listA = []
listA = list()</code></pre><p>이렇게 가능하다.
추가는</p>
<pre><code>listA.append(5)</code></pre><hr>
<h3 id="c언어">C언어</h3>
<p>문자열의 입력 방법이다.</p>
<pre><code>char 배열
scanf(&quot;%s&quot;,배열)

또는 

char * c
scanf(&quot;%s&quot;,c)</code></pre><p>이렇게 입력을 받으면 마지막엔 &#39;\0&#39;이 입력된다.
문자는 char로 받으면 된다.</p>
<p>단, 두번째 방법을 통했을 때에는 개별 문자 변환이 불가능하다.</p>
<h3 id="c">C++</h3>
<p>위와 같은 방법으로 가능하다.
추가로, string STL을 사용할 수 있다.</p>
<pre><code>#include &lt;cstring&gt;

string str;
getline(cin, str);
cout &lt;&lt; &quot;str : &quot; &lt;&lt; str &lt;&lt; &#39;\n&#39;;
getline(cin, str, &#39;d&#39;);
cout &lt;&lt; &quot;str : &quot; &lt;&lt; str &lt;&lt; &#39;\n&#39;;
cin &gt;&gt; str; 
cout &lt;&lt; &quot;str : &quot; &lt;&lt; str &lt;&lt; &#39;\n&#39;;</code></pre><p>string str; 문자열 생성
cin&gt;&gt;str; 공백 이전까지의 문자열을 입력받음
getline(cin, str); \n 이전까지의 문자열, 공백을 포함한 한 줄을 통째로 입력받음
getlind(cin, str, &#39;a&#39;); &#39;a&#39;문자 이전까지의 문자열을 입력받음
cout&lt;&lt;str; 문자열 출력</p>
<p>string 클래스를 사용했을 때에는 위와는 달리 문자열의 끝에 &#39;\0&#39;문자가 들어가지 않으며, 문자열의 길이를 동적으로 변경 가능하다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Baekjoon 10818 최소, 최대]]></title>
            <link>https://velog.io/@hjin_310/Baekjoon-10818</link>
            <guid>https://velog.io/@hjin_310/Baekjoon-10818</guid>
            <pubDate>Sun, 01 Jan 2023 14:29:29 GMT</pubDate>
            <description><![CDATA[<h2 id="baekjoon-10818--최소-최대">Baekjoon 10818 : 최소, 최대</h2>
<h3 id="문제">[문제]</h3>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/8ccf0e84-643f-4a04-9da7-26646d86aad2/image.png" alt=""></p>
<h3 id="풀이">[풀이]</h3>
<ol>
<li>첫 줄에 몇 개의 정수를 입력할 것인지 그 수를 입력받는다.</li>
</ol>
<p>→ num 변수를 선언하여 cin으로 입력받음</p>
<ol start="2">
<li>num 수만큼 정수를 입력받는다.</li>
</ol>
<p>→ int형 배열을 선언 → k[num]</p>
<p>→ for문을 이용 수를 cin으로 입력받음</p>
<ol start="3">
<li>max, min 선언 및 비교</li>
</ol>
<p>→ int형으로 두 변수를 선언한 뒤</p>
<p>→ for문으로 비교하며 min보다 작은 수라면 그 수를 min에 할당, max보다 큰 수라면 그 수를 max에 할당</p>
<ol start="4">
<li>cout으로 min과 max를 출력</li>
</ol>
<h3 id="최종코드">[최종코드]</h3>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main (void){
    int num;
    cin&gt;&gt;num;
    int k[num];
    int i;
    for(i=0;i&lt;num;i++){
        cin&gt;&gt;k[i];
    }
    int max = k[0];
    int min = k[0];
    for(i=0;i&lt;num;i++){
        if (min&gt;k[i]){
            min=k[i];
        }
        if (max&lt;k[i]){
            max=k[i];
        }
    }
    cout&lt;&lt;min&lt;&lt;&#39; &#39;&lt;&lt;max&lt;&lt;endl;
}</code></pre>
<h3 id="돌아보며">[돌아보며]</h3>
<ol>
<li>첫 시도 때, for문 문법을 파이썬과 헷갈려서 for i in range (0,num)으로 적었다. c와 python은 문법이 다르니 주의하자 !</li>
<li>배열은 항상 [0]부터 시작해 [end-1]까지임을 기억하자 !</li>
<li>‘ ‘와 “ “의 차이를 기억하자 ! ‘ ‘은 character이며 하나의 문자이다. “ “은 string이며, 하나 이상의 문자열이다.</li>
</ol>
<hr>
<p>이제야 드디어 visual studio code C++ 가능하다 ! ! ! ! ! </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Virtual Machine, Ubuntu, Linux, Mysql]]></title>
            <link>https://velog.io/@hjin_310/Virtual-Machine-Ubuntu-Linux-Mysql</link>
            <guid>https://velog.io/@hjin_310/Virtual-Machine-Ubuntu-Linux-Mysql</guid>
            <pubDate>Mon, 10 Oct 2022 16:05:39 GMT</pubDate>
            <description><![CDATA[<blockquote>
<ol>
<li>Virtual Machine</li>
<li>Ubuntu를 통한 Linux 구축</li>
<li>Terminal 사용법 간단 정리</li>
</ol>
</blockquote>
<p>DATABASE SYSTEM 과제로 Virtual Machine에 Linux를 구축하고, Mysql을 설치해 간단한 SQL문법을 사용해보았다.</p>
<p>나중에 참고하기 위해 그 과정을 간단히 정리해보려 한다😊 (windows 기준 !) </p>
<p>다양한 사이트, 방법을 참고해보았고, 그 중에 성공한 방법과, 내가 마주했던 오류, 그리고 해결 방법을 정리할것이다. (오류땜에 마니 힘드럿따...ㅠ)</p>
<p><del>설치 과정 화면녹화한 것을 바탕으로 정리하려했는데... 영상이 제대로 저장되지 않았다 🥲 기억을 되살리면서 정리해보께여ㅠ</del></p>
<h2 id="1-virtual-machine">1. Virtual Machine</h2>
<p>구글에서 Virtual Box를 검색해 Windows용 Virtual Box를 다운로드받는다.</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/711fbe25-ee45-4e3f-983c-d2065fe1d739/image.png" alt="">
<code>Downloads</code>를 클릭해 접속한다.</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/8a905118-57f1-4af8-b2c5-ad983217496e/image.png" alt="">
<code>windows hosts</code>를 눌러 다운로드하고</p>
<p>추가로
<img src="https://velog.velcdn.com/images/hjin_310/post/57c4d8d6-5c37-4a66-a229-cbe5abd66744/image.png" alt="">
<code>All supported platforms</code>라는 이름의 확장파일도 다운로드받는다.</p>
<h2 id="2-ubuntu">2. Ubuntu</h2>
<p>구글에서 Ubuntu를 검색해 다운로드받는다.
<img src="https://velog.velcdn.com/images/hjin_310/post/1ae32bef-84d2-4d25-b373-d8b97a5501c5/image.png" alt="">
<img src="https://velog.velcdn.com/images/hjin_310/post/2fba0f4e-da90-4364-8550-13fd7a270040/image.png" alt="">
<code>Ubuntu Desktop</code>을 클릭한 뒤, 
<img src="https://velog.velcdn.com/images/hjin_310/post/24721f6a-b34e-4f9f-b907-e987730edffe/image.png" alt="">
이미지의 <code>Download</code>를 클릭한다.</p>
<hr>
<h2 id="3-download">3. Download</h2>
<p>다운로드 파일을 확인하여
<img src="https://velog.velcdn.com/images/hjin_310/post/aab996f0-a284-4ad1-a7b9-5804322611b3/image.png" alt="">
Virtual Box를 먼저 다운로드받는다. (옵션 변경 없이 Next로 그냥 설치하면 된다!)</p>
<p>설치 완료 후 Virtual Box를 닫고 
<img src="https://velog.velcdn.com/images/hjin_310/post/5fd1f49a-692b-4396-b4d5-b5b41ee52f88/image.png" alt="">
이것을 더블클릭하여 확장팩을 다운로드받는다.</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/77ade0f3-6f9b-4b85-b9f0-4a2cc2c08ad5/image.png" alt="">
나는 지금 Ubuntu를 설치해 이미 가상환경을 구축했기때문에 server가 있지만, 초기 상태라면 아무것도 없는 상태일것이다.</p>
<h2 id="4-settings">4. Settings</h2>
<p>도구의 환경설정을 클릭한다.</p>
<p>몇 개 변경해야 하는 부분들이 있는데, 내가 지금 설정되어 있는 부분들 스샷해서 저장하겠다.. 왜냐면 뭘 바꿨는지 기억이 잘 안난다 !</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/c3e5d291-ced2-49db-a749-53463f282d77/image.png" alt="">
가상머신 폴더를 <code>D:</code>으로 바꾸라는 곳들이 있었는데, 내 노트북은 D:으로 바꾸니까 나중에 Ubuntu를 생성할 때 부모폴더에 머신폴더는 생성할 수 없다? 오류가 발생해서 그냥 <code>C:</code>로 두었다. 그래도 잘 실행되는걸 보니 저장위치만 다르지 상관은 없는 것 같다.</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/ae2cb760-042f-442a-a961-c06cfed2c885/image.png" alt="">
호스트 키 조합 단축키를 이렇게 <code>Shift + Ctrl</code>로 바꿔주는게 나중에 편하다. 내가 직접 가동했을때 실제로 그렇게 느꼈으니 이렇게 변경하길.</p>
<p>이제 가상머신 생성 !
<code>새로만들기</code> 클릭 !</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/8fd59187-15b0-42cc-ac8a-acf71cd8b2dc/image.png" alt="">
이름은 적당히 Ubuntu로 해두고,
종류를 Linux, 버전을 Ubuntu (64-bit)로 해주면 된다.</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/e04bdacf-327f-4ff3-83b8-fc332a5b535b/image.png" alt="">
메모리는 초록색 범위내에서 지정하면 되는데, 전체 메모리의 50퍼 이내로 설정하는 것이 좋다고 한다.</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/30c5a395-3e28-47d4-8572-e10faca3c32c/image.png" alt="">
그냥 이렇게 두면 됨 !</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/5effdc7e-c3d7-4a82-8650-3288e926456e/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/253b30ba-52d5-44f7-90ef-c548765b3f81/image.png" alt="">
나는 고정크기 선택함 !</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/da220288-4b41-44d7-8c1a-57eb64b6ff7e/image.png" alt=""></p>
<p>파일 크기는 25기가가 권장 크기라고 한다.</p>
<p>생성이 완료되면 ! 이제 설정으로 들어간다.
<img src="https://velog.velcdn.com/images/hjin_310/post/ccb5bd49-6f50-482c-8094-45be0f1e1d87/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/8b5354b8-5a0f-4ded-8e5d-82163e08e3ef/image.png" alt="">
<img src="https://velog.velcdn.com/images/hjin_310/post/91d35715-b584-4a48-a50b-ad8a04afd38a/image.png" alt="">
<img src="https://velog.velcdn.com/images/hjin_310/post/7d6e6274-7340-44fa-99e0-3d0b75fcc0c9/image.png" alt="">
<img src="https://velog.velcdn.com/images/hjin_310/post/ecdc252c-bda7-4050-acef-7d10e5fa62a3/image.png" alt="">
그리고 컨트롤러 IDE의 비어있음 디스크를 선택해서 여기에 choose a disk로 아까 다운로드 받은 ubuntu를 삽입한다.
(지금 내꺼에 비어있음으로 뜨는 이유는 나중에 디스크를 제거했기 때문인것으로 추정된다 !)
<img src="https://velog.velcdn.com/images/hjin_310/post/0adeea09-7544-429a-a311-06e5bb0f320c/image.png" alt=""></p>
<h2 id="5-실행">5. 실행</h2>
<p>이후 실행을 누르면 설정창이 뜨는데,</p>
<blockquote>
<ol>
<li>언어는 한국어로 설정한 뒤 Install Ubuntu 클릭</li>
<li>키보드 레이아웃은 변경하지 않고 계속하기 클릭</li>
<li>일반 설치 / 기타설정은 모두 체크표시 !</li>
<li>설치형식은 위에꺼 클릭</li>
<li>지금설치 클릭 !</li>
<li>계속하기 클릭 !</li>
<li>시간대는 서울 / 계속하기 !</li>
<li>우분투에서 사용할 사용자 아이디와 패스워드 설정
=&gt; 우분투 설치 !!
만약, &#39;계속하기&#39;가 안보이면 <code>Alt+F7</code>을 클릭하면 창 조정이 가능하다.</li>
</ol>
</blockquote>
<p>(이후 Ubuntu 설치 완료되고 접속 후 뜨는것들은 그냥 next 누르면서 넘어가면 된다)</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/c67d2712-afcc-4640-babc-edd6b73e0542/image.png" alt="">
이제 이런 오징어 모양의 바탕화면이 뜬다!</p>
<h2 id="6-추가설정">6. 추가설정</h2>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/45ed202a-d9fd-4906-9a0c-87ab47d9177c/image.png" alt="">
<code>장치 -&gt; 게스트 확장 CD 이미지 삽입</code>을 클릭하여 계속하기를 통해 진행한다.</p>
<p>그런데 ! 나는 여기서 오류가 떴다ㅠ</p>
<pre><code>가상 광 디스크 를 가상머신 ubuntu에 삽입할 수 없습니다</code></pre><p>라고 하면서 오류가 뜨는 것이다.</p>
<p>이럴땐</p>
<p>terminal을 실행시켜서 (Ubuntu 내의 terminal)</p>
<pre><code>$ sudo apt-get install virtualbox-guest-additions-iso
$ sudo apt-get install virtualbox-guest-utils 

$ sudo usermod -G vboxsf -a &#39;유저이름&#39;
$ reboot
</code></pre><p>이 코드를 쳐주면 된다고 한다.
그런데도 나는 오류가 떴는데ㅠ
진짜 이것때문에 고생도 많이했고 시간도 오래걸렸다ㅠㅠ
뭐만 하면 안된다 오류다 계속 뜨고 .......
써칭만 계속 하다가 !</p>
<p>그 이유를 알아냈다 !
내가 앞에서 언급한바와 같이 여러 사이트를 참고하느라고 이런저런 방법들 다 써봤는데, 그 중 WSL을 설치했던것이다...</p>
<p>그런데, 
VirtualBox와 WSL은 동시에 사용할 수 없다 !!!</p>
<p>해결 방법은 !</p>
<ol>
<li>명령 프롬프트를 관리자 모드로 실행 (windows에서)</li>
<li>다음 명령어 입력<pre><code>bcdedit /set hypervisitorlaunchtype off</code></pre></li>
</ol>
<p>이렇게 하고 ubuntu terminal에 위의 코드를 쳐주면 됐던걸로 기억한당!!</p>
<p>이제 본래 윈도우 서버와 데이터를 공유하기 위해 공유 폴더를 추가해줄꺼다!</p>
<p><img src="https://velog.velcdn.com/images/hjin_310/post/bd43885e-ec04-4cae-88e4-0744aa247355/image.png" alt=""></p>
<p>공유 추가를 선택한 뒤 폴더 경로를에서 기타를 선택해 원하는 폴더를 선택한 뒤, 
자동마운트 체크하고
마운트 지점은 작성해주면되는데</p>
<p>나의 경우에는
Downloads 폴더를 받아와서 지점을 <code>/media/download</code> 로 해주었다.</p>
<h2 id="7-cd-eject">7. CD eject</h2>
<p>왼쪽 라인을 보면 CD가 있는데 eject를 눌러 가상 씨디를 제거해준다.</p>
<h2 id="8-간단한-terminal-사용">8. 간단한 terminal 사용</h2>
<p>terminal을 실행하여
<img src="https://velog.velcdn.com/images/hjin_310/post/3017a9df-e48e-4d32-a61e-04f9f0125425/image.png" alt="">
위와 같이 입력하면 공유파일 위치로 이동 가능하다.(<code>cd</code>)</p>
<p><code>ls</code>를 입력하면 현 위치의 폴더에 어떤 파일들이 있는지 알 수 있다.</p>
<p><code>cd ..</code>을 입력하면 상위 폴더 위치로 이동한다.</p>
<p><del>Mysql 설치와 사용까지 정리하려했는데 영상이 날라가서 그 부분은 그냥 간단하게만 정리해야겠다ㅠ</del></p>
<h2 id="9-mysql">9. MYSQL</h2>
<h3 id="1-실행">1. 실행</h3>
<p><code>sudo mysql -u root -p</code></p>
<h3 id="2-database-열기">2. database 열기</h3>
<p><code>show databases</code></p>
<h3 id="3-database-선택하ㅣ">3. database 선택하ㅣ</h3>
<p><code>use ~</code></p>
<h3 id="4-table-열기">4. table 열기</h3>
<p><code>show tables</code></p>
<h3 id="5-나가기">5. 나가기</h3>
<p><code>quit</code></p>
<h3 id="6-terminal창-깨끗하게-지우기">6. terminal창 깨끗하게 지우기</h3>
<p><code>clear</code></p>
<hr>
<p>요정도로 정리할 수 있겠당
내 기억이 정확한진 모르겠지만
나중에 또 가상환경을 구축할 일이 생길 때 요긴하게 쓰일 것 같으니까 ! ! !</p>
<p>그리고 리눅스 생각보다 재밌다
컴퓨터 하나 더 생긴 느낌인데다가
리눅스 뭔가 내가 엄청난 프로그래머가 된 것 같은 기분으로?? 만든다 ㅋㅎㅎㅋㅋ
그래서 괜히 리눅스 켜서 인터넷도 써보고 계산기도 써보고 (≧∀≦)ゞ</p>
<p>나중에 데베시 과제 제출하고 나면 과제까지 다 정리해서 다시 글 쓰는걸로 !</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[velog 사용법✨]]></title>
            <link>https://velog.io/@hjin_310/velog-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
            <guid>https://velog.io/@hjin_310/velog-%EC%82%AC%EC%9A%A9%EB%B2%95</guid>
            <pubDate>Fri, 02 Sep 2022 13:59:22 GMT</pubDate>
            <description><![CDATA[<h3 id="💫글자-크기">💫글자 크기</h3>
<pre><code># 
##
###
####
#####
######</code></pre><p>-&gt; <code>#</code>을 통해 크기 조정 가능</p>
<hr>
<h3 id="💫-기본-글씨">💫 기본 글씨</h3>
<h4 id="bold"><strong>bold</strong></h4>
<pre><code>**텍스트**</code></pre><h4 id="기울어진"><em>기울어진</em></h4>
<pre><code>_텍스트_</code></pre><h4 id="취소선"><del>취소선</del></h4>
<pre><code>~~텍스트~~</code></pre><hr>
<h3 id="💫코드블럭">💫코드블럭</h3>
<p>=&gt; <code>tab</code>을 이용하여 생성 가능</p>
<pre><code>이렇게 !😊</code></pre><p>또는 (` 3개로!)</p>
<pre><code>이렇게 !👍</code></pre><p>###</p>
<hr>
<h3 id="💫인용문">💫인용문</h3>
<blockquote>
<p>!!</p>
<blockquote>
<p>!!!</p>
<blockquote>
<p>!!!!</p>
<blockquote>
<p>!!!!!</p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<blockquote>
<p>그리고 글자 색 조정도 가능!</p>
</blockquote>
<h5 id="font-color6799ff-그냥-글-적는-영역이나-코드-블럭-안에는-아무리-색-변경-안되던데-인용문에는-색-변경이-됐으면-좋겠다-font"><font color="#6799FF">+) 그냥 글 적는 영역이나 코드 블럭 안에는 아무리 색 변경 안되던데, 인용문에는 색 변경이 됐으면 좋겠다 !</font></h5>
<pre><code>&lt;font color=&quot;#6799FF&quot;&gt;+) 적을 내용 &lt;/font&gt;</code></pre><p><code>(&gt;의 개수로 조정 !!)</code></p>
<hr>
<h3 id="💫링크-작성-법">💫링크 작성 법</h3>
<pre><code>[표시할 이름](링크)
또는 &lt;링크&gt;</code></pre><p><a href="https://www.naver.com/">naver</a>
<a href="https://www.naver.com/">https://www.naver.com/</a></p>
<hr>
<h3 id="💫이미지-삽입">💫이미지 삽입</h3>
<p>드래그로 삽입 가능 !</p>
<blockquote>
<p>![이미지 설명](이미지 링크)
[![이미지 설명](이미지 링크)](연결하고자하는 url &quot;링크 이름&quot;)</p>
</blockquote>
<hr>
<h3 id="💫이모티콘-삽입">💫이모티콘 삽입</h3>
<p><code>window + .</code></p>
<hr>
<h3 id="💫체크박스">💫체크박스</h3>
<p>-,*,+ 뒤에 뛰어쓰기 후 [ ], 그리고 안에 x넣으면 체크</p>
<ul>
<li><input disabled="" type="checkbox"> 가나다라마바사</li>
<li><input checked="" disabled="" type="checkbox"> 가나다라마바사</li>
</ul>
<hr>
<h3 id="💫순서-기호">💫순서 기호</h3>
<p>+,-,*</p>
<hr>
<h4 id="💫what-i-thought">💫What I Thought</h4>
<h6 id="오늘-아침부터-ot만-기대하고-갔다가-갑자기-수업해서-너무-힘들었다🥲----수업-끝나자마자-돌아가서-네시간동안-기절했당-개강-2일차-아직까진-적응기간인듯😂-이번-주-mt-후에-다음주부턴-진짜-파이팅해서-적어나가야겠당✨">오늘 아침부터 ot만 기대하고 갔다가 갑자기 수업해서 너무 힘들었다🥲    수업 끝나자마자 돌아가서 네시간동안 기절했당.. 개강 2일차.. 아직까진 적응기간인듯😂 이번 주 mt 후에 다음주부턴 진짜 파이팅해서 적어나가야겠당✨</h6>
]]></description>
        </item>
    </channel>
</rss>