<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>ys_lk515.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Mon, 20 Mar 2023 22:51:28 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>ys_lk515.log</title>
            <url>https://velog.velcdn.com/images/ys_lk515/profile/d67a7e19-e139-4c55-8016-0c1bbe0edd0c/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. ys_lk515.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/ys_lk515" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[3/13~3/19 제로베이스스쿨 Study Note]]></title>
            <link>https://velog.io/@ys_lk515/313319-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note</link>
            <guid>https://velog.io/@ys_lk515/313319-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note</guid>
            <pubDate>Mon, 20 Mar 2023 22:51:28 GMT</pubDate>
            <description><![CDATA[<h2 id="project1-analysis-seoul-cctv">Project1. Analysis Seoul CCTV</h2>
<ul>
<li>그래프에 마이너스 기호가 깨지는 것을 방지하기 위한 코드 입력 필요 <pre><code>import matplotlib.pyplot as plt
from matplotlib import rc
plt.rcParams[&quot;axes.unicode_minus = False
rc(&quot;font&quot;, family=&quot;Malgun Gothic&quot; #맥북의 경우 Arial Unicode MS</code></pre></li>
<li>나의 경우, 위의 코드를 입력해도 마이너스 부호가 깨지는 현상이 있어 아래의 코드를 사용함<pre><code>import matplotlib.pyplot as plt
plt.rcParams[&quot;axes.unicode_minus&quot;] = False
get_ipython().run_line_magic(&quot;matplotlib&quot;, &quot;inline&quot;)</code></pre></li>
<li>Pandas의 DataFrame은 데이터 변수에서 바로 plot() 명령 사용 가능하며, 데이터(컬럼)가 많은 경우 정렬한 후 그리는 것이 효과적인 경우가 많음
<img src="https://velog.velcdn.com/images/ys_lk515/post/88edc1b1-f2d5-4ded-8e80-e8c49dcf5e52/image.png" alt=""></li>
<li>Numpy를 이용한 1차 직선 만들기</li>
<li>절차 
① np.polyfit : 직선을 구성하기 위한 계수 계산
<img src="https://velog.velcdn.com/images/ys_lk515/post/9ca8f030-78ef-4fce-bf08-a22b10cc91fc/image.png" alt="">
② np.poly1d : polyfit으로 찾은 계수를 이용해 python에서 사용할 함수로 만들어줌
<img src="https://velog.velcdn.com/images/ys_lk515/post/29ef1da8-1c43-48e9-8c26-622cc2e4590b/image.png" alt="">
③ 경향선을 그리기 위해 x 데이터 생성 → np.linspace(a, b, n) : a부터 b까지 n개의 등간격 데이터 생성
<img src="https://velog.velcdn.com/images/ys_lk515/post/ef208dc6-aae7-493b-9143-2664cc150fcc/image.png" alt=""></li>
</ul>
<h2 id="project2-analysis-seoul-crime">Project2. Analysis Seoul Crime</h2>
<ul>
<li><p>데이터 확인 및 초기 정리
<img src="https://velog.velcdn.com/images/ys_lk515/post/621e8724-5582-4dbe-8967-3aa0976f8249/image.png" alt=""></p>
</li>
<li><p>숫자 값들이 콤마(,)를 사용하고 있어 문자로 인식될 수 있기 때문에 천단위 구분(thousands = &quot;,&quot;)을 입력해주면 콤마를 제거하고 숫자형으로 읽음</p>
</li>
<li><p>Pandas Pivot Table
<img src="https://velog.velcdn.com/images/ys_lk515/post/1959c888-11f5-4055-8d03-6857988e813e/image.png" alt=""></p>
</li>
<li><p>Name을 인덱스로 두고 정렬하라는 의미
<img src="https://velog.velcdn.com/images/ys_lk515/post/63b04d09-8097-4781-8f8c-890e1d24a098/image.png" alt=""></p>
</li>
<li><p>index를 여러개 지정할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/2b50b662-a027-496d-ba41-d57890b5dadc/image.png" alt=""></p>
</li>
<li><p>values를 지정할 수 있으며, values에 함수를 적용할 수 있음 → 디폴트는 평균값으로, 합산 등 다른 함수를 적용할 때는 아래와 같이 aggfunc 옵션 지정
<img src="https://velog.velcdn.com/images/ys_lk515/post/78765a5c-0ff9-43d4-9735-c1f178d201c1/image.png" alt=""></p>
</li>
<li><p>개수(len), 분류(columns)도 지정 가능함</p>
</li>
<li><p>pip 명령</p>
</li>
<li><p>python의 공식 모듈 관리자</p>
</li>
<li><p>pip list : 현재 설치된 모듈 리스트 반환</p>
</li>
<li><p>pip install module_name : 모듈 설치</p>
</li>
<li><p>pip uninstall module_name : 설치된 모듈 제거</p>
</li>
<li><p>conda 명령(pip를 사용하면 conda 환경에서 dependency 관리가 정확하지 않을 수 있으므로, 아나콘다에서는 가급적 conda 명령으로 모듈을 관리하는 것이 좋음, but 모든 모듈이 conda로 설치되는 것은 아님!)</p>
</li>
<li><p>conda list : 설치된 모듈 list</p>
</li>
<li><p>conda install module_name : 모듈 설치</p>
</li>
<li><p>conda uninstall module_name : 모듈 제거</p>
</li>
<li><p>conda install -c channel_name module_name : 지정된 배포 채널에서 모듈 설치 </p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[3/6~3/12 제로베이스 스쿨 Study Note]]></title>
            <link>https://velog.io/@ys_lk515/36312-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%8A%A4%EC%BF%A8-Study-Note</link>
            <guid>https://velog.io/@ys_lk515/36312-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%8A%A4%EC%BF%A8-Study-Note</guid>
            <pubDate>Sun, 12 Mar 2023 12:40:45 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h3 id="project1-analysis-seoul-cctv">Project1. Analysis Seoul CCTV</h3>
</li>
</ul>
<h4 id="---pandas">- ** Pandas**</h4>
<p>-Python에서 R만큼의 강력한 데이터 핸들링 성능을 제공하는모듈 
-단일 프로세스에서는 최대 효율
-코딩 및 응용 가능한 엑셀(누군가는 스테로이드를 맞은 엑셀로 표현)
-python 모듈에 대한 naming 규칙
①import Module : Module을 사용하겠다는 의미
→ Module.function 으로 사용
②import Module as md : Module을 사용할건데, 앞으로 md라는 이름으로 부르겠다는 의미
→ md.function 으로 사용
③from Module import function : Module에 포함된 function이라는 함수만 사용하겠다는 의미 
→ function 으로 사용
-pandas에서 엑셀 및 텍스트 파일 읽기 :통상 csv 파일은 띄어쓰기로 구분되므로 read_csv 명령으로 읽기만 해도 되며, 긴 파일명은 끝까지 입력하는 것 보다 오류 방지를 위해 적당한 곳에서 TAB 키를 눌러 자동완성되도록 하는 것이 좋음
<img src="https://velog.velcdn.com/images/ys_lk515/post/e8a40362-d80a-4b89-8d6e-ee70f1942d49/image.png" alt="">
-한글 encoding 설정 필수
→ import matplotlib.pyplot as plt
   plt.rcParams[&#39;axes.unicode_minus&#39;] = False</p>
<ul>
<li><h4 id="pandas-dataframe-구조">Pandas DataFrame 구조</h4>
<p><img src="https://velog.velcdn.com/images/ys_lk515/post/0c6b681e-1f36-4fcf-9d70-8d66b5eea47a/image.png" alt=""></p>
</li>
<li><p>Pandas에서 column 이름 조회
<img src="https://velog.velcdn.com/images/ys_lk515/post/3ce48963-8c51-42bf-9d51-9f219f6656a8/image.png" alt=""></p>
</li>
<li><p>column 이름을 바꾸고 싶을 때
<img src="https://velog.velcdn.com/images/ys_lk515/post/dfdc13dd-541d-4c5b-8c6b-16b8f790054a/image.png" alt=""></p>
</li>
<li><p>갖고오고 싶은 column만 가져오기
<img src="https://velog.velcdn.com/images/ys_lk515/post/8dd488c6-7529-4027-aca6-597118022367/image.png" alt="">
→ 엑셀 설정 + 자료를 읽기 시작할 행(header) 지정 + 읽어올 엑셀의 컬럼 지정(usecols)</p>
</li>
<li><h4 id="pandas-기초">Pandas 기초</h4>
<p><img src="https://velog.velcdn.com/images/ys_lk515/post/abf122c4-03f6-44e9-8b58-a6d2e4855706/image.png" alt="">
→ pandas는 통상 pd로 import하고, 수치해석적 함수가 많은 numpy는 통상 np로 import함
<img src="https://velog.velcdn.com/images/ys_lk515/post/38816b99-a078-41a2-a1a4-901bd5450939/image.png" alt="">
→ pandas의 데이터형을 구성하는 기본은 <strong>Series</strong>
<img src="https://velog.velcdn.com/images/ys_lk515/post/409dbd43-ae3a-493a-8b1c-9868f4bf8ffd/image.png" alt="">
→ pandas에서 가장 많이 사용하는 데이터형은 <strong>DataFrame</strong>이며, index와 columns를 지정하면 됨</p>
</li>
<li><p>df.head() : 괄호안에 숫자를 입력하지 않으면 앞 부분 5개의 데이터 확인</p>
</li>
<li><p>df.index : DataFrame의 index 확인</p>
</li>
<li><p>df.columns : DataFrame의 column 확인</p>
</li>
<li><p>df.values : DataFrame의 value 확인</p>
</li>
<li><p>df.info() : DataFrame의 기본 정보 확인, 각 column의 크기와 데이터 형태를 확인하는 경우가 많음</p>
</li>
<li><p>df.describe() : DataFrame의 통계적 기본 정보 확인
<img src="https://velog.velcdn.com/images/ys_lk515/post/8bcd41e3-2fa4-46d4-9ceb-30d990e270ba/image.png" alt=""></p>
</li>
<li><p>df.sort_values : 데이터 정렬(ascending = False, 내림차순 정렬)
<img src="https://velog.velcdn.com/images/ys_lk515/post/5c19e17a-01d7-4ba8-ac92-1d63ac9ff5f9/image.png" alt=""></p>
</li>
<li><p>df[&quot;A&quot;] : 특정 column만 읽기(여기서는 A column만 읽기)</p>
</li>
<li><p>df[n:m] : n부터 m-1까지, 그러나 index나 column의 이름으로 slice하는 경우는 끝까지 포함</p>
</li>
<li><p>df.loc
<img src="https://velog.velcdn.com/images/ys_lk515/post/f82343c9-ae80-4b25-811f-c8876a2e8c43/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/851ee052-fd94-48ae-aead-4c085cef9c37/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/d5c0d479-5630-4c20-a5a2-d3104e1b7af2/image.png" alt=""></p>
</li>
<li><p>df.iloc : iloc 옵션을 이용해 번호로만 접근 가능
<img src="https://velog.velcdn.com/images/ys_lk515/post/a19097ea-c1a0-4b7f-ae76-d741b36947a2/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/77c0387f-4b32-425e-b766-8037d9a9db07/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/f70be507-f735-4ab8-a480-b7817a166e86/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/07f35476-8ce9-4545-b10c-f64fef736fd4/image.png" alt=""></p>
</li>
<li><p>df
→ df[conditon]과 같이 사용하는 것이 일반적
→ pandas의 버전에 따라 조금씩 허용되는 문법이 다르기 때문에 인터넷에서 확보된 소스코드를 돌릴 때는 pandas의 버전을 확인하는 것이 필요</p>
</li>
<li><p>df.isin : 특정 요소가 있는지 확인</p>
</li>
<li><p>del df[&quot;column&quot;] : 특정 column 삭제(행을 지우는 명령 → drop)</p>
</li>
<li><p>df.apply(np.cumsum) : 각 column 누적 합계</p>
</li>
<li><p>unique() : 여러번 등장하는 데이터 조사, 데이터 양이 많아지면 unique 조사를 통해 데이터 초반 검증 필요</p>
</li>
<li><p>merge : 데이터 병합
→ key column을 기준으로 병합 : 교집합 데이터만 합침
<img src="https://velog.velcdn.com/images/ys_lk515/post/89d8e699-754e-4c6c-8ae2-b646e91b8b7d/image.png" alt="">
→ left에서 key를 기준으로 right 병합
<img src="https://velog.velcdn.com/images/ys_lk515/post/a9b1fe8b-1f05-4dd6-a71a-5dcd4aa7a5ba/image.png" alt="">
→ right에서 key를 기준으로 left 병합
<img src="https://velog.velcdn.com/images/ys_lk515/post/8d5ebb6a-5d07-4b00-b506-8fa75af81a48/image.png" alt="">
→ 둘 다 손상되지 않도록 key를 기준으로 병합(합집합)
<img src="https://velog.velcdn.com/images/ys_lk515/post/9602a35d-ff11-4f5f-b51e-9622221fa152/image.png" alt="">
→ key column에서 두 데이터 공통분모만 병합(교집합), how를 입력하지 않았을 때의 결과와 동일
<img src="https://velog.velcdn.com/images/ys_lk515/post/c1c64eff-62f7-4981-a638-166949f1fa07/image.png" alt=""></p>
</li>
<li><p>data_result.corr() : 상관관계
→ 데이터의 관계를 찾을 때, 최소한의 근거가 있어야 데이터를 비교하는 의미가 존재. 상관계수를 조사해서 0.2 이상의 데이터를 비교하는 것은 의미있음 (r &lt; 0.2: 상관관계가 없거나 무시해도 좋은수준/r &lt; 0.4: 약한 상관관계/r &gt; 0.6: 강한 상관관계/r = -1: 음의 상관관계가 강함)</p>
</li>
<li><h4 id="matplotlib-기초"><strong>matplotlib 기초</strong></h4>
<p><img src="https://velog.velcdn.com/images/ys_lk515/post/012ddd86-7746-4952-8395-3c906c56759b/image.png" alt=""></p>
</li>
<li><p>figure로 열고, show로 닫음
<img src="https://velog.velcdn.com/images/ys_lk515/post/18ebf3f8-a39f-44fb-8de1-40f01113bf17/image.png" alt=""></p>
</li>
<li><p>grid: 그래프의 격자</p>
</li>
<li><p>title: 그래프 이름</p>
</li>
<li><p>xlabel: x축 제목</p>
</li>
<li><p>ylabel: y축 제목
<img src="https://velog.velcdn.com/images/ys_lk515/post/211fe886-b3bc-47ac-808b-e0032782a04d/image.png" alt=""></p>
</li>
<li><p>scatter: 점을 뿌리듯이 그리는 그래프
<img src="https://velog.velcdn.com/images/ys_lk515/post/d9822425-a3d5-4c82-9384-271cbb102c1c/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/7ad6e5c6-6a83-4d61-ae4a-df55c733a8a8/image.png" alt=""></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2.27~3.5 제로베이스스쿨 Study Note]]></title>
            <link>https://velog.io/@ys_lk515/2.273.5-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note</link>
            <guid>https://velog.io/@ys_lk515/2.273.5-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note</guid>
            <pubDate>Sun, 05 Mar 2023 14:53:56 GMT</pubDate>
            <description><![CDATA[<p>&lt;&lt;이번 주는 개인적인 일정으로 인강 수강에 어려움이 있던 한 주였다. 인강을 많이 듣지 못해 아쉬움이 남는 한 주였지만, 들은 것 위주로 간단히 Study Note를 작성해보았다.&gt;&gt;</p>
<ul>
<li><h3 id="삽입정렬-실습"><strong>삽입정렬 실습</strong></h3>
<blockquote>
<p>1부터 1000까지의 난수 100개 생성 후, 
①생성된 난수들을 오름차순 또는 내림차순으로 정렬하는 알고리즘 구현
②생성된 난수 중 최솟값, 최댓값을 반환하는 함수 구현</p>
</blockquote>
</li>
<li><p>먼저 모듈을 생성해준다.
<img src="https://velog.velcdn.com/images/ys_lk515/post/e1932e4e-710d-47e6-8536-ef2646bba2e5/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/41ef1479-0e19-4380-a066-efe45b6e5522/image.png" alt=""></p>
</li>
<li><p>모듈을 불러내어 사용한다.
<img src="https://velog.velcdn.com/images/ys_lk515/post/5cecc0ec-9140-41df-9e35-7f86fb1769d9/image.png" alt=""></p>
</li>
<li><h3 id="선택정렬"><strong>선택정렬</strong></h3>
</li>
<li><p>선택정렬이란, 주어진 리스트 중 최소값을 찾아 그 값을 맨 앞에 위치한 값과 교체하는 방식으로 정렬하는 알고리즘
<img src="https://velog.velcdn.com/images/ys_lk515/post/d58c8a06-cbfb-4e5a-b0a9-567ccbe7f2a6/image.png" alt=""></p>
</li>
<li><h3 id="선택정렬-실습"><strong>선택정렬 실습</strong></h3>
<blockquote>
<p>선택정렬 알고리즘을 이용해서 학생 20명의 시험 점수를 오름차순과 내림차순으로 정렬하는 모듈을 만들어보자. 단, 시험점수는 50부터 100까지로 한다.</p>
</blockquote>
</li>
<li><p>모듈 생성-2가지 방식으로 모듈을 만들어볼 수 있다.</p>
</li>
<li><p>방법 1
<img src="https://velog.velcdn.com/images/ys_lk515/post/75d1a15f-dd4c-4963-bc44-90894bbe981c/image.png" alt=""></p>
</li>
<li><p>방법 2
<img src="https://velog.velcdn.com/images/ys_lk515/post/68a82744-0abb-4c69-b1a0-93aedebea45e/image.png" alt=""></p>
</li>
<li><p>모듈 사용</p>
</li>
<li><p>모듈 사용 → 깊은 복사를 사용하여 내림차순으로 정렬하기 전에 정렬되지 않은 리스트를 확인해볼 수 있다.
<img src="https://velog.velcdn.com/images/ys_lk515/post/eb245b58-6464-478a-a6c0-e059aa35becc/image.png" alt=""></p>
</li>
<li><p>첫번째 모듈 사용 결과
<img src="https://velog.velcdn.com/images/ys_lk515/post/d469a5aa-ee7d-44d8-a9b7-91028ef3fc1b/image.png" alt=""></p>
</li>
<li><p>두번째 모듈 사용 결과 → cnt 값을 통해 정렬이 몇 번 이루어졌는지 확인할 수 있다.
<img src="https://velog.velcdn.com/images/ys_lk515/post/a36e2177-e5f4-465c-b2fc-52ec42ecdcba/image.png" alt=""></p>
</li>
<li><h3 id="최댓값"><strong>최댓값</strong></h3>
</li>
<li><p>자료구조에서 가장 큰 값을 찾는 알고리즘</p>
</li>
<li><h3 id="최댓값-알고리즘-실습"><strong>최댓값 알고리즘 실습</strong></h3>
<blockquote>
<p>리스트에서 아스키코드가 가장 큰 값을 찾는 알고리즘을 만들어보자.</p>
</blockquote>
</li>
<li><p>클래스 생성
<img src="https://velog.velcdn.com/images/ys_lk515/post/c431819e-db3a-40e7-bc2c-ea52f6cb9146/image.png" alt=""></p>
</li>
<li><p>클래스 호출
<img src="https://velog.velcdn.com/images/ys_lk515/post/cb5df72d-1a71-4e17-b696-8ceacad8862c/image.png" alt=""></p>
</li>
<li><p>결과 → 구글 검색을 통해 확인해보면, 대문자보다 소문자의 아스키코드가 크며, x의 아스키코드는 120으로 chars 리스트에 있는 자료 중 가장 큰 아스키코드를 갖고 있다.
<img src="https://velog.velcdn.com/images/ys_lk515/post/5c08dda8-00fc-4cc2-8004-4c43494e5f21/image.png" alt=""></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/23 제로베이스스쿨 Study Note ]]></title>
            <link>https://velog.io/@ys_lk515/223-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note</link>
            <guid>https://velog.io/@ys_lk515/223-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note</guid>
            <pubDate>Fri, 24 Feb 2023 17:30:20 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h3 id="오늘의-진도-알고리즘1-5번--알고리즘2"><strong>오늘의 진도: 알고리즘1 5번 ~ 알고리즘2</strong></h3>
</li>
<li><p>순위 : 수의 크고 작음을 이용해서 수의 순서를 정하는 것
<img src="https://velog.velcdn.com/images/ys_lk515/post/d3947599-1480-48a5-a6b2-506e7900048f/image.png" alt=""></p>
</li>
<li><p>숫자들끼리 크기를 비교하면서 작은 숫자에 1씩 더해주며 순위를 정해준다.</p>
</li>
<li><p>순위 알고리즘 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/e98c8104-408f-47d9-b3a2-78784fe660ec/image.png" alt=""></p>
</li>
<li><p>결과
<img src="https://velog.velcdn.com/images/ys_lk515/post/8e9b6b2c-1882-4907-acfb-0e9660b60435/image.png" alt="">
→ rank는 1등, 2등처럼 등수를 나타내기 때문에 ranks 인덱스에 1씩 더해주어 표현한다.</p>
</li>
<li><p>버블정렬</p>
</li>
<li><p>처음부터 끝까지 인접하는 인덱스의 값을 순차적으로 비교하면서 큰 숫자를 가장 끝으로 옮기는 알고리즘
<img src="https://velog.velcdn.com/images/ys_lk515/post/24028902-34bd-4c1e-b67d-c75886f9307e/image.png" alt=""></p>
</li>
<li><p>버블정렬 알고리즘 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/418c498e-6638-48a5-a58f-627ee5180585/image.png" alt="">
→새롭게 알게된 것: 아이템끼리 자리를 바꿔줄 때, </p>
</li>
<li><p><em>nums[j], nums[j+1] = nums[j+1], nums[j]*</em> 구문(python에 내장된 기능)을 사용해주면 두 값의 자리가 바뀐다.</p>
</li>
<li><p>결과
<img src="https://velog.velcdn.com/images/ys_lk515/post/02c62a0a-f66c-4178-9f1a-249f66095f7d/image.png" alt=""></p>
</li>
<li><p>삽입정렬</p>
</li>
<li><p>정렬되어 있는 자료 배열과 비교해서 정렬 위치를 찾음
<img src="https://velog.velcdn.com/images/ys_lk515/post/a46d0573-3788-4124-abdf-d75b43c5dd1b/image.png" alt="">
→ 한 정렬이 끝나면 그 다음 숫자와 앞에 정렬된 배열과 비교해서 또 다시 정렬하는 방법</p>
</li>
<li><p>삽입정렬 알고리즘 코드(오름차순)
<img src="https://velog.velcdn.com/images/ys_lk515/post/f6135942-ca63-46e7-9b79-4ec1800e333c/image.png" alt=""></p>
</li>
<li><p>결과
<img src="https://velog.velcdn.com/images/ys_lk515/post/0a0712a7-408d-4bda-a9fb-a0a9eb7766e4/image.png" alt=""></p>
</li>
<li><p>삽입정렬 알고리즘 코드(내림차순)
<img src="https://velog.velcdn.com/images/ys_lk515/post/1d5dc293-ff7b-48be-9da4-df147fa8f0eb/image.png" alt=""></p>
</li>
<li><p>결과
<img src="https://velog.velcdn.com/images/ys_lk515/post/93e7ff29-77c5-494d-adee-72ffa0c40cd9/image.png" alt=""></p>
</li>
<li><p>삽입정렬 알고리즘 코드(함수 사용)
<img src="https://velog.velcdn.com/images/ys_lk515/post/e4fe6a84-050e-4350-b014-9f67ada3350b/image.png" alt="">
→ <strong>asc = True</strong> 이면 오름차순 정렬이 되고, <strong>asc = False</strong> 이면 결과값과 같이 내림차순 정렬이 된다. 함수를 이용하면 사용자가 편하게 원하는 정렬방식을 선택할 수 있다는 점이 확연하게 느껴졌다.</p>
</li>
</ul>
<blockquote>
<p><strong>오늘의 학습 느낀점:</strong> 알고리즘은 개념자체도 익숙하지 않은데, 이걸 코딩하려고 하니 더 여럽게 느껴졌다. 그렇지만, 어렵게 느껴진다고 안할 수는 없으니.. 역시 다시 한 번 더 강의를 들으면서 복습해야겠다. 반복밖에는 답이 없다...</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/22 제로베이스스쿨 Study Note]]></title>
            <link>https://velog.io/@ys_lk515/222-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note</link>
            <guid>https://velog.io/@ys_lk515/222-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note</guid>
            <pubDate>Wed, 22 Feb 2023 16:47:26 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h3 id="오늘의-진도--자료구조-문제풀이-2-347번--알고리즘13번"><strong>오늘의 진도 : 자료구조 문제풀이 2, 3(47번) ~ 알고리즘1(3번)</strong></h3>
</li>
</ul>
<blockquote>
<ul>
<li><h4 id="문제풀이어려웠던-문제">문제풀이(어려웠던 문제)</h4>
<img src="https://velog.velcdn.com/images/ys_lk515/post/dd8d4567-0291-4447-954b-ca2dcef9f031/image.png" alt=""></li>
<li>문제해결 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/f0cf4bab-d3ad-4cbe-a80b-863b5e107fd5/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/5aadb650-f778-494a-aba8-4987af1ba21b/image.png" alt="">
→ 풀어보면 그렇게 어려운 문제는 아닌 것 같지만, 막상 코딩하려고 하면 잘 생각나지 않고, 코드를 보면서도 왜 이런 결과값이 나왔는지 잘 이해되지 않을 때가 있는데, 오늘 이 문제가 바로 그런 문제였다. 다행히 강의를 다시 듣고 문제를 풀어보니 이해가 돼서 넘어갈 수 있었지만, 가끔 이런 문제를 만나면 막막함을 느낀다. 그래도 꾸준히 하는 수밖에 없겠지만ㅎㅎ 문제풀이 때마나 느끼는 건 반복이 답이다..</li>
</ul>
</blockquote>
<ul>
<li><h4 id="알고리즘"><strong>알고리즘</strong></h4>
</li>
<li>선형검색 : 나열되어 있는 데이터를 순차적으로 스캔하면서 원하는 값을 찾는 방법
<img src="https://velog.velcdn.com/images/ys_lk515/post/1c078848-78a1-4933-9929-9a585c524c46/image.png" alt=""></li>
<li>보초법 : 마지막 인덱스에 찾으려는 값을 추가해 찾는 과정을 간략화하는 방법으로, 마지막 인덱스 이전에 찾고자 하는 값이 검색된 경우 검색 성공, 마지막 인덱스에서 찾고자 하는 값이 검색된 경우 검색 실패(내가 임의로 추가한 값이 나온 것이므로)
<img src="https://velog.velcdn.com/images/ys_lk515/post/0a55ae4e-b3d6-4aa3-b96a-e5a195d5b768/image.png" alt=""></li>
<li>이진검색 : 정렬되어 있는 자료구조에서 중앙값과의 크고 작음을 이용해 데이터를 검색하는 방법으로, 데이터가 정렬되어 있다는 가정 하에 이진검색 방법을 사용할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/113bbfa9-f332-4ef7-b09f-7888d5540dc0/image.png" alt=""></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/21 제로베이스스쿨 Study Note[자료구조 8, 9(36번)~문제풀이 2, 3(46번)]]></title>
            <link>https://velog.io/@ys_lk515/221-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-8-936%EB%B2%88%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-2-346%EB%B2%88</link>
            <guid>https://velog.io/@ys_lk515/221-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-8-936%EB%B2%88%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-2-346%EB%B2%88</guid>
            <pubDate>Tue, 21 Feb 2023 18:04:22 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h3 id="key-value"><strong>key(), value()</strong></h3>
</li>
<li><p>전체 키(key)와 값(value)을 조회할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/6e085383-c5d7-4b0b-98d3-44871e4549f1/image.png" alt=""></p>
</li>
<li><h3 id="딕셔너리-삭제"><strong>딕셔너리 삭제</strong></h3>
</li>
<li><p>del과 key를 이용하여 item 삭제 가능
<img src="https://velog.velcdn.com/images/ys_lk515/post/ef3ee526-d108-4d12-b34d-9d0c03c09163/image.png" alt=""></p>
</li>
<li><p>pop()와 key를 이용하여 item 삭제 가능
<img src="https://velog.velcdn.com/images/ys_lk515/post/bc3f1163-32b3-4cb9-9c72-bf6dda0c92a0/image.png" alt=""></p>
</li>
<li><p>pop()와 del의 차이점 : pop()는 함수의 실행 결과가 value 값으로 반환되어 다른 변수에 할당할 수 있음</p>
</li>
<li><h3 id="그-외-딕셔너리의-유용한-기능"><strong>그 외 딕셔너리의 유용한 기능</strong></h3>
</li>
<li><p>in, not in : 키(key)의 존재 유/무를 판단하며, 결과값은 True, False로 출력</p>
</li>
<li><p>len() : 리스트, 튜플과 같이 딕셔너리에서 사용하면 딕셔너리의 길이(아이템 개수)를 알 수 있음</p>
</li>
<li><p>clear() : 모든 아이템을 삭제함</p>
</li>
</ul>
<ul>
<li><h3 id="자료구조-문제풀이-느낀점"><strong>자료구조 문제풀이 느낀점</strong></h3>
<img src="https://velog.velcdn.com/images/ys_lk515/post/49ba2300-6b72-4bc6-9cfe-aa570605db9b/image.png" alt=""></li>
<li>문제 해결 코드(for문)
<img src="https://velog.velcdn.com/images/ys_lk515/post/9a56176a-e919-4bff-9ca3-5a8f3a1ca4ff/image.png" alt=""></li>
<li>문제 해결 코드(while문)
<img src="https://velog.velcdn.com/images/ys_lk515/post/8bfdd5e6-c954-402f-b462-e42a93133301/image.png" alt=""></li>
</ul>
<p>→문제를 풀 때 한 가지 방식으로만 풀어보는 것 보다, 여러가지 방식으로 풀어보는 것이 공부에 더 도움이 된다고 느꼈다. for문이 조금 더 익숙해서 for문만 사용하다보면, 정작 while문을 사용해야할 때 막히는 경우가 있었기 때문이다. 다양한 접근 방법을 적용하다보면 개념이 한 번 더 정리되고, 응용력이 생기는 느낌적인 느낌이 든다. 잘 염두에 두었다가 다른 문제를 풀어볼 때도 여러가지 접근 방법을 고민해보면 좋을 것 같다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/20 제로베이스스쿨 Study Note(자료구조 27~35번 강의)]]></title>
            <link>https://velog.io/@ys_lk515/220-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-2735%EB%B2%88-%EA%B0%95%EC%9D%98</link>
            <guid>https://velog.io/@ys_lk515/220-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%8A%A4%EC%BF%A8-Study-Note%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-2735%EB%B2%88-%EA%B0%95%EC%9D%98</guid>
            <pubDate>Mon, 20 Feb 2023 16:51:42 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h3 id="튜플-정렬"><strong>튜플 정렬</strong></h3>
</li>
<li><p>튜플은 수정이 불가능하기 때문에 리스트로 변환 후 정렬 가능</p>
</li>
<li><p>list로 변환 후 sort() 함수를 이용하면 아이템을 오름차순으로 정렬할 수 있으며, 내림차순으로 정렬하고 싶을 때는 sort(reverse=True)를 이용한 후 다시 Tuple로 변환하면 됨</p>
</li>
<li><p>sorted() 함수를 이용하면 튜플도 list로 변환하지 않고  정렬할 수 있음. 다만 sorted() 함수는 list 자료형으로 반환함</p>
</li>
<li><p>튜플도 리스트와 마찬가지로 for, while문을 이용해 자동으로 아이템을 참조(조회)할 수 있음</p>
</li>
<li><h3 id="딕셔너리dictionary"><strong>딕셔너리(Dictionary)</strong></h3>
</li>
<li><p>딕셔너리는 키(key)와 값(value)을 이용하여 자료를 관리함
<img src="https://velog.velcdn.com/images/ys_lk515/post/4839bc3b-50d4-4ae6-8a64-ed4ec4b9cb55/image.png" alt=""></p>
</li>
<li><p>&#39; {} &#39; 를 이용해 딕셔너리를 선언하고, &#39; 키 : 값 &#39; 의 형태로 아이템을 정의함
<img src="https://velog.velcdn.com/images/ys_lk515/post/27b3af29-c000-4e5a-8a46-fa3109126d9b/image.png" alt=""></p>
</li>
<li><p>key와 value에는 숫자, 문자(열), 논리형 뿐만 아니라 컨테이너 자료형도 올 수 있음. 단, key에 immutable(변경이 불가능한 data) 값은 올 수 있지만, mutable(변경되는 data)값은 올 수 없음</p>
</li>
<li><p><strong>key는 중복 불가능(value는 중복 가능)</strong></p>
</li>
<li><p>딕셔너리는 키(key)를 이용해 값(value)를 조회함(존재하지 않는 키를 이용한 조회 시 에러 발생)
<img src="https://velog.velcdn.com/images/ys_lk515/post/dd6d7b46-2dbf-4c9a-95c8-e2e24786f93f/image.png" alt=""></p>
</li>
<li><p>딕셔너리는 get(key)를 이용해서 값(value)을 조회할 수 있음(get() 함수는 key가 없어도 에러가 발생하지 않음!)
<img src="https://velog.velcdn.com/images/ys_lk515/post/78715e45-f5ac-48a3-bcdf-c55441bb344b/image.png" alt=""></p>
</li>
<li><p>딕셔너리 추가는 &#39;딕셔너리이름[키(key)] = 값(value)&#39; 의 형태로 아이템을 추가함
<img src="https://velog.velcdn.com/images/ys_lk515/post/d081fe47-3c0e-4211-b08f-2c03d6e9f8e4/image.png" alt=""></p>
</li>
<li><p>이때, 추가하려는 키(key)가 이미 있다면, 추가되는 것이 아니라 기존 값(value)이 변경됨 → 즉, 키(key)는 고유한 하나의 키만 존재할 수 있기 때문에, 아이템이 추가되는 것이 아닌 기존의 키에 해당하는 값(value)이 수정되는 것! 
<img src="https://velog.velcdn.com/images/ys_lk515/post/a63b7e41-c492-43c0-b5c2-acf8d7ebdd4f/image.png" alt=""></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/19 제로베이스 스쿨 Study Note(자료구조: 리스트 나머지 기능들~ 리스트와 튜플)]]></title>
            <link>https://velog.io/@ys_lk515/219-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%8A%A4%EC%BF%A8-Study-Note%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EB%82%98%EB%A8%B8%EC%A7%80-%EA%B8%B0%EB%8A%A5%EB%93%A4-%EB%A6%AC%EC%8A%A4%ED%8A%B8%EC%99%80-%ED%8A%9C%ED%94%8C</link>
            <guid>https://velog.io/@ys_lk515/219-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%8A%A4%EC%BF%A8-Study-Note%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EB%82%98%EB%A8%B8%EC%A7%80-%EA%B8%B0%EB%8A%A5%EB%93%A4-%EB%A6%AC%EC%8A%A4%ED%8A%B8%EC%99%80-%ED%8A%9C%ED%94%8C</guid>
            <pubDate>Sun, 19 Feb 2023 16:18:49 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h3 id="리스트-곱셈-연산"><strong>리스트 곱셈 연산</strong></h3>
</li>
<li><p>리스트를 곱셈 연산하면 아이템이 반복됨
<img src="https://velog.velcdn.com/images/ys_lk515/post/bc9c151e-06f3-4a1a-b608-6fe8903ead08/image.png" alt="">
-index(item) 함수를 이용하여 item의 인덱스를 알아낼 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/c33ef98a-a153-412c-9f98-3be31d1f91d1/image.png" alt=""></p>
</li>
<li><p>count() 함수를 이용하여 특정 아이템의 개수를 알아낼 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/4c9db274-b60d-410b-b354-bb4d921d73ca/image.png" alt=""></p>
</li>
<li><p>del 키워드를 이용해 특정 아이템 삭제 가능
<img src="https://velog.velcdn.com/images/ys_lk515/post/cb572773-0a25-47e8-8a0b-dcb26eef630d/image.png" alt=""></p>
</li>
<li><h3 id="튜플tuple"><strong>튜플(Tuple)</strong></h3>
</li>
<li><p>리스트와 비슷하지만 아이템 변경 불가
<img src="https://velog.velcdn.com/images/ys_lk515/post/65139eb2-5d85-4594-ad2d-b018c81ece55/image.png" alt=""></p>
</li>
<li><p>&#39; () &#39; 를 이용하여 선언하고, 데이터 구분은 &#39; , &#39; 를 이용</p>
</li>
<li><p>숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이 저장할 수 있음</p>
</li>
<li><p>튜플에 또 다른 컨테이너 자료형 데이터 저장 가능</p>
</li>
<li><p>튜플도 리스트와 마찬가지로 아이템에 자동으로 부여되는 번호표, index가 있으며, index를 이용해 아이템 조회 가능</p>
</li>
<li><p>리스트와 마찬가지로 튜플에 저장된 아이템 개수를 튜플 길이라고 하며, len()과 반복문(for, while문)을 이용해 튜플의 아이템 조회가 가능함</p>
</li>
<li><p>튜플도 두 개의 튜플을 결합할 수 있는데, 연산자 &#39; + &#39; 를 이용해서만 결합 가능하며, 리스트에서 사용할 수 있는 extend() 함수는 튜플에서 사용할 수 없음</p>
</li>
<li><p>리스트와 마찬가지로 [n:m]을 이용하여 원하는 아이템만 뽑아낼 수 있으며, 슬라이싱 단계 설정도 가능함. 또한, 튜플도 slice() 함수를 이용해 아이템을 슬라이싱 할 수 있으나 슬라이싱을 이용해 아이템을 변경할 수는 없음.</p>
</li>
<li><p>리스트와 튜플의 차이점
→ 튜플은 리스트와 달리 아이템 추가, 변경 삭제 불가능
→ 튜플은 선언 시 괄호 생략 가능
<img src="https://velog.velcdn.com/images/ys_lk515/post/ebccaf16-99f8-433c-a9d2-6b3f08b7ed31/image.png" alt=""></p>
</li>
<li><p>리스트와 튜플은 자료형 변환 가능(list↔tuple)
<img src="https://velog.velcdn.com/images/ys_lk515/post/4ed11296-0889-4e89-af03-ff39ede6d39a/image.png" alt=""></p>
</li>
<li><h3 id="in-not-in-키워드"><strong>in, not in 키워드</strong></h3>
</li>
<li><p>in, not in 키워드를 이용하여 아이템 존재 유/무를 알 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/f4a343de-ef18-4465-a267-6d673e44eea2/image.png" alt=""></p>
</li>
<li><p>문자열에서도 사용 가능
<img src="https://velog.velcdn.com/images/ys_lk515/post/d802ccc4-5969-4b79-bae0-164f8565f648/image.png" alt=""></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/18 제로베이스 스쿨 Study Note(자료구조 1~4)]]></title>
            <link>https://velog.io/@ys_lk515/218-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%8A%A4%EC%BF%A8-Study-Note%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-14</link>
            <guid>https://velog.io/@ys_lk515/218-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%8A%A4%EC%BF%A8-Study-Note%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-14</guid>
            <pubDate>Sat, 18 Feb 2023 19:03:22 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h3 id="자료구조"><strong>자료구조</strong></h3>
</li>
<li><p>자료구조란, 여러 개의 데이터가 묶여있는 자료형을 컨테이너 자료형이라 하고, 이러한 컨테이너 자료형의 데이터 구조를 자료구조라고 함</p>
</li>
<li><p>자료구조는 각각의 컨테이너 자료형에 따라 차이가 있으며, 파이썬의 대표적인 컨테이너 자료형으로는 <strong>리스트(List), 튜플(Tuple), 딕셔너리(Dic), 셋트(Set)</strong>가 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/ace3ce0f-eb1e-47cf-830f-661a7a0ab82a/image.png" alt=""></p>
</li>
<li><h3 id="리스트list"><strong>리스트(List)</strong></h3>
</li>
<li><p>리스트란, 배열과 같이 여러 개의 데이터를 나열한 자료구조</p>
</li>
<li><p>&#39; [] &#39;를 이용하여 선언하고, 데이터 구분은 &#39; , &#39;를 이용</p>
</li>
<li><p>숫자, 문자(열), 논리형 등 모든 기본 데이터를 함께 저장할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/36867e66-02d3-491e-998b-91f0bb99a659/image.png" alt=""></p>
</li>
</ul>
<p>-리스트에 또 다른 컨테이너 자료형 데이트를 저장할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/4d5b6adf-bcb9-48c5-b2fe-aa5767a08ac6/image.png" alt="">
-리스트의 아이템을 조회할 때 인덱스를 이용함
-인덱스란, 아이템에 자동으로 부여되는 번호표로 0부터 시작
-리스트 길이란, 리스트에 저장된 아이템의 개수를 의미
-len()과 반복문을 이용해 리스트의 아이템 조회 가능
-for문 활용
<img src="https://velog.velcdn.com/images/ys_lk515/post/b87c8b3f-a8f0-4b3b-9921-fd9fe562e255/image.png" alt="">
-for문을 이용하면, 리스트 내부에 또 다른 리스트의 아이템을 조회할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/6028dc54-3423-46d1-a73c-e4d15f0449ae/image.png" alt="">
-while문 활용
<img src="https://velog.velcdn.com/images/ys_lk515/post/12fa971f-9349-4a22-a15a-205ef16eaec6/image.png" alt="">
-len()함수는 리스트의 개수뿐만 아니라 문자열의 길이도 알 수 있음
-enumerate() 함수를 이용하면 아이템을 열거할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/5a5924ec-25ba-4f7f-88f1-77852d0718b2/image.png" alt="">
-enumerate() 함수는 문자열에도 적용 가능함
-append() 함수를 이용해 마지막 인덱스에 아이템을 추가할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/6c648fe5-1b4d-4068-8145-37ed717a59c5/image.png" alt="">
-insert() 함수를 이용하면 특정 위치(인덱스)에 아이템을 추가할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/24f18866-aee3-4675-bfd2-74c3fce09d8a/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/f50054d8-48c2-4efd-a1d2-7176f0bb02cd/image.png" alt="">
-pop() 함수를 이용하여 마지막 인덱스에 해당하는 아이템을 삭제할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/9b3b283e-f8c4-4b14-8c6e-0e96cb7836ae/image.png" alt="">
-pop(n) 함수는 인덱스 n에 해당하는 아이템을 삭제할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/9ba814d7-bf84-493d-910e-d73285a96720/image.png" alt="">
-remove() 함수를 이용해 특정 아이템 삭제 가능
<img src="https://velog.velcdn.com/images/ys_lk515/post/30bd04a6-acaa-4d15-af4b-9b12966eb7bb/image.png" alt="">
-remove() 함수는 한 개의 아이템만 삭제 가능하기 때문에, 만약 삭제하려는 아이템이 2개 이상이라면 while문을 활용해야 함
<img src="https://velog.velcdn.com/images/ys_lk515/post/2fa04405-e8b3-491c-89aa-2ab5e658db54/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/794959b2-c0ef-4367-8438-8887e91f0162/image.png" alt="">
-extend() 함수를 이용해 리스트에 또 다른 리스트를 연결(확장)할 수 있음
(ex. list1 = [&#39;홍길동&#39;, &#39;강호동&#39;], list2 = [&#39;박찬호&#39;, &#39;이용규&#39;] → list1.extend(list2) ▶ [&#39;홍길동&#39;, &#39;강호동&#39;, &#39;박찬호, &#39;이용규&#39;])
-덧셈 연산자를 이용해서도 연결 가능함
(ex. list1 + list2 = [&#39;홍길동&#39;, &#39;강호동&#39;, &#39;박찬호, &#39;이용규&#39;])
-sort() 함수를 이용해 아이템을 정렬할 수 있으며, 오름차순으로 정렬됨
-sort() 함수를 이용해 내림차순 정렬을 하고 싶을 때, sort(reverse=True)로 이용(reverse=False가 default이기 때문에 reverse=True로 해주어야 함)
-reverse() 함수를 이용해 아이템 순서를 뒤집을 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/89228e3c-7323-47a7-be6a-cc84001d8fbd/image.png" alt="">
-리스트 슬라이싱 : [n:m]을 이용하여 리스트에서 원하는 아이템만 추출할 수 있으며, 문자열도 가능함(이때, 슬라이싱한 데이터의 타입도 List)
<img src="https://velog.velcdn.com/images/ys_lk515/post/2a60372b-50cd-4fd2-b151-53bc0530c1c6/image.png" alt="">
-슬라이싱할 때 단계를 설정해줄 수 있음. 이때 [2:-2:2]이면, 인덱스 2번부터 -2(뒤에서 부터 순서 계산하며, 즉 이 예문에서는 100이 -2번째에 있는 아이템)의 앞까지 두 단계씩 건너뛰면서 추출함 → [0.12, 9, 17]
<img src="https://velog.velcdn.com/images/ys_lk515/post/9f3ae059-95a1-408a-a2b1-b52b6895541a/image.png" alt="">
-슬라이싱을 이용해 아이템을 변경할 수 있음. 이때 변경할 아이템을 입력하지 않으면, 해당 아이템은 삭제됨
(ex. student[1:4] = [&#39;park chanho&#39;, &#39;lee yonggyu&#39;] → [&#39;홍길동&#39;, &#39;park chanho&#39;, &#39;lee yonggyu&#39;, &#39;박승철&#39;, &#39;김지은&#39;])
<img src="https://velog.velcdn.com/images/ys_lk515/post/83f2ff8b-a572-4586-b3d3-234fd902b6ad/image.png" alt="">
-slice() 함수를 이용해 아이템을 슬라이싱 할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/8df63001-5580-42cd-9be9-3084d0c3185e/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/17 제로베이스 데이터스쿨 Study Note(기초수학 문제풀이)]]></title>
            <link>https://velog.io/@ys_lk515/217-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%8A%A4%EC%BF%A8-Study-Note%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%99-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4</link>
            <guid>https://velog.io/@ys_lk515/217-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%8A%A4%EC%BF%A8-Study-Note%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%99-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4</guid>
            <pubDate>Fri, 17 Feb 2023 17:03:11 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h3 id="풀이-과정에서-어려움을-느꼈던-문제-review"><strong>풀이 과정에서 어려움을 느꼈던 문제 Review</strong></h3>
</li>
<li><strong>군수열 문제</strong>
<img src="https://velog.velcdn.com/images/ys_lk515/post/1f0f7d6a-4ca2-4d28-b2b0-42316c843925/image.png" alt=""></li>
<li><strong>문제풀이 코드</strong>
<img src="https://velog.velcdn.com/images/ys_lk515/post/ebc7f6e3-309a-4a5f-bd24-ad406e011c0d/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/4dc2061b-e5a2-45ec-91c9-30d2d5f1ad0b/image.png" alt="">
→ 군수열 자체를 이해하는 것은 어렵지 않았다. 그러나 문제를 풀기위해 코드를 짜는 과정에서 생각해야할 부분이 꽤 있어서 어려움을 느꼈던 것 같다. 코드를 짜기 전에 필요한 변수가 무엇인지, 그 변수들이 무엇을 의미하는지를 잘 파악해둬야 나중에 완성된 코드를 잘 이해할 수 있을 것 같다.</li>
</ul>
<p>-<strong>피보나치 수열 문제</strong>
<img src="https://velog.velcdn.com/images/ys_lk515/post/8f842547-d06d-4da8-9025-3ddec729c025/image.png" alt="">
-<strong>문제풀이 코드</strong>
<img src="https://velog.velcdn.com/images/ys_lk515/post/ead13861-2864-4ef9-aa3f-4cddb04b3a85/image.png" alt="">
→ 피보나치 수열도 수열을 이해하는 데는 어려움이 없다. 기초수학에서 등장하는 수학 개념들을 잘 이해하고 있지만, 이를 파이썬 코드로 표현할 때가 항상 어려운 것 같다. 특히 어려웠던 부분은 n = 3일 때부터 valueN, valuepreN1, valuepreN2에 서로서로를 할당해주는 것에서 어려움을 느꼈다. 조금 더 이해하기 쉽도록 표현하면 valuepreN2 = a(n-2), 즉 an항에서 전전 항의 값을 의미하고, valuepreN1 = a(n-1)이 an항 바로 이전의 항의 값을 의미하는데, 이걸 잘 파악하고 있어야겠다. </p>
<p>-<strong>소인수와 소인수분해</strong>
<img src="https://velog.velcdn.com/images/ys_lk515/post/f4d6c749-03e2-4666-9de9-f34436b62774/image.png" alt="">
-<strong>문제풀이코드</strong>
<img src="https://velog.velcdn.com/images/ys_lk515/post/35a51ce3-6be5-450e-9f36-c2864a4157a9/image.png" alt="">
→ 소인수와 소인수분해도 절대 어려운 개념이 아니지만, 막상 파이썬으로 코딩하려고 하면 어떻게 해야할지 잘 떠오르지 않는다. 쉬운 개념을 코드로 표현하지 못한다는 생각에 멘붕이 올 것 같았지만, 난수 rNum이 x일 때, n이 몇이면 어디로 가서 계산을 하는지를 차근차근 따져보면서 하다보니 그래도 이해가 되긴했다. 그렇지만 다시 풀어볼 필요가 있을 것 같다. 연습문제는 절대 한 번만 풀고 넘어갈 생각을 해서는 안될 것 같다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/16 제로베이스 스쿨 Study Note[기초수학 5~6 (군수열) ~ 기초수학 7]]]></title>
            <link>https://velog.io/@ys_lk515/216-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%8A%A4%EC%BF%A8-Study-Note%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%99-56-%EA%B5%B0%EC%88%98%EC%97%B4-%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%99-7</link>
            <guid>https://velog.io/@ys_lk515/216-%EC%A0%9C%EB%A1%9C%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%8A%A4%EC%BF%A8-Study-Note%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%99-56-%EA%B5%B0%EC%88%98%EC%97%B4-%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%99-7</guid>
            <pubDate>Thu, 16 Feb 2023 16:37:54 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h3 id="군수열"><strong>군수열</strong></h3>
</li>
<li><p>여러 개의 항을 묶었을 때 규칙성을 갖는 수열
<img src="https://velog.velcdn.com/images/ys_lk515/post/92b02b99-09b2-4317-9b61-d0c497b0f41a/image.png" alt=""></p>
</li>
<li><p>이때 &#39;an = n&#39;은 군의 항의 개수</p>
</li>
<li><p>군수열 문제 및 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/dfa1538f-d9af-44b0-9ff8-d06d36aa2413/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/c78333ff-7c57-4f1f-947f-581940ad6198/image.png" alt=""></p>
</li>
<li><h3 id="순열"><strong>순열</strong></h3>
</li>
<li><p>n개에서 r개를 택하여 나열하는 경우의 수</p>
</li>
<li><p>순서있게 뽑는 경우로, 순서가 다르면 다른 경우로 Count 함</p>
</li>
<li><p>공식 : nPr = n * (n-1) * (n-2) * .... * (n-r+1) → n!/(n-r)!</p>
</li>
<li><p>순열 문제 및 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/32ce7bc3-54b2-4b17-9fe0-b113aaf79e2d/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/ac5f2bb3-2482-4236-8c76-e901a27046cd/image.png" alt=""></p>
</li>
<li><p>원순열 : 시작과 끝의 구분이 없는 순열</p>
</li>
<li><p>공식 : n!/n or (n-1)!</p>
</li>
<li><h3 id="조합"><strong>조합</strong></h3>
</li>
<li><p>n개에서 r개를 택하는 경우의 수로, 순서는 중요하지 않음</p>
</li>
<li><p>공식 : nCr = nPr/r! = n!(n-r)!/r! (단, 0&lt;r&lt;=n)</p>
</li>
<li><p>조합 문제 및 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/829e7089-48a5-4a4f-988a-5fc3eec174e1/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/6183e99c-f3db-4aad-bd29-06f205bff938/image.png" alt=""></p>
</li>
<li><p>조합은 순열을 구하는 코드 + 팩토리얼을 구하는 코드를 이용하여 구할 수 있음</p>
</li>
<li><h3 id="확률"><strong>확률</strong></h3>
</li>
<li><p>모든 사건에서 특정 사건이 일어날 수 있는 수를 나타낸 것</p>
</li>
<li><p>모든 사건 → 표본 공간, 특정 사건 → 사건</p>
</li>
<li><p>확률은, <strong>&#39;사건/표본공간&#39;</strong> 으로 구할 수 있음</p>
</li>
<li><p>조합을 이용하여 확률을 알아낼 수 있음</p>
</li>
<li><p>확률 문제 및 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/4dec5ca6-003d-43bc-a008-755a5bd66f7e/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/ec06fd7a-17d6-4b3a-a9a1-07eb43fc53a0/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/d2fe641d-03a4-437d-9e2f-7a17475ecbce/image.png" alt=""></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/15 Study Note[기초수학 4(등비수열) ~ 5,6(팩토리얼)]]></title>
            <link>https://velog.io/@ys_lk515/215-Study-Note%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%99-4%EB%93%B1%EB%B9%84%EC%88%98%EC%97%B4-56%ED%8C%A9%ED%86%A0%EB%A6%AC%EC%96%BC</link>
            <guid>https://velog.io/@ys_lk515/215-Study-Note%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%99-4%EB%93%B1%EB%B9%84%EC%88%98%EC%97%B4-56%ED%8C%A9%ED%86%A0%EB%A6%AC%EC%96%BC</guid>
            <pubDate>Wed, 15 Feb 2023 16:33:21 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h3 id="등비수열"><strong>등비수열</strong></h3>
</li>
<li><p>연속된 두 항의 비가 일정한 수열
<img src="https://velog.velcdn.com/images/ys_lk515/post/f3ab80cf-b015-4fca-ac39-9c05b29d89f4/image.png" alt=""></p>
</li>
<li><p>등비수열의 일반항 공식 : <strong>an = a1 * r^(n-1)</strong></p>
</li>
<li><p>등비수열의 합 공식 : <strong>sn = a1 * (1-r^n) / (1-r)</strong></p>
</li>
<li><p>등비중항 : 연속된 세 항에서 가운데 항으로,  an이 중항일때, an^2 = a(n-1) * a(n+1)</p>
</li>
<li><h3 id="시그마∑"><strong>시그마(∑)</strong></h3>
</li>
<li><p>수열의 합을 나타내는 기호
<img src="https://velog.velcdn.com/images/ys_lk515/post/4ddeefa1-f7a7-4741-9701-5d4f6cb6ab9a/image.png" alt=""></p>
</li>
<li><p>계차수열 : 어떤 수열의 인접하는 두 항의 차로 이루어진 또 다른 수열
<img src="https://velog.velcdn.com/images/ys_lk515/post/6ef99e90-d50b-444e-b5a7-898ec7fdbe30/image.png" alt=""></p>
</li>
<li><p>계차수열을 이용하여 수열 an의 일반항을 구할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/68a0b0f6-09ab-4e48-815f-e541db720b80/image.png" alt=""></p>
</li>
<li><p>an의 합을 구할 때와 달리, bn의 합은 k=1 부터 k=n-1까지의 합이라는 것에 유의</p>
</li>
<li><h3 id="피보나치수열"><strong>피보나치수열</strong></h3>
</li>
<li><p>세 번째 항은 두 번째 항과 첫 번째 항을 더한 값이 나오는 규칙을 갖고 있는 수열
<img src="https://velog.velcdn.com/images/ys_lk515/post/ddfe6ab4-107c-49c8-ab70-1a73a30561db/image.png" alt=""></p>
</li>
<li><p>피보나치수열 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/a5a93883-b8cb-439c-80d1-341ebf57d8de/image.png" alt=""></p>
</li>
<li><p>while문이 실행될 때, n = 3일때부터 valuePreN1과 valuePreN2가 바뀌는 것을 잘 이해할 필요가 있음</p>
</li>
<li><h3 id="팩토리얼"><strong>팩토리얼</strong></h3>
</li>
<li><p>1부터 양의 정수 n까지의 정수를 모두 곱한 것
(ex. 3! = 1 * 2 * 3)</p>
</li>
<li><p>0!은 1로 약속</p>
</li>
<li><p>팩토리얼 코드(재귀함수를 이용할 때/재귀함수란 나 자신을 다시 호출하는 함수)
<img src="https://velog.velcdn.com/images/ys_lk515/post/5d881827-0cd2-4449-b2d9-4e7132156eec/image.png" alt=""></p>
</li>
<li><p>팩토리얼코드(python 內 math 모듈 이용)
<img src="https://velog.velcdn.com/images/ys_lk515/post/916b0484-cbf4-4b56-92d1-7b77a3234541/image.png" alt="">
→확실히 함수를 여러개 알고 있으면 훨씬 간단하게 결과값을 얻을 수 있는 것 같음</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/14 Study Note[기초수학1(최소공배수) ~ 4(등차수열_파이썬) ]]></title>
            <link>https://velog.io/@ys_lk515/214-Study-Note%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%991%EC%B5%9C%EC%86%8C%EA%B3%B5%EB%B0%B0%EC%88%98-4%EB%93%B1%EC%B0%A8%EC%88%98%EC%97%B4%ED%8C%8C%EC%9D%B4%EC%8D%AC</link>
            <guid>https://velog.io/@ys_lk515/214-Study-Note%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%991%EC%B5%9C%EC%86%8C%EA%B3%B5%EB%B0%B0%EC%88%98-4%EB%93%B1%EC%B0%A8%EC%88%98%EC%97%B4%ED%8C%8C%EC%9D%B4%EC%8D%AC</guid>
            <pubDate>Tue, 14 Feb 2023 16:43:17 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h3 id="최소공배수"><strong>최소공배수</strong></h3>
</li>
<li><p>공배수 : 두개 이상의 수에서 공통된 배수
(ex. 3과 5의 공배수 → 15, 30, 45, 60 ...)</p>
</li>
<li><p>최소공배수 : 공배수 중 가장 작은 수
(ex. 3과 5의 최소공배수 → 15, 30, 45, 60 ... 中 15)</p>
</li>
<li><p>소수끼리의 최소공배수는 두 수를 곱하면 됨
(ex. 5와 7의 최소공배수 → 5 * 7 = 35)</p>
</li>
<li><p>소수로 나눗셈하면 보다 편리하게 최소공배수를 구할 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/e0dd424a-3396-4f5a-82bb-5394990b3b66/image.png" alt=""></p>
</li>
<li><h3 id="진법"><strong>진법</strong></h3>
</li>
<li><p>진법이란, 특정 숫자 몇 개를 사용하여 수를 표시하는 방법
<img src="https://velog.velcdn.com/images/ys_lk515/post/88c2b631-0224-49a6-8e9a-5f889b80dde0/image.png" alt=""></p>
</li>
<li><p>10진수를 2진수로 변환
<img src="https://velog.velcdn.com/images/ys_lk515/post/ed588b3e-e0ca-40f6-ac61-3e70089db727/image.png" alt=""></p>
</li>
<li><p>10진수를 8진수로 변환
<img src="https://velog.velcdn.com/images/ys_lk515/post/12b403fd-8225-4b0d-bf7a-7ec21ee603c6/image.png" alt=""></p>
</li>
<li><p>10진수를 16진수로 변환
<img src="https://velog.velcdn.com/images/ys_lk515/post/4db26406-49e3-4fc0-bc18-d2f3267b819a/image.png" alt=""></p>
</li>
<li><p>2진수를 10진수로 변환 : 각 자리의 계산 값을 더하면 됨
<img src="https://velog.velcdn.com/images/ys_lk515/post/4b11a49f-a210-4aad-8e9f-339df8f52077/image.png" alt=""></p>
</li>
<li><p>8진수를 10진수로 변환 : 각자리의 계산 값을 더하면 됨 
<img src="https://velog.velcdn.com/images/ys_lk515/post/2fb782c2-6003-458a-9ecf-d69f5edc447c/image.png" alt=""></p>
</li>
<li><p>2진수를 8진수로 변환 : 3자리씩 끊어서 계산 후, 각 숫자를 순서대로 기입하면됨
<img src="https://velog.velcdn.com/images/ys_lk515/post/78ef5238-7aa8-4e4d-8fdc-b4a0ba56bfea/image.png" alt=""></p>
</li>
<li><p>2진수를 16진수로 변환 : 4자리씩 끊어서 계산 후, 각 숫자를 순서대로 기입하면됨<br><img src="https://velog.velcdn.com/images/ys_lk515/post/a035f54f-e361-47a7-8695-850c6e29b512/image.png" alt=""></p>
</li>
<li><p>파이썬에서 10진수를 2, 8, 16진수로 변환하는 법(함수 사용)
→2진수: binary ▶ bin()
→8진수: octal ▶ oct()
→16진수: hexadecimal ▶ hex()</p>
</li>
<li><p>파이썬에서 변환하면 결과는 <strong>문자열</strong></p>
</li>
<li><p>파이썬에서 10진수를 2, 8, 16진수로 변환하는 법(format함수 사용)
→print(&#39;2진수: {}&#39;.format(format(dNum, &#39;<strong>#b</strong>&#39;))) 
→print(&#39;8진수: {}&#39;.format(format(dNum, &#39;<strong>#o</strong>&#39;))) 
→print(&#39;16진수: {}&#39;.format(format(dNum, &#39;<strong>#x</strong>&#39;))) </p>
</li>
<li><p>파이썬에서 2, 8, 16진수를 10진수로 변환하는 법(format함수 사용)
→print(&#39;2진수(<strong>0b</strong>11110) → 10진수({})&#39;.format(int(&#39;0b11110&#39;, 2))) 
→print(&#39;8진수(<strong>0o</strong>36) → 10진수({})&#39;.format(int(&#39;0o36&#39;, 8))) 
→print(&#39;16진수(<strong>0x</strong>1e) → 10진수({})&#39;.format(int(&#39;0x1e&#39;, 16))) 
이때, 0b, 0o, 0x는 각각 2진수, 8진수, 16진수를 나타내는 기호이며, 10진수로 변환할 때는 int() 사용</p>
</li>
<li><h3 id="수열"><strong>수열</strong></h3>
</li>
<li><p>수열이란, 규칙성을 가지고 나열되어 있는 수들 </p>
</li>
<li><p>특정항은 특정항까지의 합에서 특정항 이전 항까지의 합과 같음
(ex. a1, a2, a3, a4까지의 합이 s4라고 할때, a4 = s4 - s3(a1+a2+a3 = s3))</p>
</li>
<li><p>등차수열 : 연속된 두 항의 차이가 일정한 수열 </p>
</li>
<li><p>등차수열의 일반항 공식 : <strong>an = a1 + (n-1)d</strong> (d는 공차)</p>
</li>
<li><p>등차중항 : 연속된 세 항 가운데의 항
(a1, a2, a3중 a2가 등차중항이며, 등차중항을 an이라고 할 때, <strong>an = (an-1 + an+2)/2</strong></p>
</li>
<li><p>등차수열의 합 공식 : <strong>sn = (a1 + an)n/2</strong> (n은 항의 개수) </p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/13 Study Note[python 중급 문제풀이8 ~ 기초수학1-2(최대공약수)]]]></title>
            <link>https://velog.io/@ys_lk515/213-Study-Notepython-%EC%A4%91%EA%B8%89-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B48-%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%991-2%EC%B5%9C%EB%8C%80%EA%B3%B5%EC%95%BD%EC%88%98</link>
            <guid>https://velog.io/@ys_lk515/213-Study-Notepython-%EC%A4%91%EA%B8%89-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B48-%EA%B8%B0%EC%B4%88%EC%88%98%ED%95%991-2%EC%B5%9C%EB%8C%80%EA%B3%B5%EC%95%BD%EC%88%98</guid>
            <pubDate>Mon, 13 Feb 2023 16:11:53 GMT</pubDate>
            <description><![CDATA[<h3 id="python-중급-문제풀이-어려웠던-문제"><strong>python 중급 문제풀이 어려웠던 문제</strong></h3>
<p><img src="https://velog.velcdn.com/images/ys_lk515/post/9c294896-40c0-4e4f-a95c-8ca8b432dbcb/image.png" alt=""></p>
<ul>
<li><strong>문제 해결 코드</strong>
<img src="https://velog.velcdn.com/images/ys_lk515/post/0debcabe-748a-4eb1-b9ae-205304d2bf85/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/5e8ee4b1-0e10-48ad-b90c-2324d2805880/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/0b9623f9-421e-49d5-a190-104070050c23/image.png" alt="">
→ 최대공약수, 최소공배수를 구하는 파이썬 코드를 몰랐을 때는 어렵게 다가왔지만, 뒤에서 기초수학 강의를 듣고 예제를 풀어본 후에는 이해가 잘 되었음. 다만, basetime이나 timedelta 기능은 처음 접해봐서 사용법이 낯설게 느껴졌음. 앞으로 관련된 문제를 풀어보면서 사용법을 익혀야할 것 같음</li>
<li>basetime(): 시작 년, 월, 일, 시, 분, 초를 직접 설정할 수 있음</li>
<li>timedelta(): 특정 일자를 기입하면 그 일자만큼 날짜가 계산됨</li>
</ul>
<h3 id="기초수학1-2최대공약수"><strong>기초수학1-2(~최대공약수)</strong></h3>
<ul>
<li>약수 : 어떤 수를 나누어 떨어지게 하는 수
(ex. 15의 약수: 1, 3, 5, 15)</li>
<li>소수 : 1과 자신만을 약수로 가지는 수(단, 1은 제외)
(ex. 2, 3, 5, 7, 11, 13 .../4의 약수는 1, 2, 4로, 1과 4를 제외한 2를 약수로 갖고 있어서 소수X)</li>
<li>소인수 : 약수(인수) 중에서 소수인 숫자를 소인수라고 함
(ex. 20의 약수: 1, 2, 4, 5, 10, 20/이 중 소인수: 2, 5)</li>
<li>소인수분해 : 1보다 큰 정수를 소인수의 곱으로 나타낸 것 </li>
<li>소인수분해를 이용해 약수를 쉽고 정확하게 구할 수 있음</li>
<li>공약수 : 두 개 이상의 수에서 공통된 약수
(ex. 12의 약수: 1, 2, 3, 4, 6, 12 / 20의 약수: 1, 2, 4, 5, 10, 20 / <strong>공약수: 1, 2, 4</strong>)</li>
<li>최대공약수 : 공약수 중 가장 큰 수
(ex. 위의 예제를 참고하면, 12와 20의 최대공약수는 4)</li>
<li>유클리드 호제법 : X와 Y의 최대공약수는 Y, R(X%Y, X를 Y로 나눈 나머지)의 최대 공약수와 같음</li>
<li>유클리드 호제법을 적용한 python 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/2a92c22b-c639-4569-a78d-1b277185cba5/image.png" alt=""></li>
</ul>
<ul>
<li>오늘의 학습 소감: 오랜만에 중학생 때 배웠던 약수, 공약수, 최대공약수, 소인수분해 등을 다시 배우니 재미있었고, 이를 python에 적용해 구해보니 흥미로웠음. </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/12 Study Note(python 중급 문제풀이 5~7]]></title>
            <link>https://velog.io/@ys_lk515/212-Study-Notepython-%EC%A4%91%EA%B8%89-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-57</link>
            <guid>https://velog.io/@ys_lk515/212-Study-Notepython-%EC%A4%91%EA%B8%89-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-57</guid>
            <pubDate>Sun, 12 Feb 2023 16:08:25 GMT</pubDate>
            <description><![CDATA[<h3 id="--클래스텍스트파일-연습문제-풀이">- <strong>클래스~텍스트파일 연습문제 풀이</strong></h3>
<h4 id="어려웠던-문제">&lt;어려웠던 문제&gt;</h4>
<ol>
<li>은행계좌 개설 및 입/출금 프로그램 문제
<img src="https://velog.velcdn.com/images/ys_lk515/post/1c982065-51c7-40b0-9da6-63c144f12b94/image.png" alt=""></li>
</ol>
<ul>
<li>문제 해결 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/2d721919-edeb-4a70-b084-48897b6995be/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/ab420146-d86a-41e1-88d2-694b261d5f6d/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/f616485d-94a3-4039-8fee-fbde24b18146/image.png" alt=""></li>
<li>실행 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/f64f8e91-63ec-4746-b8ec-76c581e27deb/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/f2dc649c-4c17-4e3b-935a-c58f16f0b115/image.png" alt=""></li>
</ul>
<ol start="2">
<li>회원 계정별 텍스트 파일 생성 및 &#39;한 줄 일기&#39; 쓰고 읽는 프로그램 문제
<img src="https://velog.velcdn.com/images/ys_lk515/post/ec8d7420-4e14-4e16-b75a-d6122bd74a08/image.png" alt=""></li>
</ol>
<ul>
<li>문제 해결 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/28105e3e-c217-4621-a066-b0564ac8e75a/image.png" alt=""></li>
<li>실행 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/f2fa91b9-ef1d-4ade-a0bc-abcb5963a287/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/17ff0615-838f-4099-a877-812dc2a7fcde/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/ef34c363-5e66-4dfd-8724-43ea6ea1b14d/image.png" alt=""></li>
</ul>
<ol start="3">
<li>가계부 프로그램 문제
<img src="https://velog.velcdn.com/images/ys_lk515/post/de6f69d7-0df5-4f2e-b317-24af1cbe44d3/image.png" alt=""></li>
</ol>
<ul>
<li>문제 해결 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/7ece852a-a708-4165-8d28-0010898896b9/image.png" alt=""></li>
<li>입금하는 경우의 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/1c9d949a-04fb-4402-9cfc-19b4b4b89e94/image.png" alt=""></li>
<li>출금하는 경우의 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/1d1d5324-5842-4da0-b96f-bdbea29be8fe/image.png" alt=""></li>
</ul>
<h4 id="문제-풀이를-하며-느낀점">&lt;문제 풀이를 하며 느낀점&gt;</h4>
<ul>
<li>여전히 문제만 보면 어떻게 접근해야할지 떠오르지 않는다. 개념을 하나하나 살펴보면 이해가 되는데, 문제에 여러 개념들을 접목해야하니 어려움을 느끼는 것 같다. 이 문제는 계속 얘기해왔듯이 문제를 반복해서 풀어보는 수밖에 없는 것 같다.</li>
<li>문제 해결을 위한 모듈, 클래스를 코딩할 때 생각보다 코드가 짧은 문제도 있었다. 그러나 모듈이나 클래스 실행을 위한 실행 코드를 작성할 때 매우 길어졌는데, 길어졌다고 당황하지 말고 차근차근 접근해야겠다는 생각이 들었다. 길다고 겁부터 먹고 접근하면 해결할 수 있는 것도 어렵게 느껴지는 것 같기 때문이다. </li>
<li>여러가지 개념을 배워나가니 점점 문제도 복잡해지고 있는 것 같다. 역시 계속 강조하지만, 반복 학습이 최선의 학습 방법인 것 같다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/11 Study Note(python 중급 문제풀이 1~4)]]></title>
            <link>https://velog.io/@ys_lk515/211-Study-Notepython-%EC%A4%91%EA%B8%89-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-14</link>
            <guid>https://velog.io/@ys_lk515/211-Study-Notepython-%EC%A4%91%EA%B8%89-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-14</guid>
            <pubDate>Sat, 11 Feb 2023 18:05:56 GMT</pubDate>
            <description><![CDATA[<h3 id="--python-중급-문제-풀이-中-인상깊었던-문제"><strong>- Python 중급 문제 풀이 中 인상깊었던 문제</strong></h3>
<p><img src="https://velog.velcdn.com/images/ys_lk515/post/51ad493d-fd6e-49f7-bdee-06bf9ccba48c/image.png" alt=""></p>
<ul>
<li>문제 해결 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/00a3e5b0-860b-45d9-9777-873d379d294e/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/622d5b18-7150-4db9-919a-f0550ca985f3/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/23ba7320-74d2-446a-8674-e72aad64ea84/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/798f03fd-b686-4372-b5ef-88d502e9dc43/image.png" alt="">
→ 문제가 복잡하게 느껴졌고, 코드를 직접 입력해보는 과정에서도 생각해야할 경우의 수(1등이 당첨되는 경우, 2등이 당첨되는 경우 등)가 많았음. 그렇다보니 코드가 길어져서 놓치는 부분이 없는지 꼼꼼하게 봐야했음. 당연하겠지만 코드가 길어질수록 복잡하고 어렵다고 느껴지는 것 같음 </li>
</ul>
<p><img src="https://velog.velcdn.com/images/ys_lk515/post/1fdbe809-6c7a-4974-999a-a28fe95fa07e/image.png" alt=""></p>
<ul>
<li>문재 해결 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/92d9bebd-1741-441b-84bf-71744378e5c7/image.png" alt=""></li>
</ul>
<p>→ 이 문제는 순열 계산하는 공식을 알고 있다면 그렇게 어려운 문제는 아니었을 것 같음. 강의에서 수학적으로 접근하는 방법 외에 python 자체에 있는 모듈을 사용하는 방법을 알려주었는데, 이해하는데 어려움은 있었지만 새로운 기능을 추가로 알아가는 것 같아 나름 재미있었음</p>
<p><img src="https://velog.velcdn.com/images/ys_lk515/post/14e069ab-ecf4-45bc-93a5-8954424cfaec/image.png" alt=""></p>
<ul>
<li>문제 해결 코드
<img src="https://velog.velcdn.com/images/ys_lk515/post/0fa2dfe6-cc5a-4a9c-8cdb-67a8e7742f81/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/17b8155b-a5d6-4ecb-931f-533fea8a2734/image.png" alt=""></li>
</ul>
<p>→ 일상 생활에 접목해볼 수 있어 인상깊었던 문제. 물론 제로베이스에서 제공해주는 소스 코드를 참고하지 않고는 아직 혼자서 해결하기 쉽지 않은 문제이다. 그렇지만 직접 보고 코딩해보면서 이해하는 과정이 반복되면, 언젠가는 혼자서도 해결해볼 수 있지 않을까 싶다. 아직 강의를 수강한지 2주차 밖에 되지 않았지만, 초급부터 중급까지 연습문제 강의를 보고 직접 해보면서 느낀 점은 역시 강의만 보는 것보다 직접 해보는 것이 도움이 된다는 것이다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/10 Study Note(python 중급 7~9)]]></title>
            <link>https://velog.io/@ys_lk515/210-Study-Notepython-%EC%A4%91%EA%B8%89-79</link>
            <guid>https://velog.io/@ys_lk515/210-Study-Notepython-%EC%A4%91%EA%B8%89-79</guid>
            <pubDate>Fri, 10 Feb 2023 18:59:37 GMT</pubDate>
            <description><![CDATA[<ul>
<li><p><strong>예외 처리</strong>: 예상치 못한 예외가 프로그램 전체에 영향이 없도록 처리하는 것</p>
</li>
<li><p>try ~ except : 예외 발생 구문을 try ~ except로 처리
<img src="https://velog.velcdn.com/images/ys_lk515/post/702e0c98-e444-48ae-8c61-bc8e765b8a30/image.png" alt=""></p>
</li>
<li><p>try<del>except</del>else : ~else는 예외가 발생하지 않은 경우 실행하는 구문
<img src="https://velog.velcdn.com/images/ys_lk515/post/0cdc5252-aade-4b67-8e19-61e0cb22f20b/image.png" alt=""></p>
</li>
<li><p>finally : 예외 발생과 상관없이 항상 실행되는 구문</p>
</li>
<li><p><strong>Exception</strong> : 예외 담당 클래스 Exception
<img src="https://velog.velcdn.com/images/ys_lk515/post/0ed6ea0f-86d0-4e68-96c0-112338a33435/image.png" alt=""></p>
</li>
<li><p>위 그림과 같이 Exception 클래스를 활용해 예외를 처리할 수 있고, 어떤 예외가 발생했는지 출력해볼 수 있음</p>
</li>
<li><p>raise: 강제로 예외를 발생시키는경우에 사용</p>
</li>
<li><p>Exception 클래스를 상속하여 사용자 예외 클래스를 만들 수 있음
<img src="https://velog.velcdn.com/images/ys_lk515/post/e2c5344f-8500-4267-8137-c9de9a2ed08b/image.png" alt=""></p>
</li>
<li><p><strong>Text 파일 쓰기, 읽기</strong></p>
</li>
<li><p>open(), read(), write(), close()를 이용하여 텍스트 파일을 다룰 수 있음</p>
</li>
<li><p>파일을 읽거나 쓰고 난 후 반드시 close()로 닫아주어야 함</p>
</li>
<li><p>파일쓰기 : write() 함수를 이용해 파일에 문자열을 씀
<img src="https://velog.velcdn.com/images/ys_lk515/post/b9cfff32-d9a9-4d1f-8e29-7283f98d2a13/image.png" alt="">
▶이때, &#39;w&#39; 모드에서는 파일이 없으면 새로운 파일을 생성함. 또한, 기존의 저장되어 있는 파일이더라도 저장된 문자열을 없애고 새로운 문자열로 덮어버림</p>
</li>
<li><p>파일읽기 : read()함수를 이용해 문자열을 읽음<img src="https://velog.velcdn.com/images/ys_lk515/post/ee0132aa-3c14-4ed0-b332-511dfbac6b72/image.png" alt=""></p>
<p>-파일모드는 파일을 어떤 목적으로 open할지 정함
＊&#39;w&#39; : 쓰기 전용(파일이 있으면 덮어씌움)
＊&#39;a&#39; : 쓰기 전용(파일이 있으면 덧붙임)
＊&#39;x&#39; : 쓰기 전용(파일이 있으면 에러 발생)
＊&#39;r&#39; : 읽기 전용(파일이 없으면 에러 발생)</p>
<p>-with ~ as 문을 이용해 파일 닫기(close) 생략 가능
<img src="https://velog.velcdn.com/images/ys_lk515/post/b107f68b-4337-402d-bfab-bd5e9173a09f/image.png" alt="">
-writelines()는 리스트(list) 또는 튜플 데이터를 파일에 쓰기 위한 함수
-readlines()는 파일의 모든 데이터를 읽어서 리스트 형태로 반환하는 반면, readline()는 한 행을 읽어서 문자열로 반환</p>
</li>
</ul>
<p> &lt;강의 자료 출처: 제로베이스 스쿨 데이터 분석 강의&gt;</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/9 Study Note(python 중급 5~6)]]></title>
            <link>https://velog.io/@ys_lk515/210-Study-Notepython-%EC%A4%91%EA%B8%89-56</link>
            <guid>https://velog.io/@ys_lk515/210-Study-Notepython-%EC%A4%91%EA%B8%89-56</guid>
            <pubDate>Thu, 09 Feb 2023 17:37:02 GMT</pubDate>
            <description><![CDATA[<ul>
<li><p><strong>객체와 메모리</strong></p>
</li>
<li><p>변수는 객체의 메모리 주소를 저장하고 이를 이용해 객체를 참조함(객체의 주소를 이용해 참조한다하여 레퍼런스 변수라 함)</p>
</li>
<li><p>얕은 복사: 객체 주소를 복사하는 것으로 객체 자체가 복사되지 않음(변수를 복사해도 객체가 복사된 것이 아니라, 동일한 객체의 주소가 복사된 것. 따라서 동일한 객체를 두 개의 변수가 참조하게되며, 해당 객체를 수정하면 참조 중인 두 개의 변수 모두 데이터가 변경됨)</p>
</li>
<li><p>깊은 복사: 객체 자체를 복사하는 것으로 또 하나의 객체가 만들어짐 
&lt;깊은 복사 방법&gt;
<img src="https://velog.velcdn.com/images/ys_lk515/post/aabfbac4-8c68-4e87-bf48-091144a3cb16/image.png" alt="">
<img src="https://velog.velcdn.com/images/ys_lk515/post/5397d8dd-9a73-4de7-8c58-e5d918ba67cc/image.png" alt=""></p>
<p>-클래스 상속: 또 다른 클래스의 기능을 가져와 내 것처럼 사용하는 것
-객체가 생성될 때 생성자를 호출하면 <strong><strong>inint</strong></strong>()가 자동 호출됨
<img src="https://velog.velcdn.com/images/ys_lk515/post/1a5bfce2-3e8e-419e-9253-d4dd80deef3f/image.png" alt="">
-<strong><strong>init</strong></strong>(): 속성 초기화
-<strong><strong>super</strong></strong>(): 상위 클래스의 속성을 초기화할 때 이용(self값은 넣어주지 않아도 됨)
-다중 상속: 2개 이상의 클래스를 상속하는 것으로, ()안에 상속받고 싶은 클래스를 나열하면 됨(개발자가 헷갈릴 수 있으므로 남발하는 것은 좋지 않고, 필요할 때만 사용)
-오버라이딩: 하위 클래스에서 상위 클래스의 메서드를 재정의(override)하는 것
-추상클래스: 상위 클래스에서 하위 클래스에 메서드 구현을 강요하는 것으로, 클래스를 상속받았을 때 각 클래스가 공통의 메서드를 사용하는 경우, 알아서 지정하여 상황에 맞게 쓰도록 하기 위한 것. 하위 클래스에서 구체화하지 않으면 Error 발생</p>
</li>
<li><p><strong>예외</strong></p>
</li>
<li><p>예외란, 문법적인 문제는 없으나 실행 중 발생하는 예상치 못한 문제(Error: 천재지변이나 네트워크 문제와 같이 소프트웨어적으로 해결할 수 없는 문제. 예외와 엄격하게 구별하여 사용할 필요는 없음)</p>
</li>
<li><p>예외 관련 클래스는 Exception 클래스를 상속함 
<img src="https://velog.velcdn.com/images/ys_lk515/post/3cd68a41-10cc-4d38-8925-acc1c457db3c/image.png" alt=""></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/8 Study Note(python 중급 3~4)]]></title>
            <link>https://velog.io/@ys_lk515/28-Study-Notepython-%EC%A4%91%EA%B8%89-34</link>
            <guid>https://velog.io/@ys_lk515/28-Study-Notepython-%EC%A4%91%EA%B8%89-34</guid>
            <pubDate>Wed, 08 Feb 2023 16:26:34 GMT</pubDate>
            <description><![CDATA[<ul>
<li><p><strong><strong>name</strong></strong> 전역변수 : <strong><strong>name</strong></strong>에는 모듈 이름이 저장되거나 &#39;<strong><strong>main</strong></strong>&#39;이 저장됨</p>
</li>
<li><p>실행(메인)파일에서는 &#39;<strong><strong>main</strong></strong>&#39;이 저장되며, 그 외 파일에서는 해당 모듈의 파일명이 전역변수에 문자열로 저장</p>
</li>
<li><p>python 엔진이 시작파일을 찾아가기 위한 방법으로  사용</p>
</li>
<li><p>패키지 : 모듈을 묶어서 관리하는 것</p>
</li>
<li><p>패키지를 이용하면 관련있는 모듈을 그룹으로 관리 가능
<img src="https://velog.velcdn.com/images/ys_lk515/post/b9a32fdb-1c01-4b98-b91c-7a3373eaf677/image.png" alt="">
CalculatorForInt와 CalculatorForFloat 패키지 내에 있는 모듈의 이름은 같으나, 패키지 이름을 달리하여 구분</p>
</li>
<li><p>site-packages: site-packages에 있는 모듈은 어디서나 사용 가능. 따라서 사용자가 만든 모듈을 범용적으로 사용하고 싶다면 site-packages로 해당 모듈파일을 옮기면 됨</p>
</li>
<li><p>자주 사용하는 모듈: math(수학 관련), random(난수 관련), time(시간 관련) 모듈</p>
</li>
<li><p>math모듈 
#절댓값 : math.fabs()
#올림 : math.ceil()
#내림 : math.floor()
#버림 : math.trunc()
#최대공약수 : math.gcd(num1, num2)
#팩토리얼 : math.factorial()
#제곱근 : math.sqrt()</p>
</li>
<li><p>time모듈
#현재 시스템 시간 정보 : time.localtime()
#년도 : lt.tm_year
#월 : lt.tm_mon
#날짜 : lt.tm_mday
#시간 : lt.tm_hour
#분 : lt.tm_min
#초 : lt.tm_sec
#요일 : lt.tm_wday → 0부터 시작해서 숫자로 표현
(e.g. 수요일인 경우 2)</p>
</li>
<li><p>객체 지향 프로그래밍 : 객체를 이용한 프로그램으로, 객체는 속성과 기능으로 구성 </p>
</li>
<li><p>객체는 클래스에서 생성되며, 클래스는 1개 만들어져도 객체는 사용자가 원하는 만큼 만들 수 있음. 즉, 클래스는 객체를 만들기 위한 &#39;틀&#39;이라고 볼 수 있음</p>
</li>
<li><p>객체 사용의 장점 → 코드 재사용, 모듈화에 좋음</p>
</li>
<li><p>클래스는 class키워드와 속성(변수), 기능(함수)를 이용해 만듦
<img src="https://velog.velcdn.com/images/ys_lk515/post/f3ae5488-cd6f-4f28-82b7-530394ae83b2/image.png" alt=""></p>
</li>
<li><p>객체는 클래스의 생성자를 호출
(e.g. 위 사진의 경우 car1 = Car(&#39;red&#39;, 200) / car2 = Car(&#39;blue, 300) 으로 객체 2개 생성할 수 있고, 원하는 만큼 생성 가능)</p>
</li>
<li><p>객체의 속성 변경가능</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2/7 Study Note(python 중급 1~2) ]]></title>
            <link>https://velog.io/@ys_lk515/27-Study-Notepython-%EC%A4%91%EA%B8%89-12</link>
            <guid>https://velog.io/@ys_lk515/27-Study-Notepython-%EC%A4%91%EA%B8%89-12</guid>
            <pubDate>Tue, 07 Feb 2023 15:47:26 GMT</pubDate>
            <description><![CDATA[<h2 id="함수"><strong>&lt; 함수 &gt;</strong></h2>
<ul>
<li>함수란? 기능, python에서의 함수는 수학의 함수와 동일</li>
<li>내장함수: python에서 기본으로 제공하는 함수
사용자함수: 사용자가 직접 선언하는 함수</li>
<li>함수를 사용하는 이유: 특정 기능을 재사용하기 위함 </li>
<li>함수 선언</li>
<li>함수는 def 키워드, 함수명, :, 들여쓰기를 이용해 선언</li>
<li>함수명의 첫글자는 소문자로 쓰는 것이 관례이며, 특수문자나 숫자를 사용할 수 없음.</li>
<li>함수명만 보고 기능을 유추할 수 있게 작명하는 것이 좋음</li>
</ul>
<p><img src="https://velog.velcdn.com/images/ys_lk515/post/c99accc2-27a0-42c6-9500-94dda3eff67f/image.png" alt=""></p>
<ul>
<li><p>함수 호출</p>
</li>
<li><p>함수명과 &#39;()&#39;를 이용해 함수 호출</p>
</li>
<li><p>함수 내에서 또 다른 함수를 호출할 수 있음 
<img src="https://velog.velcdn.com/images/ys_lk515/post/ee64b39b-406e-4763-8d83-71afe92010d3/image.png" alt=""></p>
</li>
<li><p>pass를 이용하여 실행문 생략 가능</p>
</li>
<li><p>인수와 매개변수</p>
</li>
<li><p>함수 호출 시 함수에 데이터를 전달할 수 있는데, 매개변수는 함수의 호출부와 선언부를 연결해주는 변수로, 해당 함수 내에서만 사용 가능</p>
</li>
<li><p>인수와 매개변수의 개수는 일치해야함</p>
</li>
<li><p>매개변수의 개수가 정해지지 않은 경우 &#39;*&#39;를 이용함</p>
</li>
<li><p>return 키워드를 이용해 함수 실행 결과를 호출부로 반환할 수 있음 </p>
</li>
<li><p>전역변수와 지역변수</p>
</li>
<li><p>전역변수: 함수 밖에서 선언된 변수로, 어디에서나 사용 가능하지만 함수 안에서 수정 불가능
(단, global을 사용하면 함수 안에서 전역변수 값 수정 가능)</p>
</li>
<li><p>지역변수: 함수 안에 선언된 변수로, 함수 안에서만 사용 가능</p>
</li>
<li><p>중첩함수</p>
</li>
<li><p>함수 안에 또 다른 함수가 있는 형태
<img src="https://velog.velcdn.com/images/ys_lk515/post/420c700e-34fb-4a62-b59a-f00d36e5089e/image.png" alt=""></p>
</li>
<li><p>내부 함수를 함수 밖에서 호출할 수 없음</p>
</li>
<li><p>lambda 함수</p>
</li>
<li><p>lambda 키워드를 사용하면 함수 선언을 보다 간단하게 할 수 있음. 반드시 사용해야 하는 것은 아니지만, 간결한 함수일 때 편의를 위해 사용
<img src="https://velog.velcdn.com/images/ys_lk515/post/d6a85779-b18c-41a3-b414-14a05d3c0efd/image.png" alt=""></p>
</li>
<li><p>모듈</p>
</li>
<li><p>이미 만들어진 기능으로 사용자가 쉽게 사용할 수 있음 </p>
</li>
<li><p>python에는 내부모듈, 외부모듈, 사용자모듈이 있음</p>
</li>
<li><p>내부모듈: python 설치 시 기본적으로 사용 가능
외부모듈: 별도 설치 후 사용 가능
 사용자모듈: 사용자가 직접 만든 모듈</p>
</li>
<li><p>모듈은 특정 기능을 가지고 있는 파이썬 파일로, 파이썬 파일명이 모듈의 이름(사용자에 의해 만들어진 모듈도 내부 모듈과 같은 방식으로 불러와서 사용할 수 있음)</p>
</li>
<li><p>import 키워드를 이용해 모듈 사용</p>
</li>
<li><p>as 키워드를 통해서 모듈의 이름을 단축시킬 수 있음
(e.g. 모듈 이름 = calculator 인 경우, import calculator as cal 을 입력하면 아래 그림과 같이 단축하여 사용 가능)
<img src="https://velog.velcdn.com/images/ys_lk515/post/8f585256-40d1-404a-990b-32ae4b462824/image.png" alt=""></p>
</li>
<li><p>from ~ as 키워드를 이용해 모듈의 특정 기능만 사용 가능
(모든 기능을 다 가져오고 싶을 때는 &#39;＊&#39; 사용 → from calculator import ＊)</p>
</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>