<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>i_m_in.log</title>
        <link>https://velog.io/</link>
        <description>just do it</description>
        <lastBuildDate>Thu, 16 Feb 2023 07:36:09 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>i_m_in.log</title>
            <url>https://velog.velcdn.com/images/i_m_in/profile/d1e37b0a-60ab-44c4-ab96-196dc6c07218/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. i_m_in.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/i_m_in" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[Python] Palindrome(회문)]]></title>
            <link>https://velog.io/@i_m_in/Python-Palindrome%ED%9A%8C%EB%AC%B8</link>
            <guid>https://velog.io/@i_m_in/Python-Palindrome%ED%9A%8C%EB%AC%B8</guid>
            <pubDate>Thu, 16 Feb 2023 07:36:09 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/i_m_in/post/c451bcca-cabe-4bad-a5a9-bab5308c7b3b/image.jpg" alt=""></p>
<h1 id="palindrome회문">Palindrome(회문)</h1>
<ul>
<li>앞에서부터 읽든 뒤에서부터 읽든 동일한 단어나 문장을 의미</li>
</ul>
<hr>
<h2 id="1-회문-여부">1. 회문 여부</h2>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">def palindrome(pStr):
    if len(pStr) &lt;= 1:
        return

    if pStr[0] != pStr[-1]:
        return False
    else:
        return palindrome(pStr[1:len(pStr)-1])

a = &#39;kayak&#39;
a[1:len(a)-1]</code></pre>
<p>💻 <strong>출력</strong>
&#39;aya&#39;</p>
<blockquote>
<p><strong>line11 :</strong> 2번째[1] 글자부터 뒤에서 1번째[-1]</p>
</blockquote>
<h2 id="2">2.</h2>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">strAry = [&#39;rever&#39;, &#39;kayak&#39;, &#39;Borrow or rob&#39;, &#39;주유소의 소유주&#39;, 
          &#39;야 너 이번 주 주번이 너야&#39;, &#39;뒹굴 뒹굴&#39;]

for testStr in strAry:
    print(testStr, end=&#39;--&gt; &#39;)
    testStr = testStr.lower().replace(&#39; &#39;, &#39;&#39;)   # 영어대문자X,  공백X
    if palindrome(testStr) == True:
        print(&#39;회문입니다&#39;)
    else:
        print(&#39;회문아니오&#39;)</code></pre>
<p> 💻 <strong>출력</strong>
rever--&gt; 회문아니오
kayak--&gt; 회문아니오
Borrow or rob--&gt; 회문아니오
주유소의 소유주--&gt; 회문아니오
야 너 이번 주 주번이 너야--&gt; 회문아니오
뒹굴 뒹굴--&gt; 회문아니오</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Python] Pivonacci]]></title>
            <link>https://velog.io/@i_m_in/Python-Pivonacci</link>
            <guid>https://velog.io/@i_m_in/Python-Pivonacci</guid>
            <pubDate>Thu, 16 Feb 2023 07:35:45 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/i_m_in/post/10c433f2-f59d-47d5-82ad-51205f1d546d/image.jpg" alt=""></p>
<h1 id="pivonacci피보나치">Pivonacci(피보나치)</h1>
<ul>
<li>첫 번째 항의 값이 0이고 두 번째 항의 값이 1일 때, 이후의 항들은 이전의 두 항을 더한 값으로 이루어지는 수열을 말한다.</li>
</ul>
<hr>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">def fibonacci(n):
    if n == 0: return 0
    elif n == 1: return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

print(&#39;피보나치 수 --&gt; 0 1&#39;, end=&#39; &#39;)
for i in range(2, 10):
    print(fibonacci(i), end=&#39; &#39;)</code></pre>
<p>💻 <strong>출력</strong>
피보나치 수 --&gt; 0 1 1 2 3 5 8 13 21 34</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Python] 재귀 호출]]></title>
            <link>https://velog.io/@i_m_in/Python-%EC%9E%AC%EA%B7%80-%ED%98%B8%EC%B6%9C</link>
            <guid>https://velog.io/@i_m_in/Python-%EC%9E%AC%EA%B7%80-%ED%98%B8%EC%B6%9C</guid>
            <pubDate>Thu, 16 Feb 2023 07:34:30 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/i_m_in/post/c3754d86-314a-4328-bd26-5d240e4239be/image.jpg" alt=""></p>
<h1 id="재귀-호출recursion">재귀 호출(Recursion)</h1>
<ul>
<li>동일한 작동을 무한적으로 반복하는 알고리즘</li>
<li>자신을 다시 호출하는 것</li>
</ul>
<hr>
<h2 id="1-재귀-호출의-작동">1. 재귀 호출의 작동</h2>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">def openBox():
    print(&#39;종이상자를 엽니다.&#39;)
    openBox()   # 자기자신을 다시 호출

openBox()</code></pre>
<p>💻 <strong>출력</strong>
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
...
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
...</p>
<blockquote>
<p><code>openbox</code>를 사용하여 끝없이 호출</p>
</blockquote>
<h2 id="2수를-제한하여-재귀-호출">2.수를 제한하여 재귀 호출</h2>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">count = 10

def openBox():
    global count
    print(&#39;종이상자를 엽니다.&#39;)
    count -= 1
    if count == 0:
        print(&#39;반지를 넣고 반환합니다*****&#39;)
        return

    openBox()   # 자기자신을 다시 호출
    print(&#39;종이 상자를 닫습니다.&#39;)

openBox()</code></pre>
<p>💻 <strong>출력</strong>
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
반지를 넣고 반환합니다*****
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.</p>
<blockquote>
<p><code>count</code>를 사용하여 횟수를 제한</p>
</blockquote>
<h2 id="3-재귀호출-하지-않고-반복문으로-계산">3. 재귀호출 하지 않고 반복문으로 계산</h2>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">sumValue = 0

for n in range(10, 0, -1):
    sumValue += n

print(&#39;10+9+8+...+1 = &#39;, sumValue)</code></pre>
<p>💻 <strong>출력</strong>
10+9+8+...+1 =  55</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Python] Graph]]></title>
            <link>https://velog.io/@i_m_in/Python-Graph</link>
            <guid>https://velog.io/@i_m_in/Python-Graph</guid>
            <pubDate>Thu, 16 Feb 2023 07:33:31 GMT</pubDate>
            <description><![CDATA[<h1 id="graph">Graph</h1>
<hr>
<ul>
<li>여러 노드가 서로 연결된 자료구조</li>
<li><strong>무방향 그래프 :</strong> 간선에 방향성이 없는 그래프</li>
<li><strong>방향 그래프 :</strong> 화살표로 간선 방향을 표기하고, 그래프의 정점 집합이 무방향 그래프와 같음</li>
<li>*<em>가중치 그래프 :</em>8 간선마다 가중치가 다르게 부여된 그래프</li>
<li><strong>순화 :</strong> 그래프의 모든 정점을 한번씩 방문(깊이 우선 탐색, 너비 우선 탐색)</li>
</ul>
<hr>
<h3 id="01-무방향-그래프">01. 무방향 그래프</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">class Graph:
    def __init__(self, size) -&gt; None:
        self.SIZE = size
        self.graph = [[0 for _ in range(size)] for _ in range(size)] # 2차원 배열</code></pre>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">G1 = Graph(4)

for item in G1.graph:    # 세로배열
    print(item)</code></pre>
<p>💻 <strong>출력</strong>
[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]</p>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python"># A출발
# G1.graph[0][1] = 1 # (A, A)
G1.graph[0][1] = 1    # (A, B) 간선(edge)
G1.graph[0][2] = 1    # (A, B) 간선(edge)
G1.graph[0][3] = 1    # (A, B) 간선(edge)</code></pre>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python"># B출발
G1.graph[1][0] = 1    # (B, A) 간선
# G1.graph[1][1] = 0  # (B, B)
G1.graph[1][2] = 1    # (B, C)
# 1.graph[1][3] = 1   # (B, D)</code></pre>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python"># C출발
G1.graph[2][0] = 1    # (C, A)
G1.graph[2][1] = 1    # (C, B)
# G1.graph[2][2] = 1  # (C, C)
G1.graph[2][3] = 1    # (C, D)</code></pre>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python"># D출발
G1.graph[3][0] = 1    # (D, A)
# G1.graph[3][1] = 1  # (D, B)
G1.graph[3][2] = 1    # (D, C)
# G1.graph[3][3] = 1  # (D, D)</code></pre>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">print(&#39;무방향 그래프 &#39;)
for item in G1.graph:
    print(item)</code></pre>
<p>💻 <strong>출력</strong>
무방향 그래프 
[0, 1, 1, 1]
[1, 0, 1, 0]
[1, 1, 0, 1]
[1, 0, 1, 0]</p>
<h3 id="2-방향성-그래프">2. 방향성 그래프</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">G3 = Graph(4)

# G3.graph[0][0] = 0  # A -&gt; A
G3.graph[0][1] = 1    # A -&gt; B
G3.graph[0][2] = 1    # A -&gt; C
# G3.graph[0][3] = 0  # A -&gt; D

# G3.graph[1][0] = 0  # B -&gt; A
# G3.graph[1][1] = 0  # B -&gt; B
# G3.graph[1][2] = 0  # B -&gt; C
# G3.graph[1][3] = 0  # B -&gt; D

# G3.graph[2][0] = 0  # C -&gt; A
# G3.graph[2][1] = 0  # C -&gt; B
# G3.graph[2][2] = 0  # C -&gt; C
# G3.graph[2][3] = 0  # C -&gt; D

G3.graph[3][0] = 1    # D -&gt; A
# G3.graph[3][1] = 0  # D -&gt; B
# G3.graph[3][2] = 0  # D -&gt; C
G3.graph[3][3] = 1    # D -&gt; D

print(&#39;방향성 그래프&#39;)
for item in G3.graph:
    print(item)</code></pre>
<p>💻 <strong>출력</strong>
방향성 그래프
[0, 1, 1, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]
[1, 0, 0, 1]</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Python] Queue]]></title>
            <link>https://velog.io/@i_m_in/Python-Queue</link>
            <guid>https://velog.io/@i_m_in/Python-Queue</guid>
            <pubDate>Thu, 16 Feb 2023 02:43:46 GMT</pubDate>
            <description><![CDATA[<hr>
<ul>
<li><strong>front(머리) :</strong> 저장된 데이터 중 첫번째 데이터</li>
<li><strong>rear(꼬리) :</strong> 저장된 데이터 중 마지막 데이터</li>
</ul>
<hr>
<h3 id="1-큐-생성">1. 큐 생성</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">queue = [None for _ in range(6)]

front, rear = -1, -1               # front = rear = -1</code></pre>
<blockquote>
<p> <strong>배열 크기를 지정한 후 해당 크기의 빈 큐 생성</strong></p>
<blockquote>
<p><strong>line1</strong> : queue = [None for _ in range(6)]
-&gt; 배열 <code>크기</code>를 지정
<strong>line2</strong> : front, rear = -1, -1
-&gt; 빈 큐 생성<code>(큐 초기화)</code>
(<strong>front = rear = -1</strong> 로도 작성 가능)</p>
</blockquote>
</blockquote>
<h3 id="2-enqueue-데이터-텍스트-삽입">2. enQueue: 데이터 텍스트 삽입</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">rear += 1
queue[rear] = &#39;셔누&#39;
rear += 1
queue[rear] = &#39;민혁&#39;
rear += 1
queue[rear] = &#39;기현&#39;

print(&#39;-- 큐상태 --&#39;)
print(&#39;[출구]&#39;, end=&#39; &lt;- &#39;)
for i in range(0, len(queue)):
    print(queue[i], end=&#39; &lt;- &#39;)
print(&#39;[입구]&#39;)</code></pre>
<p>💻 <strong>출력</strong>
-- 큐상태 --
[출구] &lt;- 셔누 &lt;- 민혁 &lt;- 기현 &lt;- None &lt;- None &lt;- None &lt;- [입구]</p>
<blockquote>
<ul>
<li>rear(꼬리)부터 데이터 삽입</li>
</ul>
</blockquote>
<ul>
<li>꼬리쪽이 입구, 머리쪽이 출구</li>
</ul>
<p>❓ <strong>질문</strong></p>
<ul>
<li>한번에 한칸씩만 넣을 수 있나?</li>
</ul>
<h3 id="3-dequeue-데이터-추출">3. deQueue: 데이터 추출</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">front += 1
data = queue[front]
queue[front] = None
print(f&#39;deQueue -&gt; {data}&#39;)</code></pre>
<p>💻 <strong>출력</strong>
deQueue -&gt; 셔누</p>
<blockquote>
<ul>
<li>front(머리)부터 추출</li>
</ul>
</blockquote>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">print(&#39;-- 큐상태 --&#39;)
print(&#39;[출구]&#39;, end=&#39; &lt;- &#39;)
for i in range(0, len(queue)):
    print(queue[i], end=&#39; &lt;- &#39;)
print(&#39;[입구]&#39;)</code></pre>
<p>💻 <strong>출력</strong>
-- 큐상태 --
[출구] &lt;- None &lt;- 민혁 &lt;- 기현 &lt;- None &lt;- None &lt;- None &lt;- [입구]</p>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">front += 1
data = queue[front]
queue[front] = None
print(f&#39;deQueue -&gt; {data}&#39;)

front += 1
data = queue[front]
queue[front] = None
print(f&#39;deQueue -&gt; {data}&#39;)</code></pre>
<p>💻 <strong>출력</strong>
deQueue -&gt; 민혁
deQueue -&gt; 기현</p>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">print(&#39;-- 큐상태 --&#39;)
print(&#39;[출구]&#39;, end=&#39; &lt;- &#39;)
for i in range(0, len(queue)):
    print(queue[i], end=&#39; &lt;- &#39;)
print(&#39;[입구]&#39;)</code></pre>
<p>💻 <strong>출력</strong>
-- 큐상태 --
[출구] &lt;- None &lt;- None &lt;- None &lt;- None &lt;- None &lt;- None &lt;- [입구]</p>
<blockquote>
<ul>
<li>데이터가 다 추출된 후 또 추출하면 error</li>
</ul>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Python] Pythonds : 스택 외부 모듈]]></title>
            <link>https://velog.io/@i_m_in/Python-Pythonds-%EC%8A%A4%ED%83%9D-%EC%99%B8%EB%B6%80-%EB%AA%A8%EB%93%88</link>
            <guid>https://velog.io/@i_m_in/Python-Pythonds-%EC%8A%A4%ED%83%9D-%EC%99%B8%EB%B6%80-%EB%AA%A8%EB%93%88</guid>
            <pubDate>Thu, 16 Feb 2023 02:40:16 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/i_m_in/post/2f1b5e4c-69a1-4b9a-a8e6-889293576a42/image.jpg" alt=""></p>
<h2 id="stack">Stack</h2>
<ul>
<li>한쪽 끝이 막힌 형태</li>
<li>입구와 출구가 동일하여 선입후출, 후입선출</li>
<li><strong>push :</strong> 스택에 데이터를 삽입</li>
<li><strong>pop :</strong> 스택에서 데이터를 추출</li>
<li><strong>top :</strong> 스택의 가장 위에 있는 데이터</li>
</ul>
<hr>
<p><strong>pythonds 설치</strong></p>
<pre><code class="language-python">!pip install pythonds</code></pre>
<hr>
<p><strong>pythonds 사용</strong></p>
<pre><code class="language-python">from pythonds.basic.stack import Stack

st = Stack()
print(dir(st))</code></pre>
<hr>
<h3 id="1-push--데이터-삽입">1. push : 데이터 삽입</h3>
<pre><code class="language-python">st.push(&#39;셔누&#39;)
st.push(&#39;민혁&#39;)
st.push(&#39;기현&#39;)
st.push(&#39;형원&#39;)
st.push(&#39;주헌&#39;)
st.push(&#39;아이엠&#39;)</code></pre>
<h3 id="2-peek--가장-위에-있는-데이터마지막-입력-데이터">2. peek : 가장 위에 있는 데이터(마지막 입력 데이터)</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">st.peek()</code></pre>
<p>💻 <strong>출력</strong>
&#39;아이엠&#39;</p>
<h3 id="3-size--스택의-크기">3. size : 스택의 크기</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">st.size()</code></pre>
<p>💻 <strong>출력</strong>
6</p>
<h3 id="4-스택-내의-데이터-확인">4. 스택 내의 데이터 확인</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">st.items</code></pre>
<p>💻 <strong>출력</strong>
[&#39;셔누&#39;, &#39;민혁&#39;, &#39;기현&#39;, &#39;형원&#39;, &#39;주헌&#39;]</p>
<h3 id="5-pop--추출">5. pop : 추출</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">st.pop()</code></pre>
<p>💻 <strong>출력</strong>
&#39;아이엠&#39;</p>
<blockquote>
<p>마지막에 입력한 데이터가 먼저 나옴 </p>
</blockquote>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">st.pop()
st.pop()
st.pop()
st.pop()</code></pre>
<p>💻 <strong>출력</strong>
&#39;셔누&#39;</p>
<blockquote>
<ul>
<li>모든 데이터가 추출된 후 다시 추출을 하면 error</li>
</ul>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Python] 단순 연결 리스트]]></title>
            <link>https://velog.io/@i_m_in/Python-%EB%8B%A8%EC%88%9C-%EC%97%B0%EA%B2%B0-%EB%A6%AC%EC%8A%A4%ED%8A%B8</link>
            <guid>https://velog.io/@i_m_in/Python-%EB%8B%A8%EC%88%9C-%EC%97%B0%EA%B2%B0-%EB%A6%AC%EC%8A%A4%ED%8A%B8</guid>
            <pubDate>Thu, 16 Feb 2023 01:57:57 GMT</pubDate>
            <description><![CDATA[<h2 id="단순-연결-리스트">단순 연결 리스트</h2>
<ul>
<li>노드들이 물리적으로 떨어진 곳에 위치</li>
<li>각 노드의 번지도 순차적이지 않음</li>
<li>화살표로 표시된 연결(link)을 따라가면 선형리스트와 순서가 같음</li>
<li>데이터를 삽입/삭제할 때 해당 노드의 앞뒤 링크만 수정하면 되므로 오버헤드가 거의 발생하지 않음</li>
<li>List(정렬) : 데이터들을 잘 관리하기 위해 묶어서관리할 수 있는 자료형</li>
<li>Node(노드) : 데이터</li>
<li>self: class 내의 요소</li>
</ul>
<hr>
<h3 id="1-노드-생성">1. 노드 생성</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">class Node:                            # Node라는 class 생성
    def __init__(self) -&gt; None:        # 함수 선언
        self.data = None  # 현재 값
        self.link = None  # 다음 노드가리킴

    def __str__(self) -&gt; str:
        return f&#39;{self.data}&#39;</code></pre>
<p>self.data : 현재 값을 </p>
<h3 id="2-첫번째-노드-생성">2. 첫번째 노드 생성</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">node1 = Node()
node1.data = &#39;셔누&#39;

print(node1)</code></pre>
<p>💻 <strong>출력</strong>
셔누</p>
<h3 id="3-두번째-노드-생성">3. 두번째 노드 생성</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">node2 = Node()
node2.data = &#39;민혁&#39;
node1.link = node2      # 1번 노드의 링크에 두번째 노드를 연결

print(node2)</code></pre>
<p>💻 <strong>출력</strong>
민혁</p>
<h3 id="4-나머지-노드-생성">4. 나머지 노드 생성</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">node3 = Node()
node3.data = &#39;기현&#39;
node2.link = node3

node4 = Node()
node4.data = &#39;형원&#39;
node3.link = node4

node5 = Node()
node5.data = &#39;주헌&#39;
node4.link = node5

node6 = Node()
node6.data = &#39;아이엠&#39;
node5.link = node6</code></pre>
<h3 id="5-연결-리스트-출력link">5. 연결 리스트 출력(link)</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">print(node1.data, end=&#39; -&gt; &#39;)
print(node1.link.data, end=&#39; -&gt; &#39;)                  # node2.data
print(node1.link.link.data, end=&#39; -&gt; &#39;)             # node3.data
print(node1.link.link.link.data, end=&#39; -&gt; &#39;)        # node4.data
print(node1.link.link.link.link.data, end=&#39; -&gt; &#39;)   # node5.data
print(node1.link.link.link.link.link.data)          # node6.data</code></pre>
<p>💻 <strong>출력</strong>
셔누 -&gt; 민혁 -&gt; 기현 -&gt; 형원 -&gt; 주헌 -&gt; 아이엠</p>
<h3 id="6-연결-리스트-출력">6. 연결 리스트 출력</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">print(node1.data, end=&#39;, &#39;)         # node1.data
print(node2.data, end=&#39;, &#39;)         # node2.data
print(node3.data, end=&#39;, &#39;)         # node3.data
print(node4.data, end=&#39;, &#39;)         # node4.data
print(node5.data, end=&#39;, &#39;)         # node5.data
print(node6.data)                   # node6.data</code></pre>
<p>💻 <strong>출력</strong>
셔누, 민혁, 기현, 형원, 주헌, 아이엠</p>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">current = node1
print(current.data, end=&#39; -&gt; &#39;)
while current.link != None:
    current = current.link
    if current.link == None:
        print(current.data)      # 뒤에 연결링크가 없으면(마지막 노드) end=&#39; -&gt; &#39; 삭제
    else:
        print(current.data, end=&#39; -&gt; &#39;)</code></pre>
<p>💻 <strong>출력</strong>
셔누 -&gt; 민혁 -&gt; 기현 -&gt; 형원 -&gt; 주헌 -&gt; 아이엠</p>
<h3 id="7-연결리스트에-새-노드-삽입">7. 연결리스트에 새 노드 삽입</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">newNode = Node()
newNode.data = &#39;덕준&#39;
newNode.link = node2.link   # node3: kihyun
node2.link = newNode</code></pre>
<p>💻 <strong>출력</strong>
셔누 -&gt; 민혁 -&gt; 덕준 -&gt; 기현 -&gt; 형원 -&gt; 주헌 -&gt; 아이엠</p>
<h3 id="8-노드-삭제">8. 노드 삭제</h3>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">node3.link = node4.link   </code></pre>
<p>💻 <strong>출력</strong>
셔누 -&gt; 민혁 -&gt; 덕준 -&gt; 기현 -&gt; 주헌 -&gt; 아이엠</p>
<blockquote>
<ul>
<li>형원 삭제</li>
</ul>
</blockquote>
<ul>
<li>메모리상에 여전히 노드는 남아 있음</li>
</ul>
<p>✍ <strong>입력</strong></p>
<pre><code class="language-python">del(node3) </code></pre>
<blockquote>
<p>노드 완전 삭제</p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>