전체 글 썸네일형 리스트형 [스터디 3일차] Heap, Stack&Queue, Tree 1. Heap 1) heap의 정의 - 각 노드의 키값이 자식의 키값보다 작지 않거나(최대힙) 그 자식의 키값보다 크지 않은(최소힙) 완전이진트리 2) Heap의 장점 - Heap에서 최대/최소값을 찾을 때 O(log N) 만큼 걸림 ( 배열에서의 O(N)보다 짧음) 3) Heap의 종류 - 최대 힙(Max Heap) : 부모노드 키값 > 자식노드 키값 - 최소 힙(Min Heap) : 부모노드 키값 < 자식노드 키 값 4) Heap 구현 - 배열로 구성하며, 1번 인덱스부터 사용함 - 부모 노드 인덱스 번호 = 자식 노드 인덱스 번호 / 2 - 왼쪽 자식 노드 인덱스 번호 = 부모 노드 인덱스 번호 * 2 - 오른쪽 자식 노드 인덱스 번호 = 부모 노드 인덱스 번호 * 2 + 1 2. Stack & Q.. 더보기 [스터디 2일차]함수형 프로그래밍/ 좋은 코드란 / MVC 패턴이란 1. 함수형 프로그래밍 1) 명령형 프로그래밍 (Imperative Programming) 설명 : 프로그래밍의 상태 & 상태를 변경하는 구문의 관점에서 설명하는 방식 특징 : 알고리즘을 명시하고, 목표는 명시하지 않음 예시 : 절차지향 프로그래밍(C,C++), 객체지향 프로그래밍(C++,Java) 2) 선언형 프로그래밍 (Declarative Programming) 설명 : 방법론 보다는 무엇을 해야하는지를 설명하는 방식 특징 : 알고리즘을 명시하지 않고, 목표만 명시 // 이론적 배경을 람다 계산식에 둠 예시 : 함수형 프로그래밍( Lisp, ML ), 반응형 프로그래밍 // 명령형 function add (arr) { let result = 0 for (let i = 0; i < arr.length.. 더보기 [스터디 1일차] - git / TDD / 객체지향 프로그래밍 0. 출처 https://github.com/alstjgg/cs-study GitHub - alstjgg/cs-study: CS 스터디입니다 CS 스터디입니다. Contribute to alstjgg/cs-study development by creating an account on GitHub. github.com 1. [git과 github] 1. GIT - 버전관리 도구, 대표적 관리 도구엔 git과 svn이 존재 - svn과의 가장 큰 차이는 svn은 중앙 집중 관리식, git은 분산 관리식이라는 것입니다( 저장소를 여러개를 두고 분산관리 한다는 차이점이 존재) - SVN은 소스 변경 사항과 히스토리가 서버에 즉시 반영되기 때문에 변경 사항 및 히스토리 관리가 용이하다. 그러나 중앙 저장소 데이터.. 더보기 RESTFul API란? 0. RESTFul API 한줄 정리 - REST 아키텍처의 제약 조건(특징)을 준수하는 API - 일종의 설계 가이드, REST API 설계 가이드에 따라 API를 만들어서 웹 서비스를 제공하면 해당 웹 서비스는 RESTful하다! 1. REST + API 1-1) REST - REpresentational State Transfer, 어떠한 상태 표현을 주고 받는다 -> 웹상에서 정보들을 주고받을 때 널리 쓰이는 규격화된 통신 규칙 -> "URI"를 통해 웹상에서 사용되는 자원을 표현하고, "HTTP Method"를 통해 자원에 대한 CRUD 요청을 정의하는 방식 1-2) 왜 REST를 사용하고 유명할까? - REST API의 특징 1: HTTP를 활용한다는 것, 웹의 기존 기술과 HTTP 프로토콜을.. 더보기 [DB 기술면접 질문 리스트] : JOIN - JOIN이란? 두개이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법입니다. 자신이 검색하고 싶은 컬럼이 다른 테이블에 있을경우 주로 사용하며 여러개의 테이블을 마치 하나의 테이블인 것처럼 활용하는 방법입니다. 보통 Primary key혹은 Foreign key로 두 테이블을 연결합니다 - JOIN 종류는( 논리적 JOIN ) ? 1. INNER JOIN - 기준테이블과 Join한 테이블의 중복된 값을 보여줌 - 교집합 2. LEFT OUTER JOIN - JOIN 문 기준 왼쪽 테이블(A)의 전체 데이터와, A테이블과 B테이블의 중복 데이터를 보여줌 3.RIGHT OUTER JOIN - JOIN문 기준 오른쪽 테이블(B)의 전체 데이터와, A테이블과 B테이블의 중복 데이터를 보여줌 4... 더보기 [DB 기술면접 질문 리스트] : 인덱스 - RDBMS가 뭔가요? RDBMS의 특징 설명해보시겠어요? 관계형 데이터베이스를 생성하고 수정하고 관리할 수 있는 소프트웨어입니다. RDBMS의 특징으로는 모든 데이터를 2차원 테이블로 표현하며, 각 테이블의 단위는 row(record, tuple)과 column(field, item)으로 이루어져있습니다. sql을 사용해 Join 등의 관계형 연산을 하며, 하나의 고성능 머신에 데이터 저장하는 수직적 확장 방식입니다. 따라서 "데이터가 자주 수정되는 경우", 혹은 "스키마가 변경될 여지가 없고, 명확한 스키마가 중요한 경우" 사용되는 것이 좋습니다. 장점 데이터의 일관성을 보증할 수 있음 데이터베이스 설계 시 이미 불필요한 중복이 삭제됨 정규화를 전제로 하고 있기 때문에 업데이트 시 비용이 적음(동일.. 더보기 [코테 문제 유형 정리] 1. 공유기 설치 - 문제 : N개의 집이 있고(각 좌표가 주어짐), C개의 공유기가 있을 때 C개의 공유기를 N개의 집에 적당히 설치해서, 가장 인접한 두 공유기 사이의 거리를 최대로 하는 프로그램? - 알골: 이분탐색 - 추가 해설: # min_distance = 1, max_distance = N번 집 좌표 - 첫번째 집 좌표 # mid_distance로 min과 max의 중간값을 가지고, 1번 집부터 mid_distance거리만큼 공유기를 설치했을 때 설치가능한 공유기 개수 확인 -> C개보다 크면 거리가 넘 짧은 것이므로 max 값 줄이고, C개보다 적으면 answer와 값 비교 후 min값 크게 함 2. 튜플 - 문제: n개이면서 중복 원소가 없는 튜플 (a1,a2,..an)이 주어졌을 때 집.. 더보기 [코테 정리] 0 . 시간 복잡도 입력 범위 시간 복잡도 알고리즘 500 N^3 3중 for, 플루이드 2,000 N^2 2중 for 100,000(10만) N log N 이때부터 2중 for쓰면 안됨. 20,000,000(2천만) N 100만 logN 이분탐색 - format 출력 :print( "구구단 {0} * {1} = {2} ".format( a, b, a*b) # 0,1,2는 인덱스 in 시간복잡도는 자료형에 따라 다름 -> 리스트말고 dictionary나 set이 더 짧음 if arr in set자료형 "하면 set 집합 안에 리스트 값들이 전부 들어가 있는지를 한번에 확인할 수 있다. 0-2. 구현 - DP배열에 초기값 넣을 때 항상 조심하자!!! 초기값은 보통 고정값으로 넣기 때문에 런타임에러가 발생할.. 더보기 이전 1 2 3 4 5 6 7 8 ··· 15 다음