<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>oneweek_hand.log</title>
        <link>https://velog.io/</link>
        <description>호랑이!</description>
        <lastBuildDate>Wed, 04 Feb 2026 04:58:50 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>oneweek_hand.log</title>
            <url>https://velog.velcdn.com/images/oneweek_hand/profile/301b1f02-099c-4438-a9b5-5f254cae30f1/social_profile.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. oneweek_hand.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/oneweek_hand" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[Java] Set (백준 10815번)]]></title>
            <link>https://velog.io/@oneweek_hand/Java-Set-%EB%B0%B1%EC%A4%80-10815%EB%B2%88</link>
            <guid>https://velog.io/@oneweek_hand/Java-Set-%EB%B0%B1%EC%A4%80-10815%EB%B2%88</guid>
            <pubDate>Wed, 04 Feb 2026 04:58:50 GMT</pubDate>
            <description><![CDATA[<p><a href="https://www.acmicpc.net/problem/10815">백준10815번 문제</a>
백준 10815번 숫자카드 문제를 풀이하였다.</p>
<p>두 숫자 조합들에 중복이 있는지 확인하는 문제.
단, 숫자가 매우 많으므로 시간복잡도를 줄여야 한다.</p>
<h1 id="set">Set</h1>
<p>특징)</p>
<ol>
<li>입력 순서가 보장되지 않음</li>
<li>중복이 허용되지 않음</li>
<li>null 입력 가능함</li>
</ol>
<p><span style="color: red;">hashset</span>은 값 자체가 고유한 주소가 되므로 값을 찾을 때 모든 값을 순회할 필요가 없다.</p>
<p>순서 보장이 필요하면 <span style="color: red;">LinkedHashSet</span>을 사용한다.</p>
<h1 id="코드">코드</h1>
<blockquote>
<pre><code>import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.StringTokenizer;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        HashSet&lt;Integer&gt; s1 = new HashSet&lt;&gt;(N); //hashset 선언
        StringTokenizer st = new StringTokenizer(br.readLine(), &quot; &quot;);
        for(int i =0; i&lt;N;i++){           
           s1.add(Integer.parseInt(st.nextToken())); //hashset에 값 추가
        }
        int M = Integer.parseInt(br.readLine());
        LinkedHashSet&lt;Integer&gt; s2 = new LinkedHashSet&lt;&gt;(M); //hashset 선언
        StringTokenizer st2 = new StringTokenizer(br.readLine(), &quot; &quot;);
        for(int i =0; i&lt;M;i++){
         s2.add(Integer.parseInt(st2.nextToken())); //hashset에 값 추가
        }                
        StringBuilder sb = new StringBuilder();
        for(int num : s2){
            if(s1.contains(num)){
                sb.append(1).append(&#39; &#39;);
            } else {
                sb.append(0).append(&#39; &#39;);
            }
        }
        System.out.print(sb.toString());
    }
}</code></pre></blockquote>
<pre><code></code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[Java] Map(백준 18870번)]]></title>
            <link>https://velog.io/@oneweek_hand/%EB%B0%B1%EC%A4%80-18870%EB%B2%88-%EB%AC%B8%EC%A0%9C</link>
            <guid>https://velog.io/@oneweek_hand/%EB%B0%B1%EC%A4%80-18870%EB%B2%88-%EB%AC%B8%EC%A0%9C</guid>
            <pubDate>Tue, 03 Feb 2026 06:10:30 GMT</pubDate>
            <description><![CDATA[<p><a href="https://www.acmicpc.net/problem/18870">백준18870문제</a>
백준 18870번 문제를 풀면서 배운 것을 정리하자.</p>
<h1 id="1개요">1.개요</h1>
<p>수직선상의 좌표를 압축하는 문제다.
가장 작은 값 = 0, 그다음 작은 값 = 1 ... 
이런 식으로 단순화 시키는 것.
<em>(제한사항)</em></p>
<ul>
<li>1 ≤ N ≤ 1,000,000</li>
<li>-10<sup>9</sup> ≤ X<sub>i</sub> ≤ 10<sup>9</sup></li>
</ul>
<h1 id="2-코드">2. 코드</h1>
<blockquote>
<pre><code>import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));        
        int N = Integer.parseInt(br.readLine());
        int[] X = new int[N];
        int[] sorted = new int[N];    // 정렬용 배열
        StringTokenizer st = new StringTokenizer(br.readLine(), &quot; &quot;);
        for(int i =0; i&lt;N;i++){
            X[i] = Integer.parseInt(st.nextToken());
            sorted[i] = X[i];
        }
        //sorted 배열 정렬
        Arrays.sort(sorted);
        //좌표와 등수를 저장할 맵
        Map&lt;Integer, Integer&gt; rankingMap = new HashMap&lt;&gt;();
        //배열 순서대로 등수 매기기
        int rank = 0;
        for(int v : sorted) {
            if(!rankingMap.containsKey(v)) {
                rankingMap.put(v, rank);
                rank++;
            }
        }        
        StringBuilder sb = new StringBuilder();
        for(int i=0; i&lt;X.length; i++){
                sb.append(rankingMap.get(X[i])).append(&#39; &#39;);
        }
        System.out.print(sb.toString());
    }
}</code></pre></blockquote>
<p>```</p>
<h2 id="map">Map</h2>
<p>Key를 통해 Value를 얻는 자료형(파이썬의 딕셔너리와 비슷하다)
Key는 중복을 허용하지 않는다.
Value는 중복을 허용한다.</p>
<blockquote>
<p>Map&lt;Integer, Integer&gt; rankingMap = new HashMap&lt;&gt;();</p>
</blockquote>
<blockquote>
<p>rankingMap.put(&quot;key값&quot;, &quot;Value값&quot;); //Map 쓰기
rankingMap.get(&quot;key값&quot;);   //Value값 읽기</p>
</blockquote>
<p><strong>사용한 이유?</strong>
처음에는 2차원 배열로 코드를 구성하였는데 매긴 등수를 기존 N배열에 입력하는 과정에서 N배열과 2차원배열을 모두 순회해야해서 최악의 경우 
시간 복잡도 : O(n<sup>2</sup>) 으로 시간초과 실패하였다.</p>
<p>HaskMap은 저장순서를 보장하지 않고 Hasing을 사용해서 시간을 줄일 수 있다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Q-learning]]></title>
            <link>https://velog.io/@oneweek_hand/Q-learning</link>
            <guid>https://velog.io/@oneweek_hand/Q-learning</guid>
            <pubDate>Fri, 02 Jan 2026 02:24:37 GMT</pubDate>
            <description><![CDATA[<h1 id="1-강화학습">1. 강화학습</h1>
<blockquote>
<p>에이전트(Agent)가 환경(Environment)과 상호작용하며 목표를 달성하기 위해 스스로 의사결정하는 방법을 배우는 법</p>
</blockquote>
<h1 id="2-bellman-방정식">2. Bellman 방정식</h1>
<ul>
<li>에이전트가 어떤 행동에 대한 가치를 부여하는 방정식이다.</li>
</ul>
<blockquote>
<p>변수 정의</p>
</blockquote>
<ul>
<li><em>s</em> - State (모든 상태)</li>
<li><em>a</em> - Action (에이전트의 행동)</li>
<li><em>R</em> - Reward (보상)</li>
<li>_ γ_ (감마) - Discount(할인계수)</li>
</ul>
<h3 id="_-v_s--maxrs-a---γvs"><strong>_ V_(<em>s</em>) = max(<em>R</em>(<em>s</em>, <em>a</em>) +  γ<em>V</em>(<em>s&#39;</em>))</strong></h3>
<pre><code>     = (현재 s에 대한 a의 보상+ 다음상태의 보상 * 할인계수)의 최댓값</code></pre><h1 id="3-마르코브-의사결정-과정mdp">3. 마르코브 의사결정 과정(MDP)</h1>
<ul>
<li>강화학습의 기반이 되는 수학적 과정
(비유)
MDP = 미로의 규칙, 구조, 목표
Bellman equation = 미로 공략법</li>
</ul>
<h1 id="4-living-penalty">4. living penalty</h1>
<ul>
<li>에이전트가 불필요한 <em>a</em>(행동)을 하지 않도록 Bad Reward를 부여하는 것.
목적지 보상의 1/1000~1/100 수준의 living penalty가 적절하다.</li>
<li><em>living penalty가 너무 크면*</em> 목적지에 가기 전에 에이전트가 포기할 수 있음.</li>
<li><em>living penalty가 너무 작으면*</em> 최단 경로를 찾을 수 없음.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[파이썬] API]]></title>
            <link>https://velog.io/@oneweek_hand/%ED%8C%8C%EC%9D%B4%EC%8D%AC-API</link>
            <guid>https://velog.io/@oneweek_hand/%ED%8C%8C%EC%9D%B4%EC%8D%AC-API</guid>
            <pubDate>Sat, 06 Dec 2025 04:31:02 GMT</pubDate>
            <description><![CDATA[<h1 id="1-api">1. API?</h1>
<p><strong>A</strong>pplication <strong>P</strong>rogramming <strong>I</strong>nterface
= 서로 다른 소프트웨어들이 통신하고 데이터를 주고받기 위한 규칙</p>
<h1 id="2-api-사용하기">2. API 사용하기</h1>
<h2 id="1-api-endpoint">1. API endpoint</h2>
<p>= api url이다.</p>
<h2 id="2-api-request">2. API request</h2>
<p>= api 서버에 원하는 요청을 보내는 것.</p>
<blockquote>
<pre><code>import requests
response = requests.get(url=&quot;http://api.open-notify.org/iss-now.json&quot;)
response.raise_for_status() #오류 예외처리
print(response)</code></pre></blockquote>
<pre><code>결과(응답코드) &gt;&gt;&gt; &lt;Response [200]&gt;

응답코드 의미는 대체로 다음과 같다

&gt; 1xx : 요청 진행중
2xx : 요청 진행 완료
3xx : 권한 없음
4xx (a.k.a. 404) : 클라이언트 오류
5xx : 서버오류

더 자세한 오류코드는 구글링 하도록 하자

## 3. API parameter
API에 매개변수를 사용해서 원하는 값을 얻을 수 있다.

## 4. API key
API  제공사이트에서 개인 키를 발급받아 사용할 수 있다.
&gt; ```
params = (API가 요구하는 매개변수(키 포함))
r = requests.get(url=링크, params= 파라미터)</code></pre><h3 id="환경변수-사용하기">환경변수 사용하기</h3>
<blockquote>
<p>API를 코드에 직접 사용하면 유출 될 위험이 있다. [.env] 파일을 만들어서 환경변수를 설정 후 사용 할 수 있다.</p>
</blockquote>
<pre><code>import os
API_KEY = os.environ.get(&quot;.env파일에 입력한 환경변수&quot;)</code></pre><h1 id="3예시">3.예시</h1>
<p>주식 정보 불러오는 API(alphavantage)</p>
<blockquote>
<pre><code>import requests
import os
STOCK_ENDPOINT = &quot;https://www.alphavantage.co/query&quot;
STOCK_API_KEY = os.environ.get(&quot;STOCK_API_KEY&quot;)
stock_params = {
    &quot;function&quot; : &quot;TIME_SERIES_DAILY&quot;,
    &#39;symbol&#39; : 원하는주식,지수 등,
    &#39;apikey&#39;: STOCK_API_KEY,
}
stock_requests = requests.get(STOCK_ENDPOINT, params=stock_params)</code></pre></blockquote>
<pre><code></code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[파이썬] SMTP]]></title>
            <link>https://velog.io/@oneweek_hand/%ED%8C%8C%EC%9D%B4%EC%8D%AC-SMTP-datetime</link>
            <guid>https://velog.io/@oneweek_hand/%ED%8C%8C%EC%9D%B4%EC%8D%AC-SMTP-datetime</guid>
            <pubDate>Tue, 25 Nov 2025 01:57:17 GMT</pubDate>
            <description><![CDATA[<h1 id="1-smtp">1. SMTP?</h1>
<p><strong>S</strong>imple <strong>M</strong>ail <strong>T</strong>ransper <strong>P</strong>rotocol
메일을 주고받는데 사용하는 규칙(프로토콜)</p>
<h2 id="smtp-사용">SMTP 사용</h2>
<blockquote>
<pre><code>import smtplib
my_email = &quot;발신 이메일 주소&quot;
password = &quot;앱 비밀번호&quot;
connection = smtplib.SMTP(&quot;smtp.gmail.com&quot;)
connection.starttls()
connection.login(user=my_email, password=password)
connection.sendmail(from_addr=my_email, to_addrs=&quot;수신 이메일 주소&quot;, msg= &quot;보낼 내용&quot;)
connection.close()</code></pre></blockquote>
<pre><code></code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[파이썬] 예외처리]]></title>
            <link>https://velog.io/@oneweek_hand/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%98%88%EC%99%B8%EC%B2%98%EB%A6%AC</link>
            <guid>https://velog.io/@oneweek_hand/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%98%88%EC%99%B8%EC%B2%98%EB%A6%AC</guid>
            <pubDate>Fri, 21 Nov 2025 06:39:59 GMT</pubDate>
            <description><![CDATA[<p>유데미 파이썬 강의 중 새로 배운 내용을 정리한다.</p>
<h1 id="1-예외처리">1. 예외처리?</h1>
<p>코드 상 오류가 발생하여도 코드가 동작할 수 있도록 한다.</p>
<h1 id="2-try">2. try:</h1>
<blockquote>
<pre><code>try:
    이하의 구문에서 오류 발생 시 예외처리</code></pre></blockquote>
<pre><code>

# 3. except +예외처리 이름:
&gt; ```
except:
    해당 오류 발생 시 이하의 구문 동작</code></pre><h1 id="4-else">4. else:</h1>
<blockquote>
<pre><code>else:
    오류가 발생하지 않았을 시 이하의 구문 동작</code></pre></blockquote>
<pre><code>
# 5. finally:
&gt;```
finally:
    어떤 오류가 발생하든, 정상 작동하든 이하의 구문 동작</code></pre><h1 id="6-raise-예외처리-이름">6. raise +예외처리 이름</h1>
<blockquote>
<pre><code>raise ValueError(&quot;메세지&quot;)</code></pre></blockquote>
<pre><code>
코드 에러를 발생시키고 해당 예외처리와 메세지를 발생시킨다.



# 7. 사용
&gt; ```
try:
    f = open(&quot;file.txt&quot;)
    a_dictionary = {&quot;key&quot; : &quot;value&quot;}
    print(a_dictionary[&quot;sdsdf&quot;])
except FileNotFoundError:
    f = open(&quot;file.txt&quot;, &quot;w&quot;)
    f.write(&quot;Something&quot;)
except KeyError as error_message:
    print(f&quot;The key {error_message} does not exist.&quot;)
else:
    content = f.read()
    print(content)
finally:
    f.close()
    print(&quot;File was closed&quot;)</code></pre><ol>
<li>try: 오류가 발생 할 가능성 있는 구문</li>
<li>except: 해당 오류에 대응하는 구문</li>
<li>else: 오류 없을 시</li>
<li>finally: 마무리</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[파이썬] List&dictionary Comprehension]]></title>
            <link>https://velog.io/@oneweek_hand/%ED%8C%8C%EC%9D%B4%EC%8D%AC-List-Comprehension</link>
            <guid>https://velog.io/@oneweek_hand/%ED%8C%8C%EC%9D%B4%EC%8D%AC-List-Comprehension</guid>
            <pubDate>Mon, 17 Nov 2025 07:23:17 GMT</pubDate>
            <description><![CDATA[<p>유데미 파이썬 강의 중 새로 배운 내용을 정리한다.</p>
<h1 id="1-list예시">1. list예시</h1>
<blockquote>
<pre><code>numbers = [1,2,3] #배열의 각 요소에 1을 더하는 코드
new_list = []
for n in numbers:
    new_list.append(n+1)</code></pre></blockquote>
<pre><code>위 코드를 리스트 컴프리헨션을 사용한다면 다음과 같다</code></pre><p>new_list = [n+1 for n in list]</p>
<pre><code>
## 1. range(a,b)를 사용하기
&gt; ```
&gt;&gt;&gt;&gt;new_list = [n*2 for n in range(1,5)]
&gt;&gt;&gt;&gt;print(new_list)
[2,4,6,8]</code></pre><h2 id="2-if-사용하기">2. if 사용하기</h2>
<blockquote>
<pre><code>&gt;&gt;&gt;new_list = [n for n in range(1,10) if n % 2 == 0]
&gt;&gt;&gt;print(new_list)
[2,4,6,8]</code></pre></blockquote>
<pre><code>
## 3. 중첩 for 문 사용하기
&gt; ```
&gt;&gt;&gt;&gt;result = [m for m in list1 if m in list2]
#list1과 2의 겹치는 요소 찾기</code></pre><h1 id="2-dictionary-예시">2. dictionary 예시</h1>
<blockquote>
<pre><code>{key:value for key, value in key.items()}</code></pre></blockquote>
<pre><code>



# 3. 정의
기존 리스트를 기반으로 새로운 리스트를 생성하는 간결하고 효율적인 문법3
(출처: Copilot)

&gt; ```
새로운 리스트 = [새로운 요소  for n in 기존 리스트]</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[Python Challenge 5일차 TIL]]></title>
            <link>https://velog.io/@oneweek_hand/Python-Challenge-5%EC%9D%BC%EC%B0%A8-TIL</link>
            <guid>https://velog.io/@oneweek_hand/Python-Challenge-5%EC%9D%BC%EC%B0%A8-TIL</guid>
            <pubDate>Fri, 10 Mar 2023 14:28:00 GMT</pubDate>
            <description><![CDATA[<p>개요 : 언더독레볼루션 입부를 위한 시험과제, 5일차까지 있으며 기본적인 파이썬을 공부한다</p>
<h3 id="1인스턴스">1.인스턴스</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/b63ced9b-9bb6-4a62-81ac-60cc0473948f/image.png" alt="">
(실습2)</p>
<blockquote>
<p>list1 = list(range(10))
list2 = [1, 2, 3]
if isinstance( list1 , list) and isinstance( list2 , list):
    print(&quot;list1과 list2는 둘 다 list클래스 입니다.&quot;)</p>
</blockquote>
<h3 id="2클래스">2.클래스</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/058112d8-4d09-446b-8788-24a6703ae0e9/image.png" alt="">
(실습)</p>
<blockquote>
<p>class Car():
    &#39;&#39;&#39;자동차&#39;&#39;&#39;
taxi = Car()
taxi.name = &quot;택시&quot;</p>
</blockquote>
<h3 id="3모델링">3.모델링</h3>
<p>(모델링에 대한 실습이 없다..)</p>
<h3 id="4메소드">4.메소드</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/d58591e7-277d-4a06-ae2f-b907447eac60/image.png" alt="">
(실습)</p>
<blockquote>
<p>class Car():
    &#39;&#39;&#39;자동차&#39;&#39;&#39;
     def run(self):
        print(&quot;{}가 달립니다.&quot;.format(self.name))
taxi = Car()
taxi.name = &quot;택시&quot;
taxi.run()</p>
</blockquote>
<h4 id="완강인증">완강인증!</h4>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/c31b33b0-0e79-43d0-ae9c-6fd022253e91/image.png" alt="">
(완강인증샷)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Python Challenge 4일차 TIL]]></title>
            <link>https://velog.io/@oneweek_hand/Python-Challenge-4%EC%9D%BC%EC%B0%A8-TIL</link>
            <guid>https://velog.io/@oneweek_hand/Python-Challenge-4%EC%9D%BC%EC%B0%A8-TIL</guid>
            <pubDate>Thu, 09 Mar 2023 12:06:51 GMT</pubDate>
            <description><![CDATA[<p>개요 : 언더독레볼루션 입부를 위한 시험과제, 5일차까지 있으며 기본적인 파이썬을 공부한다</p>
<h3 id="1튜플만들기">1.튜플만들기</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/c19c3fd0-fb8f-4b56-aa0c-2d6c16a8753e/image.png" alt="">
(실습1)</p>
<blockquote>
<p>tuple1 = (1,2,3)
tuple2 = 1,2,3
list3 = [1,2,3]
tuple3 = tuple(list3)
if tuple1 == tuple2 == tuple3:
    print(&quot;tuple1과 tuple2와 tuple3은 모두 같습니다.&quot;)</p>
</blockquote>
<h3 id="2while">2.While</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/97901365-3fea-4301-afac-4070ca9fd220/image.png" alt="">
(실습)</p>
<blockquote>
<p>numbers = [1,2,3]
length = len(numbers)
i = 0
while i &lt; length:
    print(numbers[i])
    i = i + 1</p>
</blockquote>
<h3 id="3break-continue">3.break, continue</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/44379b10-97ab-4ba2-b50e-7f9373f69977/image.png" alt="">
(실습1)</p>
<blockquote>
<p>sizes = [33,35,34,37,32,35,39,32,35,29]
for i,size in enumerate(sizes):
    if size == 32:
        print(&quot;사이즈 32인 바지는 {}번째에 있다.&quot;.format(i+1))
        break</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/5d09ce84-519e-4826-bb11-2063e56ba147/image.png" alt="">
(실습2)</p>
<blockquote>
<p>numbers = [(1, 2), (10, 0)]
for a, b in numbers:
    if b == 0:
        print(&quot;0으로 나눌 수는 없습니다.&quot;)
        continue
    print(&quot;{}을(를) {}로 나누면 {}&quot;.format(a, b, a/b))</p>
</blockquote>
<h3 id="4try-except">4.try except</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/94416b52-fb7a-4cac-ad61-3bfa676fc394/image.png" alt="">
(실습)</p>
<blockquote>
<p>try:
    a = 3/0
except Exception:
    print(&quot;0으로 나눌 수 없습니다.&quot;)</p>
</blockquote>
<h4 id="오늘도-완강">오늘도 완강</h4>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/6562773e-3fd0-4ebf-90b2-e6bab3474256/image.png" alt="">
(완강인증)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Python Challenge 3일차  TIL]]></title>
            <link>https://velog.io/@oneweek_hand/Python-Challenge-3%EC%9D%BC%EC%B0%A8-TIL</link>
            <guid>https://velog.io/@oneweek_hand/Python-Challenge-3%EC%9D%BC%EC%B0%A8-TIL</guid>
            <pubDate>Wed, 08 Mar 2023 14:51:32 GMT</pubDate>
            <description><![CDATA[<p>개요 : 언더독레볼루션 입부를 위한 시험과제, 5일차까지 있으며 기본적인 파이썬을 공부한다</p>
<p>3일차는 생각보다 양이 많았다. 리스트부터 딕셔너리까지 배웠다.</p>
<h3 id="1리스트-사용">1.리스트 사용</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/6a0c0acf-d330-4e04-96d2-43b35506b3a5/image.png" alt="">
(실습1)</p>
<blockquote>
<p>rainbow=[&#39;빨강&#39;,&#39;주황&#39;,&#39;노랑&#39;,&#39;초록&#39;,&#39;파랑&#39;,&#39;남색&#39;,&#39;보라&#39;]
#rainbow를 이용해서 first_color에 값을 저장하세요
first_color = rainbow[0]
print(&#39;무지개의 첫번째 색은 {}이다&#39;.format(first_color) )</p>
</blockquote>
<p>그냥 배열이다</p>
<h3 id="1-1-리스트-수정">1-1. 리스트 수정</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/e0885404-6c52-4e4d-ae8f-ba0cb4e8d632/image.png" alt="">
(실습3)</p>
<blockquote>
<p>numbers = [1,2,3,4,5]
if 5 in numbers :
    print(&quot;5가 있다&quot;)</p>
</blockquote>
<p>간단하다. 사람이 하는 말을 그냥 써놓은 듯하여 직관적이다.</p>
<h3 id="2for-in-list">2.for in list</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/6e6a0c11-744a-4473-a062-f1c639ad19d5/image.png" alt="">
(실습)</p>
<blockquote>
<p>list = [&#39;가위&#39;,&#39;바위&#39;,&#39;보&#39;]
for list in list:
    print(list)</p>
</blockquote>
<p>반복문</p>
<h3 id="2-1for-in-range">2-1.for in range</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/4ba8e574-8887-47a2-93b0-1fcb87c76472/image.png" alt="">
(실습4)
조건이 있는 반복문. C에비해 지역변수를 만들고 횟수를 세는 과정이 줄었지만 생각보다 헷갈린다. 익숙해지면 괜찮을 듯 하다.</p>
<blockquote>
<p>days = [31,29,31,30,31,30,31,31,30,31,30,31]
for i in range(12):
    print(&#39;{}월의 날짜수는 {}일 입니다.&#39;.format( i + 1 , days[i]))</p>
</blockquote>
<h3 id="3-딕셔너리-만들기">3. 딕셔너리 만들기</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/5693e1af-2d2d-4462-8d3d-006a6e1552da/image.png" alt="">
(실습1)</p>
<blockquote>
<p>days_in_month = {
    #여기에 코드를 완성해 보세요.
    &#39;1월&#39; : 31,
    &#39;2월&#39; : 28,
    &#39;3월&#39; : 31
 }
print(days_in_month)</p>
</blockquote>
<p>이걸보고 파이썬에서 딥러닝하기 좋을 것 같다는 생각이 들었다.</p>
<h3 id="3-1딕셔너리와-반복문">3-1.딕셔너리와 반복문</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/514b1f8a-70e9-4c5c-aae4-2f3bd337d665/image.png" alt="">
(실습1)</p>
<blockquote>
<p>days_in_month = {&quot;1월&quot;:31, &quot;2월&quot;:28, &quot;3월&quot;:31, &quot;4월&quot;:30, &quot;5월&quot;:31}
for key in days_in_month.keys():
    print(key)</p>
</blockquote>
<h4 id="오늘도-완강">오늘도 완강!</h4>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/02f728b9-1fa2-4ef3-85bf-eebe386d55b0/image.png" alt="">
<img src="https://velog.velcdn.com/images/oneweek_hand/post/6db3b9c0-3927-4670-be62-bbdbf5b25f83/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Python Challenge 2일차 TIL]]></title>
            <link>https://velog.io/@oneweek_hand/Python-Challenge-2%EC%9D%BC%EC%B0%A8-TIL</link>
            <guid>https://velog.io/@oneweek_hand/Python-Challenge-2%EC%9D%BC%EC%B0%A8-TIL</guid>
            <pubDate>Tue, 07 Mar 2023 10:25:53 GMT</pubDate>
            <description><![CDATA[<p>개요 : 언더독레볼루션 입부를 위한 시험과제, 5일차까지 있으며 기본적인 파이썬을 공부한다</p>
<p>2일차는 조건식부터 시작하여 함수에 관한 것을 하고 사용자 입력을 받는 것을 배웠다.</p>
<h3 id="1-조건문">1. 조건문</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/1ffe5828-a0d4-4260-a912-646be9d61b43/image.png" alt="">
(실습2)</p>
<blockquote>
<p>number = 15
if number % 3 == 0: #number가 3의 배수인지 확인합니다.
    print(&quot;{}는 3의 배수입니다.&quot;.format(number))#이 코드는 실행됩니다.
number = 16
if number % 3 == 0: #number가 3의 배수인지 확인합니다.
    print(&quot;{}는 3의 배수입니다.&quot;.format(number))#이 코드는 실행되지 않습니다.</p>
</blockquote>
<h3 id="1-1-if-else문">1-1. If-else문</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/c001a3b8-ea6c-4a90-8519-40546af00904/image.png" alt="">
(실습2)</p>
<blockquote>
<p>gender = &quot;남자&quot;
#이 아래줄에 if문을 추가하세요
if gender == &quot;남자&quot;:
    print(&quot;남자입니다.&quot;)
#이 아래줄에 elif문을 추가하세요
elif gender == &quot;여자&quot;:
    print(&quot;여자입니다.&quot;)
#이 아래줄에 else문을 추가하세요
else:
    print(&quot;논바이너리입니다&quot;)</p>
</blockquote>
<p>C에서 중첩 조건문 쓸 때 가독성을 떨어트리는 중괄호를 없애고 들여쓰기로 구분하며 elif로 가독성을 높혔다.</p>
<h3 id="2-함수">2. 함수</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/540fbdba-a185-4539-8426-bd85e88b08a9/image.png" alt="">
(함수만들기 - 실습)</p>
<blockquote>
<p>a = 5
b = 7
#이 아래줄에 a와 b를 더해서 result에 저장하는 함수add를 만들어 보세요.
def add():
    result = a + b #함수 내부의 코드가 되려면 이 줄은 들여쓰기 되어야 합니다.
    print(result) #함수 내부의 코드가 되려면 이 줄은 들여쓰기 되어야 합니다.
#이 아래에서 add함수를 사용해 보세요.
add()</p>
</blockquote>
<p>C와 비슷하다. Main함수가 없는 것 정도 차이인듯</p>
<h3 id="2-1-매개변수">2-1. 매개변수</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/7242907e-38d8-4ae3-b894-11c742c1de5d/image.png" alt="">
(매개변수 - 실습)</p>
<blockquote>
<p>def add(a,b):
    #함수 add에서 a와 b를 입력받아서 두 값을 더한 값을 result에 저장하고 출력하도록 만들어 보세요.
    result = a + b
    print( &quot;{} + {} = {}&quot;.format(a,b,result) )#print문은 수정하지 마세요.
add(10,5)</p>
</blockquote>
<h3 id="2-2-함수의-값return">2-2. 함수의 값(return)</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/bd0bb66e-229f-4734-8dd9-34558f34f5e1/image.png" alt="">
(함수의 값 - 실습)</p>
<blockquote>
<p>#아래 영역에 코드를 작성해 보세요.
def add(a, b):
    return a+b
print(add)</p>
</blockquote>
<h3 id="3-사용자-입력받기">3. 사용자 입력받기</h3>
<blockquote>
<p>방법
mine = input(&#39;입력받기 전에 출력될 문자를 적는다(비워져도 됨)&#39;)
print(mine)</p>
</blockquote>
<p>input은 사용자의 입력값을 return하는 파이썬이 제공하는 함수이다.
ctrl + c로 종료할 수 있다.</p>
<h3 id="end-2일차">END 2일차</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/aa0df87e-5fd1-45e8-8948-a2358c717d3a/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/13a59e52-8393-4810-bbc1-67a0ddd7da19/image.png" alt="">
(2일차 완강)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Python Challenge 1일차 TIL]]></title>
            <link>https://velog.io/@oneweek_hand/Python-Challenge-1%EC%9D%BC%EC%B0%A8-TIL</link>
            <guid>https://velog.io/@oneweek_hand/Python-Challenge-1%EC%9D%BC%EC%B0%A8-TIL</guid>
            <pubDate>Mon, 06 Mar 2023 12:10:05 GMT</pubDate>
            <description><![CDATA[<p>개요 : 언더독레볼루션 입부를 위한 시험과제, 5일차까지 있으며 기본적인 파이썬을 공부한다</p>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/db000a6c-42b5-4aa4-8e82-b53643507aab/image.png" alt=""></p>
<h4 id="모든-코딩-강의가-그렇듯-코딩환경-조성부터-시작하지만-이미-visual-studio-code로-파이썬-코딩환경을-조성해-놓은-나는-건너뛰었다"><strong>모든</strong> 코딩 강의가 그렇듯 코딩환경 조성부터 시작하지만 이미 Visual Studio Code로 파이썬 코딩환경을 조성해 놓은 나는 건너뛰었다</h4>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/f70c2c8f-683d-4d48-9648-98e49c352268/image.png" alt="">
(Visual Studio Code에서 파이썬을 연습한 흔적들이다)</p>
<h1 id="코딩내용">코딩내용</h1>
<p>C++배운사람으로서 중요하게 생각하는것만 적을 것이다.</p>
<h3 id="1안녕세상"><strong>1.안녕세상</strong></h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/e8c5db3e-19c9-4234-b89d-a2ab6f8d335d/image.png" alt=""> (실습1)</p>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/97602b83-94a2-4356-89ce-79a16c281e0b/image.png" alt=""> (모든 코딩의시작) </p>
<h3 id="2변수사용">2.변수사용<img src="https://velog.velcdn.com/images/oneweek_hand/post/5619e1c7-ad52-4395-8fd2-9d671b73b943/image.png" alt=""></h3>
<p>(C계열 언어와 달리 변수의 형을 지정하지 않아도 된다는 것은 큰 즐거움이다)
<img src="https://velog.velcdn.com/images/oneweek_hand/post/fae61306-a5c0-40bf-bc1a-5ccffbdd1608/image.png" alt="">
(C++만큼 간단한 출력)
<img src="https://velog.velcdn.com/images/oneweek_hand/post/3483f1be-a017-454c-8807-bb1039cdcc03/image.png" alt="">
(문자열실습1)
(제곱을 ^이게아니고 **로 표현하는건 좀 당황스럽다)</p>
<h3 id="3if문--else">3.If문 (+ else)</h3>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/e086be2c-99ac-4689-aa0a-549f6d10a442/image.png" alt="">
(괄호가 사라진 C)</p>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/b705a403-5c43-4dc4-9035-86019e3829ef/image.png" alt="">
(1일차 분량 완료!)</p>
<p><img src="https://velog.velcdn.com/images/oneweek_hand/post/65674e24-2334-43a7-a3fb-5506eeb6ebe9/image.png" alt="">
(듣다보니 어느새 2일차)</p>
<p>나머지는 2일차에서!</p>
]]></description>
        </item>
    </channel>
</rss>