<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>ppm_vely.log</title>
        <link>https://velog.io/</link>
        <description>오늘도 개발중인 ppm's Programming Log</description>
        <lastBuildDate>Wed, 29 Jun 2022 04:38:43 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>ppm_vely.log</title>
            <url>https://velog.velcdn.com/images/ppm_vely/profile/d2bc2687-5e55-4194-bea9-b32171bea24e/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. ppm_vely.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/ppm_vely" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[코테[Java] 풀면서 정리하는 기본적인 문법들]]></title>
            <link>https://velog.io/@ppm_vely/%EC%BD%94%ED%85%8CJava-%ED%92%80%EB%A9%B4%EC%84%9C-%EC%A0%95%EB%A6%AC%ED%95%98%EB%8A%94-%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9D%B8-%EB%AC%B8%EB%B2%95%EB%93%A4</link>
            <guid>https://velog.io/@ppm_vely/%EC%BD%94%ED%85%8CJava-%ED%92%80%EB%A9%B4%EC%84%9C-%EC%A0%95%EB%A6%AC%ED%95%98%EB%8A%94-%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9D%B8-%EB%AC%B8%EB%B2%95%EB%93%A4</guid>
            <pubDate>Wed, 29 Jun 2022 04:38:43 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>자바 코테를 풀며 기본적으로 꼭 알아둬야 할것들을 정리해봤다. 기본적이지만 풀다보면 헷갈리는 부분이 많다.</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/045556a3-8598-451d-9d2e-6a85b53ed643/image.png" alt=""></p>
<h1 id="1-배열">&gt; 1. 배열</h1>
<h2 id="1-1-length-vs-length-vs-size-차이">1-1. length vs. length() vs. size() 차이</h2>
<ul>
<li>length
<u style="color:skyblue">배열의 길이</u>를 알고자 할 때
int[] intArr = new int[7];
→ intArr.length = 7 이다.
→ 요소를 7개 이하로 추가해도 길이는 항상 7이다. 왜냐면 초기에 크기를 7로 할당해줬으니까</li>
<li>length()
<u style="color:skyblue">문자열의 길이</u>를 알고자 할 때
이건 문자열에서만 사용한다!!
→ <u><strong>배열은 arr.length / 문자열은 str.length() 이다!</strong></u></li>
<li>size()
int[] intArr = new int[7];
→ intArr.length 하면 컴파일 오류!
→ 이런 오류..
<img src="https://velog.velcdn.com/images/ppm_vely/post/10ff7737-5182-4189-93fa-6c35b38fc5be/image.png" alt=""></li>
</ul>
<p><u style="color:skyblue">컬렉션프레임워크 타입의 길이</u>를 알고자 할 때
즉, java.util.Collections 클래스의 메소드이다.
→ ArrayList, LinkedList, HashSet, HashMap 같은 다양한 컬렉션에서 사용
→ 현재 존재하는 요소의 수를 반환
→ length와 달리 size()는 반환하는 값이 일정하지 않고 요소 수에 따라 변화한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[SpringBoot을 이용한 게시판 만들기_02_게시글 등록 구현]]></title>
            <link>https://velog.io/@ppm_vely/SpringBoot%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B003%EA%B2%8C%EC%8B%9C%EA%B8%80-%EB%93%B1%EB%A1%9D-%EA%B5%AC%ED%98%84</link>
            <guid>https://velog.io/@ppm_vely/SpringBoot%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B003%EA%B2%8C%EC%8B%9C%EA%B8%80-%EB%93%B1%EB%A1%9D-%EA%B5%AC%ED%98%84</guid>
            <pubDate>Wed, 22 Jun 2022 01:58:35 GMT</pubDate>
            <description><![CDATA[<h1 id="게시글-등록-구현하기">게시글 등록 구현하기</h1>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/ca1e43e8-f0b2-4fe3-9c98-5da0f7ea965c/image.png" alt=""></p>
<blockquote>
<p>[구현할 기능 범위]</p>
</blockquote>
<ul>
<li>input / radio / select / checkbox / textarea를 이용한 구현</li>
<li>값 입력 유효검사</li>
<li>빈 문자열 체크</li>
<li>input, textarea 최대 글자 수 체크</li>
<li>checkbox에서 &#39;전체&#39; 체크 및 해제</li>
<li>작성 후 이전 페이지로 돌아가기</li>
<li>파일첨부 (아직 구현안함..)</li>
</ul>
<h2 id="1-필요한-파일-만들기">1. 필요한 파일 만들기</h2>
<p>view 파일 ☞ writeNotes.html  (js,css 같이 묶음)
DAO ☞ NoteDAO.java
Controller ☞ writeNotesController.java (controller 하나에 게시판 CRUD가 다 들어가므로 NotesController.java해도 상관없다~)
Service ☞ NotesService.java , NotesServiceImpl.java
mapper ☞ NotesMapper.java, NotesMapper.xml</p>
<p>이제 파일을 다 만들었다면..차례대로 하나씩 해가보자!</p>
<h2 id="2-writenoteshtml-화면-그리기">2. writeNotes.html (화면 그리기)</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/5b1cfb55-f1b8-4c8f-8b1c-4eb21c3c2a82/image.png" alt="">
<img src="https://velog.velcdn.com/images/ppm_vely/post/50159311-e7bb-4f7b-ac96-ba1ec6a67690/image.png" alt=""></p>
<p>취향에 따라 스타일에 따라 <table>을 만들면 된다.
 &lt; tr &gt;은 행
 &lt; td &gt;는 열</p>
<h2 id="3-notedaojava">3. NoteDAO.java</h2>
<p>   <img src="https://velog.velcdn.com/images/ppm_vely/post/584d0185-3be6-4e0f-b80c-d521581f97f8/image.png" alt=""></p>
<p>DB Entity와 똑같이 생성해준다.
lombok 쓰면 위에 @Data 추가해주고
나는 lombok을 안써서 그냥 getter setter toString 다 만들어주었다.</p>
<h2 id="4-ajax로-데이터-보내기--유효검사">4. ajax로 데이터 보내기 &amp; 유효검사</h2>
<p>  JSON형태로 ajax를 이용해 보낼주거다.
  그전에!
  빈칸없이 데이터가 잘 입력되었는지 유효검사를 해줄거다.</p>
<blockquote>
<p>유효검사 Check List</p>
</blockquote>
<ul>
<li>제목 input  ☛ 1자 이상 20자 이하인가 &amp; 공백체크</li>
<li>내용 textarea  ☛ 1자 이상 100자 이하인가</li>
<li>radio, checkbox  ☛ 체크되어 있는가
만약 이 조건에 유효하지 않는다면 alert 창을 띄워준다.</li>
</ul>
<h3 id="4-1-유효검사는-어떻게">4-1. 유효검사는 어떻게?</h3>
<p>   <img src="https://velog.velcdn.com/images/ppm_vely/post/51a02c5d-9656-41e3-8572-c95ddd22536f/image.png" alt=""></p>
<p> .trim()은 앞뒤 공백을 제거해준다.
 이걸 통해 공백 문자열도 체크해줄 수 있다!</p>
<p>이  외 checkbox 유효검사도 필요하다.
[전체]누르면 나머지 다 체크되고,
전체 다 체크되어있는데 하나 해지하면 [전체]체크박스 해지하고
[전체]체크된 상태에서 다시 누르면 전체 해지되고
이 검사는 다른 게시글에 정리해야지..!</p>
<h3 id="4-2-ajax로-데이터-보내기">4-2. ajax로 데이터 보내기</h3>
<p>데이터 검증이 끝났으니 이제 JSON 형태로 바꾸어 ajax로 보내주면 된다.
   <img src="https://velog.velcdn.com/images/ppm_vely/post/21a762f0-0cc3-4ff3-a167-b235ea8b32ab/image.png" alt=""></p>
<p>위에 submitNote() 함수 안에 이어서 작성해주면된다.</p>
<p>noteDao라는 Object를 만들어 데이터를 넣어주고
JSON.stringify(noteDao)로 보내주면 된다.</p>
<p>.success는 data를 넘겨주는데 성공했을 경우 alert()창이 뜨며 게시글 목록 조회페이지로 이동한다. 이때 보고있던 해당 페이지로 이동한다.
그럴러면 currentPage를 계속 저장하고 있어야겠지?</p>
<p>여기서 ajax의 success / error / finally   ,  done/fail에 대해 알아두면 좋다. 이것도 다음 게시글에서..!</p>
<h2 id="5-writenotescontrollerjava">5. writeNotesController.java</h2>
<p> <img src="https://velog.velcdn.com/images/ppm_vely/post/dfaf46c9-bacc-446e-a30f-4983d7e2861e/image.png" alt=""></p>
<p>   업로드는 미완성이므로 업로드 관련 코드 빼고 해주면 된다.
   저렇게 두개만 해주면 된다.</p>
<h2 id="6service-만들기">6.Service 만들기</h2>
<h3 id="6-1-notesservicejava-만들기">6-1. NotesService.java 만들기</h3>
<p>   <img src="https://velog.velcdn.com/images/ppm_vely/post/29f1d2d5-a7f8-4dc2-9233-a97b61d905fd/image.png" alt=""></p>
<p>   writeBoardInsert(); 만들어주고</p>
<h3 id="6-2-notesserviceimpljava-만들기">6-2. NotesServiceImpl.java 만들기</h3>
<p>   <img src="https://velog.velcdn.com/images/ppm_vely/post/56f702f3-6710-4376-9447-99fad2b87c73/image.png" alt=""></p>
<p>   상위에 @Service 추가해주고,
   mapper와 매핑해준다.
   근데 아직 mapper을 안만들었으니 이제 만들차례겠지?</p>
<h2 id="7-mapper-만들기">7. mapper 만들기</h2>
<h3 id="7-1-notesmapperjava-만들기">7-1. NotesMapper.java 만들기</h3>
<p>   <img src="https://velog.velcdn.com/images/ppm_vely/post/98073cfa-b4fd-4caa-969f-883bc4bab90b/image.png" alt=""></p>
<p>   가장 상위에 @Mapper 추가해주고
   writeBoardInsert(NoteDAO noteDao);를 만들어준다.</p>
<h3 id="7-2-notesmapperxml-만들기">7-2. NotesMapper.xml 만들기</h3>
<p>   <img src="https://velog.velcdn.com/images/ppm_vely/post/005e1881-3054-407e-afc6-b94149148a4b/image.png" alt=""></p>
<p>   여기서 NoteID는 sequence라고 생각하면 되는데, 이때 첫번째 게시글을 등록할때 null이된다. 그러므로 ISNULL 처리해준다.
   MSSQL은 IFNULL이 아니라 ISNULL 이더라.</p>
<p>게시글 등록 구현하기 끝!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[SpringBoot을 이용한 게시판 만들기_02_개발환경 셋팅]]></title>
            <link>https://velog.io/@ppm_vely/SpringBoot%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B002%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%85%8B%ED%8C%85</link>
            <guid>https://velog.io/@ppm_vely/SpringBoot%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B002%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%85%8B%ED%8C%85</guid>
            <pubDate>Tue, 21 Jun 2022 08:53:07 GMT</pubDate>
            <description><![CDATA[<h2 id="개발환경">개발환경</h2>
<blockquote>
<p>Eclipse
SpringBoot
Thymeleaf
Maven
MyBatis
MSSql</p>
</blockquote>
<h2 id="프로젝트-구조">프로젝트 구조</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/709c536c-620e-4199-8335-aa168c56a6ae/image.png" alt=""></p>
<p>Mapper에서 java파일과 xml 파일이 같이 붙어있다.
연습하는거라 넘어갔지만
<span style="color:skyblue"><strong>Mapper.xml 파일은 /src/main/resources 에 mapper  폴더를 만들어주고 거기에 넣어줘야 한다!</strong></span></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[SpringBoot을 이용한 게시판 만들기_01_프로젝트개요 & 개발환경 셋팅]]></title>
            <link>https://velog.io/@ppm_vely/SpringBoot%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B0%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EA%B0%9C%EC%9A%94%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%85%8B%ED%8C%85</link>
            <guid>https://velog.io/@ppm_vely/SpringBoot%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B0%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EA%B0%9C%EC%9A%94%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%85%8B%ED%8C%85</guid>
            <pubDate>Tue, 21 Jun 2022 08:43:42 GMT</pubDate>
            <description><![CDATA[<h2 id="1-프로젝트-배경">1. 프로젝트 배경</h2>
<p>SpringBoot 환경에서 CRUD 연습을 위해 게시판 만들기 토이 프로젝트를 진행했다.
<img src="https://velog.velcdn.com/images/ppm_vely/post/218593f0-1194-41d3-8592-e2a9478dcad6/image.png" alt=""></p>
<h2 id="2-프로젝트-기간">2. 프로젝트 기간</h2>
<p>2022.05.11 ~ 2022.05.27 (13일)</p>
<h2 id="3-개발환경">3. 개발환경</h2>
<blockquote>
<p>개발환경
Eclipse
SpringBoot
Thymeleaf
Maven
MyBatis
MSSql</p>
</blockquote>
<h2 id="4-구현기능-범위">4. 구현기능 범위</h2>
<h3 id="1-게시글-목록-조회">1. 게시글 목록 조회</h3>
<p>1-1. 게시글 검색 (제목 또는 제목+내용)
1-2. 게시글 페이징처리</p>
<h3 id="2-게시글-작성">2. 게시글 작성</h3>
<p>2-1. input / radio / select / checkbox / textarea를 이용한 구현
2-2. 값 입력 유효검사
2-2-1. 빈 문자열 체크
2-2-2. input, textarea 최대 글자 수 체크
2-2-3. checkbox에서 &#39;전체&#39; 체크 및 해제
2-2. 작성 후 이전 페이지로 돌아가기</p>
<h3 id="3-게시글-상세보기">3. 게시글 상세보기</h3>
<p>4-1. 게시글 수정 전에 진입하는 페이지로, 모든 입력란 비활성화
4-2. 취소 클릭 시, 이전 목록 페이지(페이징값 저장)로 이동
4-3. 수정버튼 클릭시 게시글 수정 가능</p>
<h3 id="4-게시글-수정">4. 게시글 수정</h3>
<p>4-1. 게시글 작성과 기능 구현 동일
4-2. 수정 완료 시, 게시글 목록(페이징값 저장)으로 이동</p>
<h3 id="5-게시글-삭제">5. 게시글 삭제</h3>
<p>5-1. 게시글 목록 조회에서 체크박스를 이용해 삭제 가능 5-2. 체크박스로 전체 선택 및 해제 가능</p>
<ol start="6">
<li>CRUD 외
6-1. layout 만들기 (header) 만듬 6-2. CSS</li>
</ol>
<p>자세한 코드는 여기 github 주소로!
👉 <a href="https://github.com/indiaesther/notice_prj">https://github.com/indiaesther/notice_prj</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[빅데이터분석기사 실기 공부방법 & 합격후기]]></title>
            <link>https://velog.io/@ppm_vely/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0-%EA%B3%B5%EB%B6%80%EB%B0%A9%EB%B2%95-%ED%95%A9%EA%B2%A9%ED%9B%84%EA%B8%B0</link>
            <guid>https://velog.io/@ppm_vely/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0-%EA%B3%B5%EB%B6%80%EB%B0%A9%EB%B2%95-%ED%95%A9%EA%B2%A9%ED%9B%84%EA%B8%B0</guid>
            <pubDate>Tue, 21 Jun 2022 08:37:13 GMT</pubDate>
            <description><![CDATA[<p>2021.6.19 제2회 빅데이터분석기사 실기 시험 합격 후기</p>
<h2 id="1-교재-인강">1. 교재, 인강</h2>
<p>빅데이터분석기사 실기 관련은 교재가 없다. 한국데이터진흥원에서 공개한 출제유형를 통해 문제유형을 파악하고 유튜브나 블로그에 올라와있는 해설을 통해 공부했다.</p>
<h2 id="2-난이도">2. 난이도</h2>
<p>고난이도의 머신러닝, 딥러닝, 튜닝을 요구하지는 않는 것 같다. 하지만! 당연히 어느정도 공부가 되고 이해가 되어있어야 데이터를 전처리하고 모델을 설계하며 튜닝할 수 있다. 기본적으로 sklearn, pandas, numpy 관련 패키지 사용할 줄 알고, 머신러닝 과정을 알고있으면 수월하게 풀 수 있다.</p>
<h2 id="3-시험후기">3. 시험후기</h2>
<p>나는 파이썬을 선택했다. 여러 블로그나 유튜브를 보면 제2유형의 경유 모델링을 하는데 있어 파이썬이 더 유리하다고하는 사람들이 많았고, 나 역시 파이썬을 더 자신있고 편하기에 파이썬을 선택했다. 시험환경에서 사용할 수 있는 라이브러리가 제한되어있으므로 홈페이지 들어가 확인해보고 가면 좋을 것 같다.</p>
<h3 id="--단답형--">- 단답형 -</h3>
<p>아주 쉬운 난이도로 출제되었다. 정말 기본 중에 기본적인 단어가 나와 수월하게 풀 수 있었다. ADsP에 나오는 단답형 중 쉬운 난이도 문제와 비슷하다고 보면 될 것 같다. (지극히 개인적인 생각이라는 점~!)</p>
<h3 id="-제1유형-">-제1유형-</h3>
<p>간단하게 문제 제시대로 데이터 전처리하면 된다. 다만 여기서 pandas를 사용하는데 기억이 애매하게 나는 문법이 있을 수 있으니 꼼꼼히 공부하면 좋을 것 같다. 만약 함수에 넣어야하는 인자값 등이 생각 안나면 help()의 도움을 받을 수 있다. </p>
<p>나는 pandas에서 데이터 필터링 걸 때, 조건 2개 이상의 필터링을 &amp;&amp;인지 &amp;인지 and 로 연결하는지 너무 햇갈렸다..그래서? 오류걸려 못 풀었다..이런 실수는 하지 말자구~!</p>
<h3 id="-제2유형-">-제2유형-</h3>
<p>실기문제 중 가장 높고 무료 40점이나 차지하는 점수가 높은 마지막 문제이다. </p>
<p>코드 흐름은 아래와 같다.</p>
<p>csv 파일 열기 → 데이터 확인 및 전처리 → 데이터 분할 </p>
<p>→ 모델링 및 평가 → csv 파일 답안 제출</p>
<p>라이브러리 import 하는 것도 다 순수 코딩해야 하니 헷갈리는 일이 없도록 꼭!꼭! 정확히 외워가야 한다. 모델링은 sklearn을 사용하면 되고 각 알고리즘 사용코드 및 파라미터 종류는 외워가야 한다. 왜냐하면 오픈북이 아니니까..</p>
<p>그리고 아직도 시험에서 이해가 안가는건 코드실행시간이 1분으로 제한되있다. SVC의 경우 다른 알고리즘에 비해 시간이 더 걸리고, 하이퍼파라미터 튜닝 시 더 많은 시간이 걸려 1분을 넘기게 된다. 특히 파이프라인으로 성능 측정할 경우 시간이 초과되어 실행이 중단되기 때문에 결과를 확인할 수도 없다.. 그래서 정교한 튜닝을 할 수 없으며 여러 전처리 작업과 병행하기 힘든 한계점이라는 거다.</p>
<p>결론은 기본적인 여러 모델링과 기본적인 튜닝 그리고 성능평가를 할 줄 알면 된다. 패키지 불러오고 관련 함수, 파라미터 등 잘 외워가야 한다.</p>
<h4 id="빅데이터분석기사-응시자-여러분-모두모두-합격을-기원합니다">빅데이터분석기사 응시자 여러분 모두모두 합격을 기원합니다~~!</h4>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/ffcf676f-7049-45c1-8369-f62fcce75ed1/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[04.데이터 분석]]></title>
            <link>https://velog.io/@ppm_vely/04.%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D</link>
            <guid>https://velog.io/@ppm_vely/04.%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D</guid>
            <pubDate>Tue, 21 Jun 2022 08:29:28 GMT</pubDate>
            <description><![CDATA[<h1 id="1-데이터-분석-방법론">1. 데이터 분석 방법론</h1>
<p>효과적인 데이터 분석을 위하여 이를 체계화한 절차와 방법</p>
<p>Phase(단계), Task(태스크), Step(스텝)으로 3계층 구성</p>
<p>Phase ⊃ Task ⊃ Step</p>
<h2 id="1-1-분석-방법론-적용-모델">1-1. 분석 방법론 적용 모델</h2>
<p>-폭포수</p>
<p>-프로토타입</p>
<p>-나선형</p>
<h4 id="빅데이터-분석-방법론-참조-모델">빅데이터 분석 방법론 참조 모델</h4>
<h5 id="분석기획">분석기획</h5>
<p>비즈니스 이해 및 범위 설정</p>
<p>프로젝트 정의 및 계획 수립</p>
<p>프로젝트 위헙계획 수립</p>
<pre><code>     ↓</code></pre><h5 id="데이터-준비">데이터 준비</h5>
<p>필요 데이터 정의</p>
<p>데이터 스토어 설계</p>
<p>데이터 수집 및 정합성 점검</p>
<pre><code>     ↓</code></pre><h5 id="데이터-분석">데이터 분석</h5>
<p>분석용 데이터 준비</p>
<p>텍스트 분석</p>
<p>탐색적 분석</p>
<p>모델링</p>
<p>모델평가 및 검증</p>
<pre><code>     ↓</code></pre><h5 id="시스템-구현">시스템 구현</h5>
<p>설계 및 구현</p>
<p>시스템 테스트 및 운영</p>
<pre><code>     ↓</code></pre><h5 id="평가-및-전개">평가 및 전개</h5>
<p>모델 발전 계획 수립</p>
<p>프로젝트 평가 및 보고</p>
<h4 id="데이터-분석-방법론">[데이터 분석 방법론]</h4>
<h5 id="kdd-knowledge-discovery-in-database">KDD (Knowledge Discovery in Database)</h5>
<p>: DW, OLAP, DSS, SQL Query, 데이터 마이닝 Tool 등을 이용해서 데이터에서 잠재적인 유용한 지식 및 패턴을 발견하여 조직의 구조와 프로세스를 변경하는 데이터 분석 방법론</p>
<h5 id="crisp-dm">CRISP-DM</h5>
<p>: 데이터 마이닝 전문가가 사용하는 일반적인 접근 방식을 설명한 가장 널리 사용되는 공개 표준 분석 모델</p>
<h5 id="semma">SEMMA</h5>
<p>: SAS사가 주도로 만들어진 기술 중심, 통계 중심의 데이터마이닝 방법론</p>
<p>-Sampling</p>
<p>-Explore</p>
<p>-Modify</p>
<p>-Modling</p>
<p>-Assessment</p>
<h1 id="2-데이터-분석-방법">2. 데이터 분석 방법</h1>
<h2 id="2-1데이터-분석-방법-유형">2-1.데이터 분석 방법 유형</h2>
<h4 id="○-묘사적-데이터-분석dda---descriptive-data-analysis">○ 묘사적 데이터 분석(DDA - Descriptive Data Analysis)</h4>
<p> :현재의 모습을 요약하여 기술</p>
<p> :수집된 데이터의 표현 : 평균, 표준편차, 빈도수, 백분위수</p>
<h4 id="○-탐색적-데이터-분석eda---exploratory-data-analysis">○ 탐색적 데이터 분석(EDA - Exploratory Data Analysis)</h4>
<p> :수집된 데이터의 증상 탐색을 통한 가설 도출</p>
<p> :가능성이 큰 X-Y 관계 가설 도출</p>
<h4 id="○-확증적-데이터-분석cda---confirmatory-data-analysis">○ 확증적 데이터 분석(CDA - Confirmatory Data Analysis)</h4>
<p> :도출된 가설을 검증</p>
<p> :p-value 기준 의사결정</p>
<h4 id="○-예측-데이터-분석pda---predictive-data-analysis">○ 예측 데이터 분석(PDA - Predictive Data Analysis)</h4>
<p> :관계식을 만들고, 최적 조건을 예측함</p>
<p> :의미있는 y=f(x) 함수의 모델 도출</p>
<h1 id="3-통계분석-기술통계">3. 통계분석 (기술통계)</h1>
<h2 id="3-1-통계분석이란">3-1. 통계분석이란?</h2>
<p>관심 대상인 모집대상의 특성을 파악하기 위해</p>
<p>모집단으로부터 관련된 일부 자료(표본) 수집하고</p>
<p>수집된 표본의 자료를 요약하여 표본의 특성을 파악</p>
<p>표본의 자료를 이용하여 모집단의 특성에 대해 확률을 이용해 추론하는 분석
<img src="https://velog.velcdn.com/images/ppm_vely/post/146ec9f9-569e-4883-9883-beb5bdc24a8b/image.png" alt=""></p>
<h2 id="3-2-데이터-유형">3-2. 데이터 유형</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/716a4793-bd24-4389-bcab-578506cfe554/image.png" alt=""></p>
<h2 id="3-3-기술통계분석">3-3. 기술통계분석</h2>
<h4 id="▶-범주형-데이터">▶ 범주형 데이터</h4>
<p>-막대그래프 </p>
<p>-도수분포표</p>
<p>-파이차트</p>
<h4 id="▶-수치형-데이터">▶ 수치형 데이터</h4>
<p>-산술평균</p>
<p>-중앙값</p>
<p>-최빈값</p>
<p>-기하평균  : 비율을 나타내는 자료 값, 곱셈으로 증가 감소하는 자료 값</p>
<p>-조화평균  : N개의 양수에 대하여 그 역수를 산술 평균한 것의 역수</p>
<p>-범위</p>
<p>-편차  : 평균 값과의 차이, 평균을 중심으로 편차를 모두 더하면 0이 됨</p>
<p>-분산  : 편차를 모두 더하면 0이 되기 때문에 제곱하여 계산한 것이 분산</p>
<p>-표준편차  : 원자료의 측정단위로 다시 전환하기 위해 제곱근을 계산한 것</p>
<p>-산포  : 자료가 중심위치로부터 어느 정도 흩어져 있는가를 나타냄</p>
<p>-사분위 : 상자도표(Box Plot)에서 비율(Q1,Q2,Q3,Q4)로 표시</p>
<p>-그래프 : 도수분포표, 히스토그램, 줄기잎 그래프, 상자도표, Cross Tabulation, 산점도</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[03.데이터 저장]]></title>
            <link>https://velog.io/@ppm_vely/03.%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%80%EC%9E%A5</link>
            <guid>https://velog.io/@ppm_vely/03.%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%80%EC%9E%A5</guid>
            <pubDate>Tue, 21 Jun 2022 08:26:35 GMT</pubDate>
            <description><![CDATA[<h2 id="메타-데이터-종류">메타 데이터 종류</h2>
<h3 id="●-기술용-메타데이터">● 기술용 메타데이터</h3>
<pre><code>- 정보 자원의 검색을 목적으로 하는 메타데이터

- 발견, 식별, 선정, 병치, 평가, 링크, 가용성

- 전통적 도서관 인덱스 역할</code></pre><h3 id="●-관리용-메타데이터">● 관리용 메타데이터</h3>
<pre><code>- 자원 관리를 용이하게 하기 위한 메타데이터

- 보존용 메타데이터의 요소 </code></pre><h3 id="●-구조용-메타데이터">● 구조용 메타데이터</h3>
<pre><code>- 복합적인 디지털 객체들을 묶어주기 위한 메타 데이터

- 오디오와 텍스트 결합   (Ex.오디오 + EBook)</code></pre><h1 id="1-데이터-정제">1. 데이터 정제</h1>
<h3 id="데이터-모순점-발견">[데이터 모순점 발견]​</h3>
<ul>
<li><p>잘못 설계된 데이터 입력폼이 존재</p>
</li>
<li><p>데이터 입력에서 사람의 실수로 발생</p>
</li>
<li><p>응답자가 자신의 정보를 숨기기 위한, 의도적인 오류</p>
</li>
<li><p>만료된 데이터 (바뀐 주소)</p>
</li>
<li><p>데이터 표현의 모순 (동일주소, 다른 우편번호)</p>
</li>
<li><p>일치하지 않는 코드의 사용</p>
</li>
<li><p>데이터를 기록하는 계측 장치의 오류나 시스템 오류4</p>
</li>
</ul>
<h3 id="데이터-통합">[데이터 통합]</h3>
<ul>
<li>서로 다른 데이터 세트가 호환 가능하도록 통합</li>
</ul>
<p>메타데이터 활용의 중요</p>
<p>EX.</p>
<p>A 데이터베이스 성별값 : M, F 사용</p>
<p>B 데이터베이스 성별값 : 1, 2 사용</p>
<p>  --&gt; 종합적으로 판단하여 통합해야함</p>
<p>  --&gt; 다른 부작용이 생기지 않는지도 파악해야함</p>
<p>-데이터 값 충돌 탐지 및 해결</p>
<p>동일한 개체(item)에 대해서도 속성 값이 다를 수 있음</p>
<p>EX. 거리 단위  : m , km</p>
<p>  --&gt; 여러 유형의 문제들을 신중하게 해결하여 통합 데이터의 중복과 불일치 문제를 최소화</p>
<p>-중복해결</p>
<p>일반적으로 데이터베이스 성능을 높이기 위해 유도속성 도입 -&gt; 중복허용</p>
<p>유도속성은 성능향상에 도움이 되지만 데이터 중복을 허용하는 과정으로 데이터 불일치 문제 발생</p>
<h3 id="데이터-변환">[데이터 변환]</h3>
<p>-데이터를 다른 형식이나 다른 구조로 변환</p>
<p>● 수치형 데이터 이산화</p>
<p>  --&gt; 엔트로피-기반 이산화</p>
<p>  --&gt; 카이제곱 결합</p>
<p>● 범주형 데이터 계층화</p>
<p>  --&gt; 상위 개념으로 일반화</p>
<h3 id="데이터-축소">[데이터 축소]</h3>
<p>: 데이터 용량을 줄이되, 내용/결과는 동일하게 유지</p>
<h4 id="○-속성-부분-집합-선택">○ 속성 부분 집합 선택</h4>
<ul>
<li><p>소모적 탐색법</p>
</li>
<li><p>경험적 방법</p>
</li>
</ul>
<h4 id="○-차원-축소변수-축소">○ 차원 축소(변수 축소)</h4>
<ul>
<li><p>주성분 분석</p>
</li>
<li><p>웨이블릿 변환</p>
</li>
</ul>
<h4 id="○-수량-축소-레코드-축소">○ 수량 축소 (레코드 축소)</h4>
<p>  : 위험한 방법이 될 수 있다</p>
<ul>
<li><p>표본 추출</p>
</li>
<li><p>히스토그램</p>
</li>
<li><p>군집화</p>
</li>
</ul>
<h2 id="2-데이터-파이프라인">2. 데이터 파이프라인</h2>
<p>개념</p>
<p>: 다양한 원본에서 데이터를 수집하고</p>
<p>: 비즈니스 규칙에 따라 데이터를 변환하고</p>
<p>: 대상 데이터 저장소로 로드하는 데 사용되는 데이터 파이프라인</p>
<h4 id="★-데이터-etl-파이프라인-extract-transform-load">★ 데이터 ETL 파이프라인 (Extract, Transform, Load)</h4>
<p> : 다양한 원본에서 데이터 수집</p>
<p> : 비즈니스 규칙에 따라 데이터 변환</p>
<p> : 대상 데이터 저장소로 로드하데 사용되는 데이터 파이프라인</p>
<p>--&gt; 비교적 저용량 데이터 수집에 적합</p>
<p>--&gt; &quot;변환 후 저장&quot; 개념  : 변환에 시간이 걸리므로, 실시간 처리가 어려움</p>
<p>--&gt; 기존 서버 구조에는 적합</p>
<p>하지만 현대에 와서 LOAD와 Transform을 한꺼번에 하는 방법인..</p>
<h4 id="★-데이터-elt-파이프라인--extract-load-transform">★ 데이터 ELT 파이프라인  (Extract, Load, Transform)​</h4>
<p>  : ETL과 다르게 별도 변환 엔진을 사용하는 대신  --&gt; 클라우드로 가능!</p>
<p>  : 대상 데이터 저장소의 처리 기능을 사용하여</p>
<p>  : 데이터를 변환하는 데이터 파이프라인</p>
<p>--&gt; 데이터 -&gt; 일단 저장 -&gt; 나중에 필요하면 변환하자</p>
<p>--&gt; 요구사항 1:일단 저장 - 대용량 저장 공간 필요</p>
<p>--&gt; 요구사항 2:필요하면 변환 - 컴퓨팅 파워가 있는 저장 공간 필요</p>
<p>--&gt; 결과적으로, 클라우드 환경에 적합</p>
<p>--&gt; 장점 : 대용량 데이터, 실시간 처리 가능한 효과적인 파이프라인</p>
<h4 id="cloud-computing">[Cloud Computing]​</h4>
<p>-고성능 컴퓨터/서비스를 대여하자</p>
<p>-data center</p>
<h2 id="3-데이터-저장">3. 데이터 저장</h2>
<h3 id="3-1-네트워크-스토리지">3-1. 네트워크 스토리지</h3>
<p>네트워크를 통해서 클라이언트들이 접근하여</p>
<p>데이터를 저장, 복사하는 등</p>
<p>디스크 작업을 할 수 있는 저장장치</p>
<p>EX. 넷플릭스 서비스</p>
<p>전세계 AWS 클라우드 서버에 분산 저장</p>
<h3 id="구성유형">구성유형</h3>
<h4 id="●-das--direct-attached-storage">● DAS  Direct Attached Storage</h4>
<p> -외장 하드와 같이</p>
<p> -PC / 서버 컴퓨터에 직접 연결해서 사용하는 스토리지</p>
<p> -서버-스토리지가 1:1로 직접 연결</p>
<p> -각 서버는 직접 파일 시스템을 관리</p>
<p> -빠르고, 확장하기 쉽지만, 용량에 한계</p>
<h4 id="●-nas--network-attaced-storage">● NAS  Network Attaced Storage</h4>
<p>  -서버-네트워크-스토리지 구조로 간접 연결되는 방식</p>
<p>  -스토리지는 보통 전용 운영체제로 데이터 저장 전용 컴퓨터처럼 작동</p>
<p>  -장점 : 확장성, 유연성, 경제적, 설치/유지보수 용이</p>
<p>  -단점 : 반응속도 느림, 보안 취약, 백업 어려움</p>
<h4 id="●-san--storage-area-netowork">● SAN  Storage Area Netowork</h4>
<p>  -스토리지 디바이스 풀을 상호 연결하여 여러 서버에 동시 제공</p>
<p>  -전용 고속 네트워크를 활용한 스토리지</p>
<p>  -NAS 보다 고속의 광채널 스위치로 연결</p>
<p>  -별도의 SAN 스위치가 반드시 필요(단 비용이 고가..)</p>
<h4 id="●-sds--software-defined-storage">● SDS  Software Defined Storage</h4>
<p>  -네트워크를 통해서 클라이언트들이 접근하여 데이터를 저장, 복사 등 디스크 작업을 할 수 있는 저장장치</p>
<p>  -소프트웨어로 구현된 컨트롤러가 전체 저장장치 시스템을 관리하는 방식</p>
<p>  -스토리지 가상화 : 물리자원을 통합하여 단일 POOL 구성</p>
<p>  -다양한 인터페이스 : 블록, 오브젝트, 파일의 다양한 저장장치 인터페이스 제공</p>
<p>  -정책 기반 관리를 통해 사용자 요구에 부합하는 저장장치 자원 할당</p>
<h3 id="스토리지-서비스-유형">[스토리지 서비스 유형]</h3>
<h4 id="○-블록-스토리지">○ 블록 스토리지</h4>
<p>  : 균등한 크기로 정의된 블록에 데이터를 저장</p>
<h4 id="○-파일-스토리지">○ 파일 스토리지</h4>
<p>  : 네트워크를 이용한 파일 공유 목적</p>
<p>  : 서버와 클라이언트 구조</p>
<p>  : 클라이언트가 마운트(mount) 방식으로 파일 사용</p>
<h4 id="○-오브젝트-스토리지">○ 오브젝트 스토리지</h4>
<p>  : 오프젝트 = 데이터 본체 + 부가정보</p>
<p>  : 데이터 본체 : 파일과 유사</p>
<p>  : 부가 정보 : 메타 데이터</p>
<p>  : 오브젝트 단위로 처리</p>
<h3 id="3-2-데이터-웨어하우스">3-2. 데이터 웨어하우스</h3>
<p>DataWarehouse(DW)</p>
<p>: 기업의 대단위 데이터를 사용자 관점에서 주제별로 통합하여 축적하여 별도의 장소에 저장해 놓은 자료</p>
<p>: 단순한 데이터의 저장고가 아니라, 관계형 DB를 근간으로 많은 데이터를 다차원 분석하여 의사결정에 도움을 주는 시스템</p>
<p>소스데이터로부터 자료를 이관하는 ETT/ELT과 ODS, 마트데이터 등으로 구성</p>
<p>데이터 마트 ⊂ 데이터 웨어하우스(주제형 창고)</p>
<h3 id="dw-구성">[DW 구성]</h3>
<h4 id="○-ods-operational-data-store-운영계-정보-저장소">○ ODS Operational Data Store 운영계 정보 저장소</h4>
<p>  : 비즈니스 프로세스/AP 중심적 데이터</p>
<p>  : 기업의 실시간성 데이터르 추출/가공/전송을 거치지 않고 DW에 저장</p>
<h4 id="○-dw-db">○ DW DB</h4>
<p>  : 어플리케이션 중립적, 주제 지향적/불변적/통합적/시계열적 공유 데이터 저장소</p>
<h4 id="○-data-mart">○ Data Mart</h4>
<p>  : 특화된 소규모의 DW(부서별, 분야별)</p>
<p>  : 특정 비즈니스 프로세스, 부서, AP 중심적인 데이터 저장소</p>
<h4 id="○-olap-oline-analytical-processing">○ OLAP (Oline Analytical Processing)</h4>
<p>  : 온라인 처리 분석, 사용자가 대화형, 다양한 방식으로 데이터 분석</p>
<h3 id="dw-구축단계-및-구축방법">[DW 구축단계 및 구축방법]</h3>
<p>비즈니스 요구사항 정의</p>
<p>↓</p>
<p>데이터 모델링</p>
<p>↓</p>
<p>데이터소스 확인 및 식별</p>
<p>↓</p>
<p>데이터 추출 변환</p>
<p>↓</p>
<p>데이터웨어하우스 구축</p>
<p>↓</p>
<p>사용자 교육</p>
<h3 id="3-3-데이터-레이크">3-3. 데이터 레이크</h3>
<p>DataLake</p>
<p>: 대용량의 정형 및 비정형 데이터를 원시형태 그대로 저장하고 손쉽게 접근할 수 있게하는 대규모 저장소 (리포지토리 - 이력관리)
<img src="https://velog.velcdn.com/images/ppm_vely/post/f46d798b-e30f-40bc-9583-acc05896fa92/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[02.데이터 수집, 가공]]></title>
            <link>https://velog.io/@ppm_vely/02.%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%88%98%EC%A7%91-%EA%B0%80%EA%B3%B5</link>
            <guid>https://velog.io/@ppm_vely/02.%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%88%98%EC%A7%91-%EA%B0%80%EA%B3%B5</guid>
            <pubDate>Tue, 21 Jun 2022 08:22:47 GMT</pubDate>
            <description><![CDATA[<h2 id="1-데이터-분석이란">1. 데이터 분석이란?</h2>
<p>데이터 분석 : 저장된 데이터에서 의미 있는 정보를 얻기 위한 과정</p>
<h3 id="1-1-데이터-분석의-목표">1-1. 데이터 분석의 목표</h3>
<p>경제적 가치 창출</p>
<p>-업무 생산성 향상  : 자원의 추적 관리, 자원 사용/관리의 최적화</p>
<p>-고객 맞춤형 마케팅  : 고객 감성/경험 분석 -&gt; 요구 예측  -&gt; 고객별 대응  </p>
<pre><code>   ● CRM 고객관계관리</code></pre><p>-의사결정 능력 향상  : 정보 연계성 파악, 고객 요구 실시간 파악 -&gt; 정확한 정보 확보 -&gt; 가치 기반 의사결정</p>
<p>-신 사업 창출  : 새로운 고객 가치 창출 -&gt; 사업 기회 확대</p>
<p>EX. 아마존 CRM  : 온라인 서점 -&gt; 고객 맞춤형 서비스 -&gt; 종합 택배회사</p>
<h3 id="1-2-데이터-분석의-역할">1-2. 데이터 분석의 역할</h3>
<p>-불확실성 해소 - 통찰력 제공</p>
<p>-위험 RISK 감지 회피 - 대응력 제공</p>
<p>-스마트 경제 도입 - 경쟁력 상승</p>
<p>-융합 기술 도입 - 창초력 향상</p>
<h3 id="1-3-데이터-분석-과정">1-3. 데이터 분석 과정</h3>
<p>문제정의  = 필요한 지식 knowledge가 무엇인가?</p>
<p>데이터 수집 = 데이터 검색, 수동/자동으로 수집, raw data 확보</p>
<p>데이터 가공(전처리) = 데이터 필터링, 데이터 변환, 정제된 데이터 확보</p>
<p>데이터 저장/관리 = 데이터베이스, 데이터 웨어하우스, 데이터 마트</p>
<p>데이터 분석 = 통계 분석, 최적화, 예측</p>
<p>데이터 가시화 = 정보 시각화 visualization</p>
<p>데이터 공유 - 서로 다른 시스템 간의 공유</p>
<p>지식 knowledge 활용</p>
<h3 id="1-4-데이터-플랫폼">1-4. 데이터 플랫폼</h3>
<p> : 데이터 기술을 잘 사용할 수 있도록 준비된 환경</p>
<p>빅데이터 수집 -&gt; 빅데이터 저장 -&gt; 빅데이터 처리 -&gt; 빅데이터 관리</p>
<p> : 대용량 컴퓨팅 시스템을 응용하는 경우가 많음</p>
<p>-데이터 수집 플랫폼  -- Crawling</p>
<p>-데이터 저장 플랫폼  -- HDFS</p>
<p>-데이터 처리 플랫폼  -- Spark, Storm(원래는 분산형 컴퓨팅 프레임워크)</p>
<p>-데이터 관리 플랫품  -- 통계분석, 데이터 마이닝, 최적화</p>
<h2 id="2-데이터-수집">2. 데이터 수집</h2>
<p>※과학 science &amp; 공학 engineering 차이</p>
<p>과학</p>
<p> : 최선책, 최고의 해답 추구</p>
<p>공학접 접근 </p>
<p>  : 풀리지 않는 문제도 있다 - 현실적 해답 제시</p>
<p>  : 비용고려 - 적절하고, 최소 비용으로 해결</p>
<p>API  (Application Programming Interface)</p>
<p> : 응용 프로그래밍 인터페이스</p>
<p> : 프로그래밍 언어에 제공되는 인터페이스 방식</p>
<p> : 클라이언트가 자료 호출 -&gt; 서버가 자료를 알려주는 방식</p>
<p>Open API 방식</p>
<p>  : 여러 사람들이 공동 사용할 필요가 있는 데이터에 대한 사용을 개방하고</p>
<p>  : 사용자들이 해당 데이터에 대한 전문 지식이 없어도</p>
<p>  : 쉽게 가공하여 사용할 수 있도록</p>
<p>  : 데이터를 추상화하여 표준화한 인터페이스</p>
<p>실제로는 웹페이지 요청/응답 형태로 많이 제공 </p>
<ul>
<li>XML, JSON 형식</li>
</ul>
<h2 id="3-데이터-가공">3. 데이터 가공</h2>
<p>데이터 전처리, 분산저장, 보안 및 품질관리 등을 수행하는 단계</p>
<p>데이터 전처리 -&gt; 분산저장 -&gt; 보안 및 품질관리</p>
<h3 id="3-1-데이터-전처리">3-1. 데이터 전처리</h3>
<p>-정확하고 신뢰할 수 있는 데이터 결과를 추출하기 위하여</p>
<p>-데이터 분석 및 처리에 적합한 형식으로</p>
<p>-데이터를 조작하는 과정</p>
<ul>
<li>Garbage in, Garbage out  : 쓰레기 데이터를 넣으면 쓰레기 데이터가 나온다</li>
</ul>
<h4 id="데이터-품질-저해-해소">[데이터 품질 저해 해소]</h4>
<p>-노이즈  : 측정 과정에서 무작위로 발생한 측정값 에러</p>
<p>-아티팩트  : 특정 요인으로 발생하는 반복적 왜곡  Ex.카메라 렌즈의 얼룩</p>
<p>-이상치  : 다른 개체와 다른, 유별난 값의 출현</p>
<pre><code>*노이즈는 불필요하지만, 이상치는 중요한 데이터가 될 수 있음!

Ex.전력 사용량의 이상 급증 -&gt; 기계의 고장, 누전?</code></pre><p>-결측치  : 자료 입력이 누락되거나, 고의로 빠진 경우</p>
<pre><code>Ex.센서의 일시적 고장, 설문 조사의 특정항목 거부</code></pre><p>-모순, 불일치</p>
<pre><code>Ex.같은 주소, 다른 우편번호가 등록된 사례  --&gt; 수정 필요</code></pre><p>-중복  : 중복된 자료</p>
<p>   --&gt; 1개로 합치거나, 수정해서 다른 자료로 만드는 추가 작업 필요</p>
<h4 id="데이터-전처리-기술">[데이터 전처리 기술]</h4>
<p>-데이터 여과 Filtering  : 오류 발견, 보정, 삭제 및 중복성 확인 등</p>
<p>-데이터 변환 Transformation  : 데이터 분석이 용이한 형태로 변환</p>
<p>   Ex. 정규화, 집합화, 요약, 계층 생성 등</p>
<p>   ETL 도구 제공중</p>
<p>-데이터 정체 Cleansing  : 결측치 체워 넣기, 이상치 식별 또는 제거, 잡음 섞인 데이터를 평활화하여 데이터의 불일치성 교청</p>
<p>-데이터 통합 Integratoin  : 데이터 분석이 용이하도록 유사 데이터 및 연계가 필요한 데이터(또는 DB)등을 통합하는 기술</p>
<p>-데이터 축소 Reduction  : 분석 컴퓨팅 시간을 단축할 수 있도록 데이터 분석에 활용되지 않는 항목 등 제거</p>
<h4 id="데이터-정체-기술">[데이터 정체 기술]</h4>
<h4 id="●-결측치-처리-방법">● 결측치 처리 방법</h4>
<p>  -해당 레코드 무시</p>
<p>  -자동으로 채우기</p>
<p>  -담당자(전문가)가 수작업 입력</p>
<h4 id="●-잡읍-처리-방법">● 잡읍 처리 방법</h4>
<p>  -구간화</p>
<p>  -회귀값 적용(Regression)</p>
<p>  -군집화 (Clustering)</p>
<h4 id="●-불필요한-데이터-축소----효율성-향상">● 불필요한 데이터 축소  -&gt; 효율성 향상</h4>
<p>  -차원   : 분석에 필요 없거나 중복 항목 제거</p>
<p>  -데이터 압축  : 데이터 인코딩이나 변환을 통해 데이터 축소</p>
<p>  -DWT (Discrete Wavelet transform)  : 선형 신호 처리</p>
<p>  -PCA  (Principal Components Analysis)  : 데이터를 가장 잘 표현하고 있는 직교상의 데이터 벡터들을 찾아서 압축</p>
<p>  -수량 축소 (Numerosity Reduction)  : 데이터를 더 작은 형태로 표현해서 데이터의 크기 줄임</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[01.컴퓨터와 데이터]]></title>
            <link>https://velog.io/@ppm_vely/01.%EC%BB%B4%ED%93%A8%ED%84%B0%EC%99%80-%EB%8D%B0%EC%9D%B4%ED%84%B0</link>
            <guid>https://velog.io/@ppm_vely/01.%EC%BB%B4%ED%93%A8%ED%84%B0%EC%99%80-%EB%8D%B0%EC%9D%B4%ED%84%B0</guid>
            <pubDate>Tue, 21 Jun 2022 08:20:39 GMT</pubDate>
            <description><![CDATA[<h2 id="1-컴퓨터-정의">1. 컴퓨터 정의</h2>
<p>Computing System = 하드웨어(물리적 요소) + 소프트웨어(컴퓨터 프로그램, 앱)</p>
<h2 id="2-데이터-사이언스">2. 데이터 사이언스</h2>
<p>analog data  --1993--&gt; Digital 신호 탄생  --2000--&gt; 초코속 인터넷의 보급 시작  --2002--&gt; beginning of the digital age</p>
<ul>
<li><p>추출의 목적은?</p>
</li>
<li><p>과학적 방법은?</p>
</li>
<li><p>대규모 컴퓨터방식?</p>
</li>
</ul>
<p>데이터로부터 정제된 지식와 통찰을 추출해 내기 위해 과학적 방법론, 처리과정, 알고리즘, 시스템을 사용하는 학제간 융합 분야</p>
<p>-데이터 마이닝  : 데이터로부터 정보 추출</p>
<p>-빅데이터</p>
<h2 id="3-컴퓨터-구조">3. 컴퓨터 구조</h2>
<p>&quot;프로그램 가능한 데이터 처리기&quot; &quot;programmable data processor&quot;</p>
<p>S/W을 이용한 데이터 처리기. 데이터 프로세서</p>
<h3 id="3-1-computer-system-구성요소-4가지">3-1. Computer system 구성요소 4가지</h3>
<p>-하드웨어</p>
<p>   : 컴퓨터 연산과 동작을 제어하는 물리적인 장치</p>
<p>   : CPU, RAM, 입력/출력 장치</p>
<p>   : Anything that can be touched</p>
<p>-소프트웨어</p>
<p>   : H/W에서 발생하는 명령의 집합</p>
<p>   : 프로그램(program) : 소프트웨어의 일부</p>
<p>   : Application Program -&gt; 앱(App)</p>
<p>-Data(Information)</p>
<p>-User</p>
<h3 id="3-2-information-processing-cycle">3-2. Information Processing Cycle</h3>
<p>Input -&gt; Processing -&gt; Output -&gt; Storage</p>
<h3 id="3-3-jargon--전문-용어-특수-용어">3-3. Jargon : 전문 용어, 특수 용어</h3>
<p>EX. program, virus, wifi, plug&amp;play, hard disk</p>
<h3 id="3-4-2진수-binary-numbers">3-4. 2진수 Binary Numbers</h3>
<p>2진수가 왜 컴퓨팅에 중요한가?</p>
<p>컴퓨터 메모리에 필요 -&gt; 가장 간단한 memory 구조</p>
<p>2개의 상태 off, on -&gt; 0 or 1을 저장가능 -&gt; 비트 bit</p>
<p>1 바이트 = 8 비트</p>
<p>2진수 한자리 = 비트</p>
<p>one character (문자 1개) = byte</p>
<p>CPU 속도 : 3 GHz CPU  -&gt; 3 * 10^9 cycles/sec</p>
<h3 id="3-5-프로그램-저장-방식">3-5. 프로그램 저장 방식</h3>
<p>von Neumann Architecture 폰 노이만 아키텍처</p>
<p>워드 word = 컴퓨터에서 한번에 다루는 데이터 사이즈</p>
<p>(메모리에서 CPU로 한번에 끌어올리는 양 - 컴퓨터 마다 다름 : 32bit, 64 bit)</p>
<p>32 bit 컴퓨터 : 1word = 32 bit  (4 Byte)</p>
<p>64 bit 컴퓨터 : 1word = 64 bit   (8 Byte)</p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/70ec37b2-36f1-4cd9-bbc8-3a4567747886/image.png" alt=""></p>
<p>하드 디스크 Hard Disk = Hard Disk Driver = Hard Driver = HD = HDD</p>
<p>disk + driver 일체형</p>
<p>Flash Memory ( 또는 USB 메모리)</p>
<p>대용량으로 만들면..SSD  (Solid State Drive)</p>
<p>   장점 : HD보다 속도가 빠름</p>
<p>   단점 : HD가 더 가격 저렴함</p>
<p>SATA 사타</p>
<p>  : Serial version of ATA</p>
<h2 id="4-데이터베이스">4. 데이터베이스</h2>
<p>데이터베이스 엔진 = 특별한 용도로 작성된 대형 소프트웨어 의미 (software) engine</p>
<p>데이터베이스 스키마</p>
<p>데이터베이스 쿼리</p>
<p>RDBMS 관계형 데이터베이스 R-DB</p>
<p>   :데이터와 그들의 관계가 테이블로 구성되는 데이터베이스 관리 시스템</p>
<p>table</p>
<p>record : 각 행(row)  :  1개의 완전한 자료</p>
<p>filed : 각 열 (Column)</p>
<h2 id="5-네트워크-netoworking">5. 네트워크 Netoworking</h2>
<p>웹 클라이언트 : 웹 페이치를 요청하는 컴퓨터</p>
<p>웹 서버 : 웹 페이지를 보여주는 컴퓨터</p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/f2553c75-8871-4a9f-818c-793da8fa942d/image.png" alt=""></p>
<p>File Server  : 동영상, 이미지 파일 등등</p>
<p>Web Server  : 웹 페이지</p>
<p>P2P model : 동영상 등등 공유 Ex.토렌트  -- 현대는 활발X</p>
<h3 id="5-1-cloud-computing-클라우드-컴퓨팅">5-1. Cloud Computing 클라우드 컴퓨팅</h3>
<p>  :인터넷에서 각종 자원을 사용하는 컴퓨팅 모델</p>
<p>  : 자신의 컴퓨터가 아니라, 인터넷에 연결된 다른 컴퓨터로 데이터를 처리</p>
<p>아마존 웹 서비스 Amazon Web Services : AWS</p>
<p>마이크로소프트 애저 Microsoft:Azure</p>
<p>구글 클라우드 GCP  Google: Google Cloud Platform</p>
<p>네이버 클라우드, KT 클라우드</p>
<p>&lt;클라우드 컴퓨팅&gt;</p>
<p>성공적 사례 - 알파고</p>
<h3 id="5-2-용어">5-2. 용어</h3>
<p>웹</p>
<p>웹 페이지</p>
<p>링크</p>
<p>웹 사이트</p>
<p>웹 브라우저  : 엡 페이지를 읽어와서 보여주는 소프트웨어 도구 Ex.Chrome, Internet Explorer</p>
<p>HTML</p>
<p>마크업 랭귀지 : 문서에서 정보에 주석을 달기 위해 태그를 사용하는 언어</p>
<p>tag</p>
<p>XML : 문서의 의미 기술</p>
<h3 id="5-3-3-티어-구조">5-3. 3-티어 구조</h3>
<p>전형적인 web server 구조</p>
<p>client --HTML 문서--&gt; web server --Web Programming--&gt; WAS Server --DB Connectoin--&gt; DB Server</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[백준 1260번.DFS와 BFS (파이썬)]]></title>
            <link>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-1260%EB%B2%88.DFS%EC%99%80-BFS-%ED%8C%8C%EC%9D%B4%EC%8D%AC</link>
            <guid>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-1260%EB%B2%88.DFS%EC%99%80-BFS-%ED%8C%8C%EC%9D%B4%EC%8D%AC</guid>
            <pubDate>Tue, 21 Jun 2022 08:16:22 GMT</pubDate>
            <description><![CDATA[<h2 id="문제를-간단히-하면">문제를 간단히 하면..</h2>
<p>1- 노드 수, 엣지 수, 탐색 시작노드 번호 입력받기</p>
<p>2- DFS, BFS 구현하고</p>
<p>3- DFS, BFS 별 탐색한 노드 순서 출력</p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/a6888b2e-420f-4a72-9b74-8777a9381150/image.png" alt="">
<img src="https://velog.velcdn.com/images/ppm_vely/post/778733fb-8544-43cc-8649-334e780c5e79/image.png" alt=""></p>
<h2 id="시도-1">시도 1.</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/99d653ee-ebc3-4076-903b-9c6d3704750d/image.png" alt=""></p>
<h3 id="주의할-점-1-sys의-read-----vs----readline-사용">주의할 점 1. sys의 read()     VS.    readline() 사용?</h3>
<blockquote>
<p>sys를 사용하면 좀더 빠르고 성능이 좋아진다고 한다.
sys.stdin.readline 추가만 해주기!!
혹시 풀다가 성능문제가 있다면 sys를 이용해보자!</p>
</blockquote>
<h2 id="시도-2">시도 2.</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/1e5f9c30-13d9-4c0e-8d2d-cc9cd2d37e0c/image.png" alt=""></p>
<h3 id="주의할-점2-입력-후-만들어진-graph의-내용-보기">주의할 점2. 입력 후 만들어진 graph의 내용 보기!</h3>
<blockquote>
<p>연결되 노드의 번호 VS. True/False로 연결 나타냄</p>
</blockquote>
<p>각 노드 별 연결된 노드의 번호를 저장한 예제만 계속 풀다가 이 부분을 놓쳤다..
<img src="https://velog.velcdn.com/images/ppm_vely/post/ffa46f7c-b4e2-45fd-9cc8-eb2612c11db4/image.png" alt=""></p>
<p>--&gt; 각 노드와 연결된 <strong>&quot;노드 번호&quot;</strong>를 각 리스트에 저장</p>
<p>※0이 비워진 이유는 노드번호가 1부터 시작해서 편의상 0은 빈리스트로 둔다!</p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/6c19de1f-7c11-49f0-9e2b-867a49e295cb/image.png" alt="">
--&gt; 이게 이번 문제에 나온 graph 형태!!</p>
<p>위와 graph를 나타낸 형태가 달라 풀이가 좀더 달라질 수 밖에..!!</p>
<p>하지만 똑같은 그래프를 나타낸다!</p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/1c0360cb-0393-45d2-9dcb-213563db66e6/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[백준 2267번. 단지번호 붙이기 (파이썬 DFS이용)]]></title>
            <link>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-2267%EB%B2%88.-%EB%8B%A8%EC%A7%80%EB%B2%88%ED%98%B8-%EB%B6%99%EC%9D%B4%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC-DFS%EC%9D%B4%EC%9A%A9</link>
            <guid>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-2267%EB%B2%88.-%EB%8B%A8%EC%A7%80%EB%B2%88%ED%98%B8-%EB%B6%99%EC%9D%B4%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC-DFS%EC%9D%B4%EC%9A%A9</guid>
            <pubDate>Tue, 21 Jun 2022 08:14:15 GMT</pubDate>
            <description><![CDATA[<h2 id="문제를-요약하면">문제를 요약하면..</h2>
<p>   요소개수 구하는 문제와 동일하다!</p>
<h4 id="1-1로-묶여저있는-요소의-갯수-및-묶음의-갯수-구하기">1. 1로 묶여저있는 요소의 갯수 및 묶음의 갯수 구하기</h4>
<pre><code>  -묶음의 갯수 = 단지 갯수  -&gt; house 리스트에 저장 후 리스트 길이로 치환

 -요소의 갯수 = 단지별 집의 갯수  = count  -&gt; DFS 탐색이 가능할 때마다 count++</code></pre><h4 id="2-방문했다면-흔적을-남겨야-한다----2-1-2-2-사용한-2가지-방법-해봄">2. 방문했다면 흔적을 남겨야 한다. -- 2-1, 2-2 사용한 2가지 방법 해봄!!</h4>
<p>2-1) 방문 여부 True/False를 저장하는 visited 리스트에서 True로 저장</p>
<p>2-2) 별도 visited 리스트 없이 그래프에서 바로 1-&gt;0으로 바꾸기</p>
<p>2-3) 2-1 &amp; 2-2 둘다 쓰기  --다른 풀이보면 가끔 보이는데..굳이 할 필요가 없었다..하나만 사용해도 되더라구요..</p>
<h4 id="3-요소갯수-count를-하고-0으로-리셋하는-부분-찾기">3. 요소갯수 count를 ++하고 0으로 리셋하는 부분 찾기</h4>
<p>시작한 집에서 연결된 집의 개수를 DFS하면 count++</p>
<p>DFS가 끝났다면 count=0으로 리셋하고 house 리스트에 저장</p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/445f3a3b-c0d5-4aa4-bafe-099e89c83ad7/image.png" alt="">
<img src="https://velog.velcdn.com/images/ppm_vely/post/bc54737b-b8d3-4055-bef6-bcebc9ba45e5/image.png" alt=""></p>
<h2 id="나의-풀이">나의 풀이</h2>
<p>   ※코드에서 나만의 테스트용은 주석처리!!※</p>
<p>  ※결과물 출력은 테스트용 출력 및 백준 채점용 모두 출력한 결과물임!!※</p>
<h2 id="시도1-2-1-방법사용">시도1. 2-1 방법사용</h2>
<p>  : 방문한 흔적을 남기기 위해 방문여부 True False를 저장하는 visitied 리스트만 사용
 <img src="https://velog.velcdn.com/images/ppm_vely/post/2493cfe1-4a4e-4b17-bf34-1633800cc05c/image.png" alt=""></p>
<h2 id="시도2-2-2-방법사용">시도2. 2-2 방법사용</h2>
<p>  : 2-1에서 사용한 별도의 visited 리스트 생성 없이 방문 했다면 바로 graph에서 1-&gt;0으로 바꿔줌
<img src="https://velog.velcdn.com/images/ppm_vely/post/418fc5b8-99fa-4c0b-8332-ccdd19b5431a/image.png" alt="">
<img src="https://velog.velcdn.com/images/ppm_vely/post/3dd8c1de-247f-4e8b-a5f2-9953bb10f2a2/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/38a8aa2b-e5d9-4fc7-91bc-1d05730fa54b/image.png" alt="">
                &lt; 2-1, 2-2 방법 출력 결과 (결과 동일) &gt;</p>
<h2 id="결론">결론</h2>
<p><u><strong>2-1방법이나 2-2방법이나 동일하다!</strong></u></p>
<p>둘 중 편한것을 쓰면 되겠다</p>
<p>둘 중 하나를 이용하거나 둘 다 이용하는 답안 코드가 보이길래 모두 해보며 정리해보았다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[다이내믹 프로그래밍 (Dynamic Programming)이란?]]></title>
            <link>https://velog.io/@ppm_vely/%EB%8B%A4%EC%9D%B4%EB%82%B4%EB%AF%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-Dynamic-Programming%EC%9D%B4%EB%9E%80</link>
            <guid>https://velog.io/@ppm_vely/%EB%8B%A4%EC%9D%B4%EB%82%B4%EB%AF%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-Dynamic-Programming%EC%9D%B4%EB%9E%80</guid>
            <pubDate>Tue, 21 Jun 2022 08:11:41 GMT</pubDate>
            <description><![CDATA[<h1 id="1-언제-사용되는가">1. 언제 사용되는가?</h1>
<h2 id="1-1-최적-부분-구조">1-1. 최적 부분 구조</h2>
<p> 큰 문제를 작은 문제로 나누어 작은 문제의 답을 모아 큰 문제를 해결</p>
<h2 id="1-2-중복되는-부분-문제">1-2. 중복되는 부분 문제</h2>
<p> 동일한 작은 문제를 반복적으로 해결해야 할 때</p>
<h2 id="1-3-대표예시">1-3. 대표예시</h2>
<h3 id="피보나치-수열">피보나치 수열</h3>
<p>1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
<img src="https://velog.velcdn.com/images/ppm_vely/post/f8984c8c-369d-42c4-8b5a-671eddb5a815/image.png" alt="">
<img src="https://velog.velcdn.com/images/ppm_vely/post/4c96031b-540b-42dc-aacf-54f974a8bdbd/image.png" alt=""></p>
<p>점화식 사용</p>
<p>  :인접한 항들 사이의 관계식 사용</p>
<p>f(100)을 하면..엄청난 계산량 때문에 해결할 수 없음..</p>
<p>즉, <span style="color:skyblue"><strong>중복 문제 발생!!</strong></span></p>
<p>단순 재귀함수로 해결하면 시간 복잡도 O(2^N) 를 가지게 됨</p>
<h1 id="2-그렇다면-다이나믹-프로그래밍을-사용해보면">2. 그렇다면 다이나믹 프로그래밍을 사용해보면??</h1>
<h2 id="2-1-top-down하향식---메모이제이션memoization">2-1. TOP Down(하향식) - 메모이제이션(Memoization)</h2>
<p>한 번 계산한 결과를 메모리 공간에 메모</p>
<p>   -가은 문제를 다시 호출하면 메모했던 결과 그대로 가져옴</p>
<p>  -값을 기록해 놓는다는 점에서 캐싱(Caching)이라고 한다.</p>
<p>  단, 이 개념은 다이나믹 프로그래밍에 국한된 개념이 아니다!</p>
<p>   왜냐 결과만 담아놓고 다이나믹 프로그래밍을 위해 활용되지 않을 수 도 있으니까..</p>
<p>   <img src="https://velog.velcdn.com/images/ppm_vely/post/33e2f3e5-bd07-4b52-97dd-ea02f63a908f/image.png" alt="">
                     &lt; Top Down -재귀함수 이용 &gt;
 <img src="https://velog.velcdn.com/images/ppm_vely/post/bba6d28a-ae2e-4132-ac57-7a2a5bc0f077/image.png" alt=""></p>
<p>  복잡도 : O(N)</p>
<p>선형 시간 알고리즘으로 피보나치 해결 가능!</p>
<h2 id="2-2-bottom-up-상향식">2-2. Bottom up (상향식)</h2>
<p> --&gt; 결과 저장용 리스트는 &quot;DP 테이블&quot;라고 부름   (파이썬 외 다른 언어는 배열)
 <img src="https://velog.velcdn.com/images/ppm_vely/post/c500f719-9beb-45be-9da6-399e8bf86407/image.png" alt="">
 <img src="https://velog.velcdn.com/images/ppm_vely/post/da089d2b-dcbb-416f-93f3-fd60c04abe49/image.png" alt=""></p>
<h1 id="3-다이나믹-프로그래밍-vs-분할-정복">3. 다이나믹 프로그래밍 VS. 분할 정복</h1>
<p><span style="color:skyblue"><strong>●공통점  : 작게 나눌 수 있다</strong></span></p>
<p>-최적 부분 구조를 가질 때 사용 가능</p>
<p>-큰 문제를 작은 문제로 나눌 수 있음</p>
<p>-작은 문제의 답을 모아 큰 문제 해결 가능</p>
<p><span style="color:skyblue"><strong>●차이점 : 부분 문제의 중복</strong></span></p>
<p>-다이나믹에서는 각 부분 문제들이 서로 영향을 미치며 부분 문제가 중복</p>
<p>-분할 정복은 동일한 부분 문제가 반복 계산되지 않음</p>
<h2 id="3-1-다이나믹-프로그래밍에-쉽게-접근하려면">3-1. 다이나믹 프로그래밍에 쉽게 접근하려면?</h2>
<p>step1. 그리디, 구현, 완전 탐색 등의 아이디어로 문제 해결 가능한가?</p>
<p>step2. 다른 알고리즘이 떠오르지 않으면 다이나믹 프로그래밍</p>
<p>step3. 재귀함수로 비효율적인 완전 탐색 프로그램 작성</p>
<p>step4. Top Down- 작은 문제에서 구한 답이 큰 문제에서 그대로 사용될 수 있으면, 코드를 개선하는 방법으로 사용!</p>
<p><u>일반 코테는 기본 유형의 다이나믹 프로그래밍 출제!</u></p>
<blockquote>
<p>참고한 인강
인강 : 유튜브 동빈나 이것이 코딩테스트다 6.다이내믹 프로그래밍
<a href="https://www.youtube.com/watch?v=5Lu34WIx2Us&amp;list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&amp;index=6">https://www.youtube.com/watch?v=5Lu34WIx2Us&amp;list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&amp;index=6</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[프로그래머스 힙 문제01. 더맵게 (파이썬)]]></title>
            <link>https://velog.io/@ppm_vely/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%9E%99-%EB%AC%B8%EC%A0%9C01.-%EB%8D%94%EB%A7%B5%EA%B2%8C-%ED%8C%8C%EC%9D%B4%EC%8D%AC</link>
            <guid>https://velog.io/@ppm_vely/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%9E%99-%EB%AC%B8%EC%A0%9C01.-%EB%8D%94%EB%A7%B5%EA%B2%8C-%ED%8C%8C%EC%9D%B4%EC%8D%AC</guid>
            <pubDate>Tue, 21 Jun 2022 08:07:14 GMT</pubDate>
            <description><![CDATA[<h2 id="1-문제">1. 문제</h2>
<p>-scoville 리스트에서 최소값이 K (스코빌 지수) 이상이어야한다.</p>
<pre><code>  =&gt;  최소값이 K 이상이다. = 리스트 요소 모두 K 이상이다.</code></pre><p>-scovile 리스트 모든 요소가 K 이상이 될 때 까지, </p>
<pre><code> 최솟값 + 두번째 최소값*2 를 반복한 횟수를 카운트한다.</code></pre><p><img src="https://velog.velcdn.com/images/ppm_vely/post/0ac41775-4a01-4574-94f6-fc8bfbdfd806/image.png" alt="">
<img src="https://velog.velcdn.com/images/ppm_vely/post/b6a46346-30b2-4ab8-b54e-024775208f36/image.png" alt=""></p>
<h2 id="2-해결방법">2. 해결방법</h2>
<ul>
<li>파이썬 heapq 사용</li>
</ul>
<p>heaqp  사용한 이유는?</p>
<p> -파이썬은 최소힙을 제공한다.</p>
<p> -min(scoville) &lt;= K 대소비교,</p>
<p>   scoville의 최소값 2개 pop</p>
<p>이 과정을 반복하는데 있어 최소값을 계속 사용해야 하므로 heap 자료구조를 써보도록한다</p>
<h2 id="시도1-실패">시도1. (실패)</h2>
<p>그런데.. </p>
<p>코드는 맞는데 효율성이 떨어져 틀렸다고 나온다..
<img src="https://velog.velcdn.com/images/ppm_vely/post/1deef2da-3921-49c0-8d10-eea9c64d891f/image.png" alt=""></p>
<h2 id="시도2-정답">시도2. (정답)</h2>
<p>if 문의 위치를 바꾸었더니</p>
<p>효율성 테스트 통과했다..</p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/716cbb31-9a5b-40d6-a561-392a02172394/image.png" alt=""></p>
<h3 id="span-stylecolorskyblue★-if문-위치만-바꿨는데-왜-효율성이-올라갔을까span"><span style="color:skyblue">★ if문 위치만 바꿨는데 왜 효율성이 올라갔을까?</span></h3>
<p>처음에는 코드를 다시 짜봐야하나 고민하다...</p>
<p>다른 예시코드를 보고..근데 나랑 코드가 거의 비슷한데..</p>
<p>그럼 뭐가 문제지 했다..</p>
<h4 id="1-if-a-k-break">1) if a&gt;= K break;</h4>
<p>시도1 코드에서 최소값 scoville[0] &gt;= K인지 확인하고</p>
<p>변수 a에 scoville 첫번째 원소를 pop 했다.</p>
<p>굳이 첫번째 원소 즉, scoville의 최소값을 2번 호출하게 되는 일이었다.</p>
<p>그래서 변수 a에 할당한뒤 k과 비교하는 if문을 </p>
<p>하지만 이 조건문은 시도1, 시도2 효율성에 상관이 없다!!</p>
<h4 id="2-scoville가-비어있는지-확인">2) scoville가 비어있는지 확인!</h4>
<p>scoville는 무조건 원소 1개를 갖을 수 밖에 없다.</p>
<p>문제에 보면 1개 이상이며, 계산(a+b*2)를 하더라도 원소 1개를 무조건 갖기 때문이다.</p>
<p>그래서!</p>
<p>먼저 가장 최소값을 pop한 뒤 길이가 0이 되는 테스트케이스일 경우,</p>
<p>while true문을 끝까지 돌고 와야 하므로 비효율적일 수도 있겠다 생각했다..</p>
<p>그래서 empty check는 첫번째 요소를 pop한뒤 check 하도록 바꿔주었다.</p>
<p><u>나의 생각이므로 좀더 정확한 이유는 계속 찾아봐야겠다..</u></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[백준 1927. 최소 힙 (파이썬 heapq)]]></title>
            <link>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-1927.-%EC%B5%9C%EC%86%8C-%ED%9E%99-%ED%8C%8C%EC%9D%B4%EC%8D%AC-heapq</link>
            <guid>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-1927.-%EC%B5%9C%EC%86%8C-%ED%9E%99-%ED%8C%8C%EC%9D%B4%EC%8D%AC-heapq</guid>
            <pubDate>Tue, 21 Jun 2022 08:04:38 GMT</pubDate>
            <description><![CDATA[<h2 id="문제">문제</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/6e926d0d-3f4a-4fc1-9350-7f4a8079f55c/image.png" alt=""></p>
<h2 id="시도1-실패">시도1. (실패)</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/fa25bc9e-9746-42eb-9b36-b938dff226f4/image.png" alt=""></p>
<p>쉽다 생각했는데..이렇게 했더니 시간초과 걸렸다..</p>
<p>그렇다면..</p>
<h2 id="시도-2-정답">시도 2 (정답)</h2>
<p>sys.stdin.readline()을 이용해보자!
<img src="https://velog.velcdn.com/images/ppm_vely/post/19476ccc-db7b-4bfe-be8f-55526300bc5b/image.png" alt=""></p>
<p>시간초과 해결!!</p>
<blockquote>
<p>기본 제공하는 input() 과 sys.stdin.readline()의 성능차이를 느낄 수 있는 문제였다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[프로그래머스 힙 문제. 이중우선순위큐 (파이썬)]]></title>
            <link>https://velog.io/@ppm_vely/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%9E%99-%EB%AC%B8%EC%A0%9C.-%EC%9D%B4%EC%A4%91%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84%ED%81%90-%ED%8C%8C%EC%9D%B4%EC%8D%AC</link>
            <guid>https://velog.io/@ppm_vely/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%9E%99-%EB%AC%B8%EC%A0%9C.-%EC%9D%B4%EC%A4%91%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84%ED%81%90-%ED%8C%8C%EC%9D%B4%EC%8D%AC</guid>
            <pubDate>Tue, 21 Jun 2022 08:03:31 GMT</pubDate>
            <description><![CDATA[<p>나는 heapq 안쓰고 deque로 사용했다.</p>
<p>heapq를 써서 정렬해야 하는 필요가 없고</p>
<p>명령어 순서대로 &quot;FIFO&quot; 로직을 갖기 때문에 deque를 사용했다.</p>
<h2 id="문제">문제</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/032dbeec-9555-4361-b0b1-ba067a4e0395/image.png" alt="">
<img src="https://velog.velcdn.com/images/ppm_vely/post/886d1ad9-4122-4593-9f3f-2175199e01d6/image.png" alt=""></p>
<h2 id="시도1-실패">시도1. (실패)</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/7b9a4b95-2a95-40a1-8a42-b966b15d963d/image.png" alt=""></p>
<h3 id="문제점-1">문제점 1.</h3>
<p>처음에 걸린 에러는 __ValueError: max() arg is an empty sequence __
<img src="https://velog.velcdn.com/images/ppm_vely/post/9fcaef4b-c3c4-4976-8748-0351c8d44399/image.png" alt=""></p>
<p>이게 무엇인가 찾아봤더니</p>
<p><span style="color:skyblue"><strong>빈리스트</strong>의 경우 max() 또는 min()을 사용하게 되면 요소가 없어 값이 없기 때문에 ValueError가 생기는 것이다.</span></p>
<p>즉, 파이썬에서 돌려보면..
<img src="https://velog.velcdn.com/images/ppm_vely/post/84720921-4400-4061-aa7f-199121ec9e26/image.png" alt="">
<img src="https://velog.velcdn.com/images/ppm_vely/post/efc985f0-c3e4-4a10-ad72-f08cef41e08b/image.png" alt="">
빈리스트 였기 때문에 코드 에러가 있었던 것이다.</p>
<p>그렇다면 내가 놓친 테스트케이스는 빈 리스트 상태에서 요소의 max or min을 찾아 삭제하는 경우라는 것이다.</p>
<p>해결하기 위해 <strong>remove하기 전 빈 리스트는 거르기 위해</strong></p>
<p><strong>위에 if not answer: return [0,0] 을 추가</strong>했다.  <u>(※끝이 아니므로 마지막 부분 이어서 꼭 꼭 읽기!!)</u></p>
<p>문제 해결~~</p>
<h3 id="고민점-1-근데-이건-문제해결과-상관이-없으므로-그냥-참고">고민점 1. (근데 이건 문제해결과 상관이 없으므로 그냥 참고..!!※)</h3>
<p>위에 코드결과와 같이 테스트 케이스 2개에서 에러걸렸다.</p>
<p>왜일까..문제를 다시 읽어보니 <strong>최댓값/최소값이 둘 이상의 경우, 하나만 삭제합니다.</strong> 가 있다.</p>
<p>아하..그렇담 내가 생각하지 못한 케이스는 [1,2,3,3] 인데</p>
<p><strong>2개 이상인 최댓값 3을 remove하면 어떻게 되나?</strong>
<img src="https://velog.velcdn.com/images/ppm_vely/post/5e33c706-0cb2-49b9-9afe-a93a9d33042a/image.png" alt="">
결론은..2개 이상이라도 하나만 삭제된다.</p>
<p>이 고민점은 해결할 필요가 없다.</p>
<p>문제 풀면서 헷갈렸기에 그냥 참고사항으로 넣었다.</p>
<blockquote>
<p>그렇다면 다시 문제점으로 돌아와서!
문제를 보면 <u><strong>빈 큐에 데이터를 삭제하라는 연산이 주어질 경우, 해당 연산은 무시한다.</strong></u> 라느 말이 있다.
문제점1에서 해결할 때 삭제 명령어 일겨우 빈 리스트는 [0,0]으로 return 해주었는데
그게 아니라 &quot;무시&quot;해야 하므로 &quot;continue&quot;로 해줘야 한다.!!</p>
</blockquote>
<h4 id="문제를-좀더-꼼꼼히-읽어보자">문제를 좀더 꼼꼼히 읽어보자...!!</h4>
<h2 id="시도2-정답">시도2. (정답)</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/7e399401-2a87-483f-8a66-e62f3ef284e8/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[프로그래머스 해시. 완주하지 못한 선수 (파이썬)]]></title>
            <link>https://velog.io/@ppm_vely/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%95%B4%EC%8B%9C.-%EC%99%84%EC%A3%BC%ED%95%98%EC%A7%80-%EB%AA%BB%ED%95%9C-%EC%84%A0%EC%88%98-%ED%8C%8C%EC%9D%B4%EC%8D%AC</link>
            <guid>https://velog.io/@ppm_vely/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%95%B4%EC%8B%9C.-%EC%99%84%EC%A3%BC%ED%95%98%EC%A7%80-%EB%AA%BB%ED%95%9C-%EC%84%A0%EC%88%98-%ED%8C%8C%EC%9D%B4%EC%8D%AC</guid>
            <pubDate>Tue, 21 Jun 2022 07:59:32 GMT</pubDate>
            <description><![CDATA[<h2 id="문제">문제</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/5ec8e079-705c-4198-aea1-49e22e46890e/image.png" alt=""></p>
<h2 id="시도1">시도1.</h2>
<p>답은 맞지만 효율성 0...</p>
<p>그 이유는 participat의 마지막 요소가 return 값일 때 인것 같다.</p>
<p>for문을 다 돌아야 하는데 리스트 길이가 최대일 경우 연산 속도가 느려질 것이다.</p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/a2385f80-592a-4735-ad02-cbd5635aae9a/image.png" alt=""></p>
<p>그렇다면..!</p>
<p>해쉬를 공부해서 다시 풀어보자!</p>
<h2 id="시도2-정답">시도2 (정답)</h2>
<p>hash 사용</p>
<p>기존 답변들을 보며 참고했다.</p>
<p>participant, completion 모두 hash를 진행한 후</p>
<p>(participant의 key값(index 값)의 합) - (compeltion key값의 합)</p>
<p>  이 둘의 차이값은 완주하지 못한 사람의 key값이다. 이 값을 이용해 particpant에서 검색하면 된다!</p>
<p>  <img src="https://velog.velcdn.com/images/ppm_vely/post/208c9d0c-677f-4939-b0fd-9dc73686919b/image.png" alt=""></p>
<blockquote>
<p>hash를 사용했더니 역시 효율성이 올라가고 테스트 결과도 빨리 나온다.</p>
</blockquote>
<h2 id="시도3-정답">시도3 (정답)</h2>
<p><strong>collections</strong>을 사용해다.</p>
<p>가장 좋아요도 많고 ,코드가 간결하고, collections는 중요하니까!  나도 시도해야지.
<img src="https://velog.velcdn.com/images/ppm_vely/post/796c26cb-ab4c-4cf4-8511-1507ad570469/image.png" alt=""></p>
<blockquote>
<p>collections.Counter을 이용했다.
이렇게 깔끔하고, 짧고 효율성도 높을수가..</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[백준 1920. 수 찾기 (파이썬 이분탐색)]]></title>
            <link>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-1920.-%EC%88%98-%EC%B0%BE%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9D%B4%EB%B6%84%ED%83%90%EC%83%89</link>
            <guid>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-1920.-%EC%88%98-%EC%B0%BE%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9D%B4%EB%B6%84%ED%83%90%EC%83%89</guid>
            <pubDate>Tue, 21 Jun 2022 07:57:58 GMT</pubDate>
            <description><![CDATA[<h2 id="문제-요약하면">문제 요약하면..</h2>
<p>이분탐색을 이용해 특정 수가 배열에 있는지 찾아내자!
<img src="https://velog.velcdn.com/images/ppm_vely/post/4359d9dd-92dc-4758-8cc5-c1b6540c72f2/image.png" alt=""></p>
<h2 id="시도-1정답">시도 1.(정답)</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/2f78fa5c-9145-466d-b103-2377b8c0ab04/image.png" alt=""></p>
<h2 id="span-stylecolorskyblue이분탐색-알고리즘-알고가기span"><span style="color:skyblue">※이분탐색 알고리즘 알고가기※</span></h2>
<p><span style="color:skyblue"><strong>정렬되어 있다는 가정하에 사용 가능!</strong></span></p>
<p>반씩 나누며 특정 수를 찾아가는 알고리즘으로</p>
<p>&quot;정중앙 값&quot;과 &quot;찾고자 하는 값&quot;의 계속되는 대소비교를 통해 위치를 찾아간다.</p>
<p>숫자 갯수가 짝수 / 홀수 일 때 중앙값의 위치는 다음과 같다.
<img src="https://velog.velcdn.com/images/ppm_vely/post/de801acb-7d45-4266-8ac3-999491aa4a2e/image.png" alt=""></p>
<p><strong>찾고자 하는 값 &gt; 정중앙 값</strong></p>
<p>  =&gt; 탐색 범위는 정중앙보다 위쪽 (오른쪽)에 위치하므로</p>
<p>  =&gt; 탐색위치의 <strong>start 값 -&gt; mid +1</strong> 로 바꿔준다</p>
<p><strong>찾고자 하는 값 &lt; 정중앙 값</strong></p>
<p>  =&gt; 탐색 범위는 정중앙보다 아래 (왼쪽)에 위치하므로</p>
<p>  =&gt; 탐색위치의 <strong>end 값 -&gt; mid-1</strong> 로 바꿔준다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[백준 1991. 트리순회 (파이썬)]]></title>
            <link>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-1991.-%ED%8A%B8%EB%A6%AC%EC%88%9C%ED%9A%8C-%ED%8C%8C%EC%9D%B4%EC%8D%AC</link>
            <guid>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-1991.-%ED%8A%B8%EB%A6%AC%EC%88%9C%ED%9A%8C-%ED%8C%8C%EC%9D%B4%EC%8D%AC</guid>
            <pubDate>Tue, 21 Jun 2022 07:56:14 GMT</pubDate>
            <description><![CDATA[<p>이진트리 - 전위순회, 중위순회, 후위순회</p>
<h2 id="딕셔너리-를-이용해-root와의-관계를-간단하게-나타낸-구조-사용">딕셔너리{} 를 이용해 root와의 관계를 간단하게 나타낸 구조 사용</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/57848fb0-71e0-4dfd-b7c1-3742d1408652/image.png" alt=""></p>
<h2 id="시도1-정답">시도1. (정답)</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/de0fa96c-0e87-4224-8987-b8a3b82496c9/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[백준 1644. 소수의 합 (파이썬-투 포인트, 에라토스테네스의 체를 이용해 소수 구하기)]]></title>
            <link>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-1644.-%EC%86%8C%EC%88%98%EC%9D%98-%ED%95%A9-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%88%AC-%ED%8F%AC%EC%9D%B8%ED%8A%B8-%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98-%EC%B2%B4%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-%EC%86%8C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-1644.-%EC%86%8C%EC%88%98%EC%9D%98-%ED%95%A9-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%88%AC-%ED%8F%AC%EC%9D%B8%ED%8A%B8-%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98-%EC%B2%B4%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-%EC%86%8C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 21 Jun 2022 07:55:30 GMT</pubDate>
            <description><![CDATA[<h2 id="문제를-요약하면">문제를 요약하면..</h2>
<p>N 이하의 소수 중</p>
<p>연속되는 소수의 합=N 이 되는 경우의 수 합 구하기</p>
<p>1) N 이하의 소수 구하기  --&gt; <span style="color:skyblue"><strong>에라토스테네스의 체</strong></span> 이용</p>
<p>2) 합이 N이 되는 경우 찾기  --&gt; <span style="color:skyblue"><strong>투 포인트</strong></span> 사용</p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/cdb4744a-d91b-4551-b0b2-43211b715807/image.png" alt=""></p>
<p>​</p>
<p>두 종류의 코드로 작성해봤다.</p>
<p>첫 번째 코드는 매번 루프를 돌때마다 sum 함수를 이용해 start ~ end까지 구간의 합을 계속 구한다.</p>
<p>매번 sum 함수 연산이 부담스러울 까봐</p>
<p>두 번째 코드는 &quot;연속적인&quot; 소수의 합이라는 특징을 이용해</p>
<p>기존 합에 +end 값 또는 -start 값을 해주어 sum 함수의 부담을 줄여보았다.</p>
<p><u>즉, 부분합 코드를 sum 함수를 이용할 것인가- 첫번째 코드
  부분합 코드를 기존 합계 값에 +- 할 것인가-두번째 코드<br>  그 차이이다.</u></p>
<h2 id="시도1-정답">시도1. (정답)</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/b247402b-83eb-4de3-83ff-40880c9a778b/image.png" alt=""></p>
<h2 id="시도2-정답">시도2. (정답)</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/9769db34-5095-40e4-8f4f-18054bed9305/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/703bf597-9ec0-42e6-9b36-b99c7511714d/image.png" alt="">
근데..두 코드다 정답인ㄷ</p>
<p>아이러니하게도 첫번째 코드의 시간이 더 짧네..?...</p>
<p>이 부분은 더 알아봐야겠다.</p>
<blockquote>
<p>에라토스테네스의 체
<a href="https://this-programmer.tistory.com/409">https://this-programmer.tistory.com/409</a></p>
</blockquote>
<p>위 백준 코드에서 똑같이 사용했다.</p>
<p>에라토스테네스의 체 구현방법 2가지로 해보았다.  (위 링크 참고!!)</p>
<h2 id="첫번째-코드에-사용한-것">첫번째 코드에 사용한 것</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/bd355c9d-2e2f-491b-bbce-37c8a46bd057/image.png" alt=""></p>
<h2 id="두번째-코드에-사용한-것">두번째 코드에 사용한 것</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/f5fdf338-44e0-4789-93ad-a179d98075ed/image.png" alt=""></p>
<h3 id="◆checkpoiont">◆checkpoiont!</h3>
<p>1) 0,1은 소수가 아니다</p>
<p>2) 무의미한 반복 연산을 줄이기 위해 2<del>N이 아닌 2</del>N의 제곱근 까지 검사한다.</p>
<p>   제곱근 계산</p>
<pre><code>  1-  N**2

  2-  math.sqrt(N)    --단, import math 해줘야댐</code></pre><p>3) 소수는 prime여부 리스트에서 1(True)인 것이 인덱스 값과 동일하다</p>
<p>4) i값이 소수라면 i의 배수는 모두 소수가 아님 -- j 반복루프 사용</p>
<pre><code> 1- for j in range(i*i,N+1,i)

 2- for j in range(i+i, N+1,i)

 두 경우를 쓰는 경우가 있다. 두 표현을 해도 정답은 맞게 뜨던데..흠..   (혹시 모르니까 이부분도 다시 체크하기..)</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[백준 11728. 배열합치기 (파이썬)]]></title>
            <link>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-11728.-%EB%B0%B0%EC%97%B4%ED%95%A9%EC%B9%98%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC</link>
            <guid>https://velog.io/@ppm_vely/%EB%B0%B1%EC%A4%80-11728.-%EB%B0%B0%EC%97%B4%ED%95%A9%EC%B9%98%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC</guid>
            <pubDate>Tue, 21 Jun 2022 07:52:45 GMT</pubDate>
            <description><![CDATA[<h2 id="두-배열을-합쳐-정렬하기">두 배열을 합쳐 정렬하기</h2>
<p>삽입정렬 이런거 써야하나 했는데..</p>
<p>그냥 파이썬 리스트의 sort() 함수를 쓰면되는</p>
<p>아주 간단간단한 문제였다..</p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/f2d94f9c-d612-4520-bbba-4a2e553243dd/image.png" alt=""></p>
<h2 id="시도1-정답">시도1. (정답)</h2>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/11855ccb-3d1d-4630-a2e5-d4d921fc18cb/image.png" alt=""></p>
<h2 id="span-stylecolorskyblue★햇갈렸던-부분span"><span style="color:skyblue">★햇갈렸던 부분</span></h2>
<h3 id="ujoin-을-이용해-리스트-요소-연결하기u"><u>join 을 이용해 리스트 요소 연결하기!</u></h3>
<p>이 기능은 <span style="color:skyblue"><strong>리스트의 요소가 모두 문자열일 때만 사용 가능하다!!</strong></span></p>
<p>위 리스트는 모두 int형이므로</p>
<p><span style="color:skyblue">map을 이용해 형변환을 해준후 사용가능하다!!</span></p>
<p><span style="color:skyblue"><strong>map(변환할 자료형, 리스트명)</strong></span></p>
<p>추가적으로..!!</p>
<p>이 변환한걸 다시 리스트로 바꿔주려면</p>
<p>list(map(변환할 자료형, 리스트명)</p>
<p>그래도 기본적인 정렬 알고리즘 리마인드 하기!</p>
<blockquote>
<p> 정렬 알고리즘 참고사이트
<a href="https://coding-factory.tistory.com/615">https://coding-factory.tistory.com/615</a></p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/6e7aa7d8-0aba-42c9-b4d3-8c16e6276192/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/ppm_vely/post/9faec930-da43-4123-9c8a-0dd6d0654321/image.png" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>