Program_Language

    [Python Algorithm Interview] 03. 리스트, 딕셔너리

    리스트, 딕셔너리 리스트 C++에서는 std::vector, JAVA에서는 ArrayList에 해당합니다. 파이썬에서 리스트의 마지막 요소의 .append(), pop()에 대해서는 O(1)의 시간 복잡도를 갖습니다. 반면, 첫 번째 요소를 추출하는 pop(0)은 O(1)의 시간 복잡도라고 생각할 수 있으나, O(n)의 시간 복잡도를 갖습니다. 이 경우, Deque와 같은 자료형을 사용하여 성능을 높일 수 있습니다. 리스트의 주요 연산 시간 복잡도 연산 시간 복잡도 비고 len(a) O(1) a[i] O(1) a[i:j] O(k) i부터 j까지 슬라이싱한 길이인 k만큼 element in a O(n) 순차 탐색이라 n만큼 시간 소요 a.count(element) O(n) a.index(element) O..

    [Python Algorithm Interview] 02. 빅오, 자료형

    빅오, 자료형 빅오 빅오는 입력값이 무한대로 향할때 함수의 상한을 설명하는 수학적 표기 방법 빅오 표기법의 종류 O(1) 실행 시간 일정한 최고의 알고리즘 O(log n) 로그는 매우 큰 입력값에도 크게 영향을 받지 않는 편 대표적으로 이진 검색 O(n) 입력값과 수행 시간이 비례 이 시간복잡도를 가지는 알고리즘을 선형 시간 알고리즘이라고 함 정렬되지 않은 리스트에서 최댓값 또는 최솟값을 찾는 경우에 해당 O(n log n) 병합 정렬을 비롯한 대부분의 효율 좋은 정렬 알고리즘에 해당 모든 수에 대해 한 번 이상은 비교해야 하는 비교 기반 정렬 알고리즘의 최선의 시간 복잡도 Timesor와 같이 모든 비교를 건너뛸 경우, O(n) 이 될 수 있음 O(n^2) 버블 정렬과 같은 비효율적인 정렬 알고리즘에 ..

    [Python Algorithm Interview] 01. 파이썬 언어

    파이썬 언어 파이썬은 독립적인 인터프리터식, 객체지향적, 동적 타이핑 대화형 언어입니다. 파이썬 특징 Indent 코드를 여러 줄로 나눠서 쓰는 경우 다음 행과 구분되도록 공백 4칸의 Indent를 추가합니다. Naming Convention 파이썬은 자바와 달리 각 단어를 밑줄(_)로 구분하여 표기하는 Snake Case를 사용합니다. List Comprehension 파이썬의 기존 리스트를 기반으로 새로운 리스르를 만들어내는 구문입니다. result = [n * n for i in range(1, 100) if n % 2 == 0] Generator 제너레이터(Generator)는 루프의 반복 동작을 제어할 수 있는 루틴의 형태입니다. 필요할 때 언제든 값을 생성할 수 있으며, yield와 next(..

    [JavaScript] 고차함수(Higher-Order Function)

    고차함수 목표 first-class citizen의 세 가지 특징 higher-order functiond의 이해 내장 고차함수에 대한 이해 forEach find filter map reduce sort some every 추상화(Abstraction)에 대한 이해 추상화 관점에서 고차 함수가 갖는 이점 First-class citizen JS에서는 특별한 대우를 받는 first-class citizen가 있습니다. 이 중 하나가 데이터를 다루듯이 사용할 수 있는 함수 입니다. 따라서 함수는 변수에 저장할 수 있습니다. console.log(a(2)); const a = function (num) { return num * 2; } /* * 오류가 발생 - 변수에 함수를 할당한 경우 Hoisting이 ..

    [JavaScript] DOM(Document Object Model) 주요 정리

    DOM(Document Object Model) DOM(Document Object Model)은 웹 페이지에 대한 인터페이스로, HTML 문서를 Object 기반으로 표현합니다. HTML Elements를 JavaScript Object처럼 Manipulation(조작)할 수 있는 모델로, HTML을 조작할 수 있습니다. 단, DOM은 JS를 이용해서 구조 접근을 하는 것이지 JS 자체는 아닙니다. HTML에 JS 적용 HTML에서 JS를 적용하기 위해서는 웹브라우저에서 작성된 HTML을 해석할 때 요소를 만나면 잠시 해석을 멈추고 요소를 먼저 실행하게 됩니다. 따라서, 요소의 추가하는 위치마다 다른 결과를 가져오기 때문에, 최하단에 위치시킵니다. 그러나 이는 js에 너무 의존적일 수 있습니다. 그래서..

    [JavaScript를 들어가기 전] Selector와 Layout

    Selector와 Layout Selector 해당 element 선택 /* element {...} */ div {...} 전체 element 선택 /* * {...} */ * {...} class와 id 선택 /* class는 .class, id는 #id로 선택 */ .people {...} #man {...} AND 선택 /* class와 id를 만족하는 선택은 붙여서(and) */ #man.people {...} OR 선택 /* ',' - 다중 선택(or) */ h1, div {...} 여러 element 선택 /* '띄어쓰기' - parent element 중 descendants(자손) element 선택 */ div p {...} /* div의 자손 p eleme..

    [JavaScript를 들어가기 전] HTML 및 CSS 기초 정리

    웹 개발 기초 웹페이지의 구조와 내용을 담당하는 HTML HTML은 HyperText Markup Language의 약자로 개발 언어가 아닌 웹 페이지의 뼈대가 되는 마크업 언어입니다. 뼈대가 되는 HTML에 CSS와 JavaScript를 적용하여 원하는 웹페이지를 꾸미고, 동작할 수 있습니다. 기본적으로 HTML은 tag(ex. )의 집합이며, 트리 구조를 갖습니다. 주요 HTML 요소 Division - 기본적으로 한줄의 공간을 차지함 Span - 기본적으로 내용만큼만 공간을 차지함 Link - 기본적으로 현재 창에서 해당 링크로 열기(Target 속성) Unordered List List Item Button 스타일을 담당하는 CSS CSS는 Cascading Style Sheets의 약자이며, 외..

    공공데이터를 활용한 제주도 AED 설치위치 지도 표시

    공공데이터를 활용한 제주도 AED 설치위치 지도 표시 필요 모듈 설치 및 가져오기 !pip install folium !pip install requests !pip install python-dotenv import requests # 요청 모듈 - 설치 필요 import json, xmltodict # 형식 모듈 import pandas as pd # 데이터프레임(엑셀과 유사) 모듈 import folium # 지도 모듈 - 설치 필요 import time #시간 모듈 import os, dotenv dotenv.load_dotenv() Requirement already satisfied: folium in k:\programdata\anaconda3\lib\site-packages (0.12.1...

    [Python 기초] 08_파일

    [Python 기초] 08_파일

    파일 파일 열기 옵션 선택으로 읽고, 쓰기 파일 작성 - 반드시 파일 닫고 컴파일 파일 읽기

    [Python 기초] 07_딕셔너리

    [Python 기초] 07_딕셔너리

    딕셔너리 표현식 {key1:velue1, k2:v2, …} 딕셔너리 선언 {'name':['k','y','h']}와 같이 list도 넣을 수 있다. 딕셔너리 value 추가 딕셔너리 value 출력 딕셔너리 value 삭제