Computer Science 156

알고리즘 11강 :: 합병 정렬, 퀵 정렬, 힙 정렬

알고리즘 11강을 보며 배운내용 오늘은 알고리즘 10강에서 알아본 버블정렬, 선택정렬, 셸 정렬보다 향상된 성능의 알고리즘을 알아본다 합병 정렬 1. 배열을 쪼개지지 않을 때까지 반으로 나누고 2. 합쳐주며 정렬 이미 4강에서 알아봤다(4강 링크) ✨ 특징 안정적 알고리즘 10강, 11강의 비교 기반 알고리즘 7개 가운데 제자리 정렬 아닌건 이녀석 하나 ⌛ 시간 복잡도 O(nlogn) 퀵 정렬 1. 피벗을 중심으로 왼쪽, 오른쪽으로 나누고 정렬 ⌛ 시간 복잡도 피벗 임의성 보장 하면 O(nlogn) 최악은 O(n2) ✨ 특징 제자리 정렬 알고리즘 힙 정렬 1. 일차원 배열 => 힙으로 변환 2. 힙의 최댓값 삭제 3. 힙 재구성 최대 힙: 내림차순 정렬 최소 힙: 오름차순 정렬 !! 여기선 내림차순 최대..

알고리즘 10강 :: 버블정렬, 선택정렬, 삽입정렬, 셸정렬

알고리즘 10강을 보며 배운내용 정리(TL;DR) 밑의 4가지 정렬 모두 시간 복잡도 On2 1. 버블 정렬 1. 인접한 두 값 비교 2. 왼쪽 값이 크면 자리 바꾸기 안정적 정렬 ✅ 제자리 정렬 ✅ 2. 선택 정렬 1. 최솟값 찾고 2. 작은 값부터 나열 안정적 정렬 ❌ 제자리 정렬 ✅ 3. 삽입 정렬 1. 정렬 부분(첫 번째 값), 미정렬 부분(두 번째 값부터)으로 잡고 2. 정렬 부분 뒤부터 비교 3. 정렬 부분의 값보다 크거나 같으면 오른쪽에 삽입 안정적 정렬 ✅ 제자리 정렬 ✅ 4. 셸 정렬 삽입 정렬을 개선하고자 나온 정렬 삽입 정렬을 크기가 변하는 부분 배열로 실행 안정적 정렬 ❌ 제자리 정렬 ✅ 정렬 내부 정렬 모든 데이터가 주기억장치에 저장 외부 정렬 보조기억장치에 저장하고 필요할 때 주..

데이터베이스 7강 :: 함수적 종속성, 정규화

데이터베이스 7강을 보며 배운내용 잘못된 데이터베이스 모델링 데이터 중복 일관성 유지 어려운 릴레이션 릴레이션은 표다 좋은 릴레이션 1. 프로그래머 관점 => 어떻게 데이터 저장해야 하나 2. 릴레이션의 스키마가 효율적으로 실세계를 반영하고 있는가? 고려사항 한 릴레이션 내의 컬럼 간의 관계 분석 원하지 않는 데이터 종속과 중복 제거 새로운 컬럼들이 추가될 때 최대한 독립성 유지 함수적 종속성 정의 릴레이션 인스턴스의 속성(컬럼)들 간의 연관관계 표현한 것 릴레이션 효율성을 향상시켜 좋은 릴레이션으로 변환한다는 개념 항수적 종속성 추론 규칙 1. 암스트롱 공리(Armstrong's axiom) 규칙은 외워야 한다 2. 카노니컬 커버 함수적 종속성 추론 규칙으로 확장된 클로저에는 당연한 종속성과 중복된 종..

이산수학 2강 :: 명제, 논리연산, 술어논리

이산수학 2강을 보며 배운내용 명제 (Proposition) 참과 거짓을 구별할 수 있는 문장이나 수학적 식 정확하게 참인지 거짓인지 판별할 수 있어야된다 명제의 진리값(truth value) 참이나 거짓 논리 연산 논리집합과 논리 연산으로 나타낸 것 논리집합 논리상수(T, F), 논리변수(명제) 논리연산 or, and, not, xor 합성명제 논리연산자로 만든 명제 추가로 조건 명제 쌍조건 명제 논리적 동치 항진명제 모순명제 명제의 진리표는 약속이라 외워야한다 => 명제 논리 나무위키 링크 술어논리(Predicate Logic) 명제함수(미지수 포함된 것)를 술어논리라고 한다 x + 1 = 4 x 값에 따라 진리값이 참 혹은 거짓이 될 수 있다 한정화(quantification) 전체 한정자 ∀: 모..

이산수학 1강 :: 이산수학, 자료구조

이산수학 1강을 보며 배운내용 오리엔테이션이라 정의, 학습법 수학은 생각하기 위한 학문이다라는 명언을 들으며 지나보냈다 이산수학이란? 이산적인 수학구조에 대해서 연구하는 학문 이산: 뚝뚝 떨어진 구조(정수 등 떨어진 숫자) 자료구조 그리고 추상화 개인적인 의견 실생활의 문제를 풀기위해서는 어떤 도구를 어떻게 풀지를 알면 수월하다 어떤 도구에 해당 하는게 자료구조로 생각된다 4000원짜리 냄비를 파는데 고객이 5000원을 지불했다면 정수 5000에서 정수 4000을 뺀 금액인 정수 1000을 돌려준다 여기서 나오는 정수도 자료구조 중 하나이다 즉 4000원을 4000이라는 정수로 추상화 시켜서 계산을 하기 위해 사용한다 스택, 큐, 그래프 등 여러 자료구조가 있으며 이런 간단한 빼기가 아닌 복잡한 문제를 ..

이산수학 실시간 :: 명제, 관계, 함수

이산수학 실시간 강의! 2강 논리 명제(Proposition)란? 참과 거짓을 구별할 수 있는 문장이나 수식 예시) 메시는 호날두보다 발롱도르를 많이 탔다 명제의 진리값을 구하란 말은 명제의 참과 거짓을 붙여주는것 참(True) | 거짓(False) 식이란? 상수와 변수를 연산자로 묶은 것 합성명제 하나 이상의 명제와 논리연산자 그리고 괄호로 이루어진 명제 논리연산자 논리곱, 논리합, 부정, 베타적논리합 1. 논리곱(conjunction) and 연산 부호: ∧ 2. 논리합(disjunction) or 연산 부호: ∨ 3. 부정(negation) not 연산 부호: ~ 4. 베타적 논리합(exclusive or) or은 p가 참, q가 참이면, 결과도 참인데 xor은 p가 참, q가 참이면, 결과는 거짓..

데이터베이스 6강 :: 그룹질의, 중첩질의, 조인, 뷰

데이터베이스 6강을 보며 배운내용 4강, 5강에 이은 SQL 마지막 강의 좀 더 디테일한 데이터 검색을 배운다 궁금했던 JOIN 연산자도 나올 듯 싶다 정리(TL;DR) SQL은 생각보다 직관적인 언어로 심지어 재밌었다 백엔드에 조금 더 호감이 생긴 시점 집계함수 SQL 집계함수를 통해 연산을 수행할 수 있다 마치 JavaScript의 Math 함수를 사용하는 느낌 그룹질의 같은 값을 가진 녀석들을 무리짓게 할 수 있는 녀석 집계함수의 COUNT와 함께 자주 사용될 것 같다 중첩질의 SELECT문을 실행하면 테이블을 출력하는데, 이 출력된 테이블을 고대로 FROM이나 WHERE에 사용할 수 있다 복잡한 구성처럼 보이겠지만 그만큼 편리하겠지 조인 내부조인: 조건을 만족하는 레코드만 보여준다 외부조인: 조건..

데이터베이스 5강 :: 데이터 조작 언어 INSERT, UPDATE, DELETE, SELECT

데이터베이스 5강을 보며 배운내용 들어가기전 4강에서 데이터베이스를 정의하는 데이터 정의 언어를 알아봤다 이번 강의에서는 SQL을 이용해서 데이터 CRUD를 알아볼 듯 싶다 정리(TL;DR) DB조작한다고 SQL 어렵게만 생각했는데 직접 보니까 꽤 직관적인 녀석이다 아직 이론만 배워서 그럴지 몰라도 현재까지 GOOD 레코드 삽입 INSERT INTO 테이블이름(컬럼1, 컬럼2) VALUES 값1, 값2 레코드 수정 UPDATE 테이블이름 SET 컬럼 = 값 [선택]WHERE 컬럼제목 = 값 레코드 삭제 DELETE FROM 테이블이름 [선택]WHERE 컬럼제목 = 값 레코드 전체 검색 SELECT * FROM 테이블이름 레코드 부분 컬럼 검색 SELECT 찾을컬럼1, 찾을컬럼2 FROM 테이블이름 [선택..

알고리즘 9강 :: 알고리즘 목차, 분할정복, 동적프로그래밍, 욕심쟁이

알고리즘 9강을 보며 배운내용 이번 강의는 10강부터 배울 정렬 알고리즘에 들어가기전에 1강부터 8강까지 배운 내용 리마인드 시간 정리(TL;DR) 1. 기본 자료구조 => 모든 구현은 배열과 연결리스트 2. 알고리즘 기초 => 대표적인 3가지 알고리즘, 점근 성능 3. 분할정복 => 이진 탐색, 퀵 정렬 4. 분할정복 => 합병정렬, 선택 문제 5. 동적 프로그래밍 => 동적 프로그래밍 원리, 연쇄 행렬 곱셈 6. 동적 프로그래밍 => 편집 거리, 모든 정점 최단 경로, 저울 문제 7. 욕심쟁이 => 동전 거스름돈, 배낭문제, 신장트리 8. 욕심쟁이 => 한 정점 최단 경로, 데이크스트라, 작업 스케쥴링, 작업 선택, 허프만코딩 1강 기본 자료구조 정의, 특징, 동작 등을 알아두자 배열, 연결리스트 스..

데이터베이스 4강 :: SQL, 데이터 정의 언어

데이터베이스 4강을 보며 배운내용 목표인 SQL 돌입!! 기본만 제대로 알고가자 SQL 3강에 걸쳐서 배운다 정리(TL;DR) 👇 SQL 데이터 정의 언어 👇 생성 CREATE TABLE 테이블이름( 컬럼이름 데이터타임 특징, 컬럼이름 데이터타임 특징 ) 수정 ALTER TABLE 테이블이름 ADD COLUMN 컬럼데이터타임 제약조건 DROP COLUMN 컬럼이름 CHANGE COLUMN 수정전컬럼 수정후컬럼 MODIFY COLUMN 컬럼데이터타입​ 삭제 DROP TABLE 테이블이름​ 데이터베이스 언어는 어디서 사용될까? 데이터베이스 관리 시스템(DBMS)과 이야기 하려고 SQL이 가장 표준화된 언어 이거만 알면 다른 것 이해하기 편하다고 한다 SQL(Sturctured Query Language) 구..

728x90