Blog Content

  • python3로 Circular Queue 구현하기

    Category Algorithms on 2022. 9. 14. 22:14

    python3로 Circular Queue 구현하기 __ init __() 먼저 데이터 구조의 초깃값을 정한다. Queue의 크기를 k로 두고, 값을 담을 수 있게 길이가 k인 리스트 queue_list 를 만든다. Queue에는 두개의 포인터가 필요하다. 한개는 Front를 가리켜야 하고, 다른 하나는 Back을 가리켜야 한다. def __init__(self, k: int): self.size = 0 # 처음 리스트의 길이 self.max_size = k # 리스트의 길이 self.queue_list = [0] * k # Queue를 담을 리스트 self.front = self.rear = -1 # pointer enQueue() enQueue() 는 Circular Queue에 값을 삽입하는 함수이..

    Read more
  • 블로그 다시 시작

    Category Daily on 2022. 9. 14. 21:58

    Github, Medium, Notion 등에 가끔 블로그 글을 올리곤 했다. 글쓰는 방법이 편하지 않다보기 github blog나 medium(유입은 많은데 한국어 지원과 편집이 불편)은 손이 잘 가지 않았다. Notion은 점점 무거워지면서 개인 노트로만 활용하고 있다(뎁스가 깊어지면 사용하기 불편해지는 단점도...). Tistory가 그래도 여러 조건에 가장 부합하다고 생각하여 Medium과 함께 관리하며 다시 운영해보려고 한다. 월 1회라도 꾸준히 쓰는 것이 목표!

    Read more
  • [React] 새 페이지 렌더링 시 상단에서 시작하기

    Category Programming/JavaScript on 2018. 9. 30. 15:34

    리액트는 새 페이지를 렌더링한 후 스크롤을 맨 위로 올려주지 않는다. 그래서 별도로 컴포넌트를 만들어서 설정해주어야 한다. 먼저 ScrollToTop.js 컴포넌트를 만든다. import React, { Component } from 'react'; import { withRouter } from 'react-router'; class ScrollToTop extends Component { componentDidUpdate(prevProps) { if (this.props.location !== prevProps.location) { window.scrollTo(0, 0) } } render() { return this.props.children } } export default withRouter(S..

    Read more
  • [R] 결측값 데이터 다루기

    Category Statistics/R on 2018. 4. 25. 12:54

    R_Missing_Values.md 1. 결측값 단순 삭제 na.omit() 결측값이 있는 행을 삭제하는 함수 example > dat dat a b c d 1 1 5 a e 2 2 6 b 3 3 7 c f 4 4 NA g > dat dat a b c d 1 1 5 a e 3 3 7 c f 2행, 4행이 삭제된 것을 확인할 수 있다. 2. Multiple Imputation 다중대체법 m번의 대치를 통해 m개의 가상 자료를 만들어서 대체하는 방법이다. Multiple imputation is a statistical technique for analyzing incomplete data sets, that is, data sets for which some entries are missing. Appli..

    Read more
  • [python] 리스트 변수를 반복문 돌리기 예시

    Category Programming/Python on 2018. 4. 25. 12:51

    python_for_loop.md students = [] student1_info = { "first_name": "Martin", "las_name" : "Lawrence", "student_no": 9854 } student2_info = { "first_name": "Robert", "las_name" : "Gant", "student_no": 6790 } student3_info = { "first_name": "George", "las_name" : "Murphy", "student_no": 4728 } for i in range(1, 4): students.append(eval('student%d_info'% (i))) print(students) eval() : 실행 가능한 문자열을 입력 ..

    Read more
  • [Python] Python에서 CSV 파일을 읽어들이는 여러가지 방법

    Category Programming/Python on 2018. 4. 25. 12:47

    방법1. 기본 내장함수 사용 1. csv.reader import csv dat = open('file.csv') reader = csv.reader(dat) lines = list(reader) 2. 한 줄씩 읽어들여서 리스트로 만들기 import csv dat1_list = [] dat2_list = [] with open('file.csv', 'r') as raw: reader = csv.reader(raw) for lines in reader: print(lines) dat1_list.append(lines) start = len(dat2_list) dat2_list[start:start] = lines 3. from_csv dat.from_csv(&#3..

    Read more
  • Hadoop wordCount example

    Category Programming/Data Engineering on 2018. 4. 25. 12:33

    Hadoop Hadoop = HDFS + MapReduce Mode 3가지 HDFS 설치방법 Stand alone : 분산저장 안함, 코딩은 가능 가상분산모드 : 프로세스 3개. 맵리듀스 : 맵 상속 받음, 리듀스 상속받음. 어떻게 데이터 처리하는지 익히기. 순서 VirtualBox 설치 // 여기까지만 Windows 환경에서 진행합니다. Ubuntu 14.04.2 설치 // 이후에는 VirtualBox 내의 Ubuntu 에서 진행 JDK 설치 하둡 다운로드 하둡 Stand-alone 모드 구성 하둡 가상 분산 모드 구성 이클립스 다운로드, 설정 WordCount 예제 코딩 테스트 Ubuntu에 JDK 8 설치 $ sudo add-apt-repository ppa:webupd8team/java $ sud..

    Read more
  • HDFS의 기본 구조(HDFS Architecture)

    Category Programming/Data Engineering on 2018. 4. 25. 12:27

    HDFS Architecture HDFS Architecture 파일 저장, 읽기 : 어플리케이션에서 클라이언트로 파일 저장 또는 읽기 요청 Client : application 요청에 의해 client가 NameNode에 데이터 블록의 위치를 조회 NameNode에게 받은 Data block 위치를 통해 Client가 데이터를 직접 조회 Heart beat : DataNode가 상태를 주기적으로 보고(일종의 출석체크). Secondary NameNode NameNode가 망가지면 데이터가 어디에 저장되어 있는지 알 수 없기때문에 읽어들일 수 없으므로, NameNode를 백업해 두었다가 NameNode가 망가지면 다시 복구해 주는 역할 ​ HDFS와 MapReduce는 둘다 Master/Slave 구조 ..

    Read more
  • R Data Structure 데이터 구조

    Category Statistics/R on 2018. 4. 25. 12:25

    R의 Data structure 데이터 구조 종류 Scalar : element가 1개인 vector이다. # scalar 만들기 a mylist[[3]] [1] "010-1234-1234" "010-2345-5678" "010-9876-5673" > mylist$info[1] [1] "Tom" ​

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY20

    Category Programming/Django on 2018. 4. 25. 12:20

    Python Django - Day20.md Day 20. Django 프로젝트 파일 구조, MTV Django 프로젝트 만들기 $ python3 -m venv django-venv $ source django-venv/bin/activate $ pip install django $ django-admin startproject firstproject 아래 구조의 프로젝트가 생성된다. Django 프로젝트 디렉토리 형태 manage.py 다양한 명령어를 수행시켜주는 매개체 역할을 한다. __init__.py 파이썬 모듈로써 동작을 할 수 있다. settings.py 여러 설정들을 기억해 두는 파일. wigs.py 웹서버에 배포를 할때 설정파일들을 연결시켜주는 파이썬 파일. Django 앱 추가해보기 so..

    Read more
  • HTML, CSS, Javascript 주석

    Category Programming/JavaScript on 2018. 4. 23. 16:38

    HTML : CSS : /* */ Javascript : /* */, // 출처 : Learning Javascript, Shelley Powers

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY19

    Category Programming/Django on 2018. 4. 22. 20:27

    Python Django - Day19.md Day 19. 프레임 워크란? 프레임워크, 라이브러리 차이점 라이브러리 필요한 기능들이 구현되어 있는 라이브러리에서 기능을 불러와서 사용하는 것이다. 직접 작성했기 때문에 프로그램 흐름의 전체를 이해하기 쉽다. (예시) import requests response = requests.get("https://www.fastcampus.co.kr") response.text 프레임워크 이미 구성되어진 틀. 프레임워크 자체가 하나의 프로그램이다. 그러므로 실행 흐름이 결정되어 있고 필요한 기능들이 채워져 있다. 그러므로 라이브러리처럼 가져다 쓰는 것이 아니라 내가 필요한 기능으로 대체해서 사용하는 것이다. 실행 흐름이 이미 정해져 있기 때문에 어떤 방식과 흐름으로 ..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY18

    Category Programming/Django on 2018. 4. 19. 23:47

    Day 18. Python 가상환경 세팅 & Django 설치 Python Virtual Environment 가상환경의 필요성 버전의 분리 : 버전별로 또는 필요에 따라 패키지 등을 다르게 설치할 수 있다. 서버와의 통일 가상환경 만들기 $ python3 -m venv first-env # python3 -m venv 가상환경이름 $ ls# 설치된 것 확인 first env $ cd first-env# 폴더로 들어가기 $ source first-env/bin/activate# 적용 # pip list를 입력해보면 여태까지 설치된 패키지가 나오지 않고, 기본 패키지만 나오는 것을 볼 수 있다. $ pip list # Django 설치 $ pip install django // 가상환경 python 실행 ..

    Read more
  • Django 설치 에러

    Category Programming/Django on 2018. 4. 19. 23:17

    Django 설치 중에 아래와 같은 에러가 발생했다. pip에서 특정 기능을 지원 중단하고 업그레이드를했는데, 컴퓨터에서 그 pip업그레이드를 못따라가서 발생한 문제라고 한다. Collecting django Could not fetch URL https://pypi.python.org/simple/django/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:719) - skipping Could not find a version that satisfies the requirement django (from versions: )..

    Read more
  • macbook pro 케이스와 USB C Hub

    Category Daily on 2018. 4. 19. 20:21

    '버바팀 USB C Hub (https://search.shopping.naver.com/detail/detail.nhn?nv_mid=12640832590&cat_id=50002776&frm=NVSCPRO&query=usb+c+%ED%97%88%EB%B8%8C)' 를 샀는데 Macbook Pro에 씌운 플라스틱 케이스 때문에 밀착형 USB C 허브가 장착이 되지 않는다.어떻게 할까 고민하다가 톱질을 시작! (아래 사진은 톱질이 완성된 상태) 길이를 재서 실톱으로 잘라낸 후 사포질로 마무리. 60방 짜리 거친 사포로 해야 잘 갈려나간다. 정확하게 잘 맞아들어간다. 케이스와 허브 둘다 장착 완료. 줄로 길게 연결되는 허브도 사용해봤는데 안정감도 있고, 휘지도 않아서 밀착형이 훨씬 좋다.USB C Hub 고른..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY9

    Category Programming/Django on 2018. 4. 19. 18:17

    Day 9. 기초알고리즘(정렬) 알고리즘 어떤 문제를 풀기 위한 절차 혹은 방법 계산복잡도 알고리즘의 계산복잡도를 나타내는 방법 중 하나로 Big O 표기법이 있다. O(n) : n이 커질 수록 시간복잡도가 올라간다. ​ 정렬문제 선택정렬 삽입정렬 병합정렬 퀵정렬 선택정렬 : O(n) from random import choice raw_list = list(range(0, 100+1)) # raw_list = [0, 1, 2, 3, ..., 100] target = [] for _ in range(100): target.append(choice(raw_list)) def selection_sort(A): result = [] while len(A) != 0: min_num = 100 for i in A..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY8

    Category Programming/Django on 2018. 4. 18. 20:58

    http://www.fastcampus.co.kr/dev_online_python/ Day 8. lambda, map, filter, 데코레이터 lambda 함수만 만들고 함수가 들어갈 변수를 지정하지 않는 식. (깔끔하다는 장점은 있으나 가독성이 떨어질 수 있어서 python3 부터는 권장하지 않는 추세이다.) students = [] student1_info = { "first_name": "sol", "las_name" : "hyun", "student_no": 3498 } student2_info = { "first_name": "suzy", "las_name" : "bae", "student_no": 1345 } student3_info = { "first_name": "coca", "las_n..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY7

    Category Programming/Django on 2018. 4. 18. 20:57

    http://www.fastcampus.co.kr/dev_online_python/ Day 7. Class Class def print_hello(name): print("Hello ", name) # 함수는 다른 변수명에도 저장할 수 있음 print_hello_name = print_hello print_hello_name("Jane") # 함수는 list에도 넣을 수 있음 func_list = [print_hello, 1, 2] func_list[0]('Jane') # 함수는 dictionary에도 넣을 수 있음 func_dict = { 'func': print_hello } func_dict['func']('Jane') MY_MONEY = [0] def spend(m): if MY_MONEY[0] ..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY6

    Category Programming/Django on 2018. 4. 18. 20:41

    Day6 File 입/출력, 모듈 파일 입출력 f = open('파일경로', '모드') f.close() 상대경로 / 절대경로 모드 모드 설명 w write 모드 파일 전체에 새로 쓰기 r read 모드 파일을 읽는 모드 a append 모드 파일에 내용을 추가하는 모드 [ Tip ] Whitespace Character \n or \n \t or \t (ex) print("Hello \n I'm Jane.") 파일 예제 f = open("./hello.txt", "w") // .는 현재폴더 의미함 f.write("Hellow Wrold!") f.close() f = open("./hello.txt", "a") for i in range(2, 10+1): content = '\n' + str(i) + "..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY5

    Category Programming/Django on 2018. 4. 18. 20:36

    http://www.fastcampus.co.kr/dev_online_python/ Python Django : Day5 함수(packing, unpacking), 재귀함수(예외처리) 함수(Function) 추상화 별도 공간에 존재하여, 변수간 간섭이 방해를 일으키지 않는 방법 분리 코드는 다른 곳에 작성되어, 우리가 필요한 경우 호출만 하여 사용할 수 있는 방법 def func_name(arg): # code print("Hello, Func") return arg func_name() def add(a, b): c = a + b return c x = add(5, 5) print(x) parameter(매개변수), argument(인자) 란? parameter 함수 정의할때 어떤 값을 받겠다 라고 선..

    Read more