전체 글

공부/TIL

[Do it! 자료구조와 함께 배우는 알고리즘 입문 : 파이썬 편] 03. 검색 알고리즘-2

03-4 해시법해시법 hashing인덱스(데이터를 저장할 위치)를 간단한 연산으로 구하는 것원소의 검색, 추가, 삭제를 효율적으로 수행해시값 hash value배열의 키(원소의 값)를 원소 개수인 n으로 나눈 나머지 해시 테이블 hash table해시값을 인덱스로 하여 원소를 새로 저장한 배열 해시 함수 hash function키를 해시값으로 변환하는 과정나머지를 구하는 연산 또는 그 연산을 응용할 때 주로 사용버킷 bucket : 해시 테이블에서 만들어진 원소  해시 충돌키와 해시 값 = n : 1 관계충돌 collision 저장할 버킷이 중복되는 현상 대처법체인법 : 해시값이 같은 원소를 연결 리스트로 관리오픈 주소법 : 빈 버킷을 찾을 때까지 해시를 반복 체인법 chaining체인법 : 해시값이 같..

공부/TIL

[Do it! 자료구조와 함께 배우는 알고리즘 입문 : 파이썬 편] 03. 검색 알고리즘-1

03. 검색 알고리즘03-1. 검색 알고리즘이란?검색과 키키 key : 검색 조건이 주목하는 항목(데이터의 일부) 검색의 종류배열 검색, 연결 리스트 검색, 이진 검색 트리 검색 등 배열 검색선형 검색무작위로 늘어놓은 데이터 집합에서 검색 수행 이진 검색일정한 규칙으로 늘어놓은 데이터 집합에서 아주 빠른 검색 수행 해시법추가 · 삭제가 자주 일어나는 데이터 집합에서 아주 빠른 검색 수행- 체인법 : 같은 해시값 데이터를 연결 리스트로 연결- 오픈 주소법 : 데이터를 위한 해시값이 충돌할 때 재해시 03-2 선형 검색선형 검색 linear search직선 모양(선형)으로 늘어선 배열에서 검색하는 경우, 원하는 키값을 가진 원소를 찾을 때까지 맨 앞부터 스캔하여 순서대로 검색하는 알고리즘= 순차 검색 seq..

공부/TIL

[Do it! 자료구조와 함께 배우는 알고리즘 입문 : 파이썬 편] 02. 기본 자료구조와 배열

02. 기본 자료구조와 배열 02-1. 자료구조와 배열 배열 개념 알아보기 #[Do it! 실습 2-1] 학생 5명의 점수를 입력받아 합계와 평균을 출력하기 print('학생 그룹 점수의 합계와 평균을 구합니다.') score1 = int(input('1번 학생의 점수를 입력하세요.: ')) score2 = int(input('2번 학생의 점수를 입력하세요.: ')) score3 = int(input('3번 학생의 점수를 입력하세요.: ')) score4 = int(input('4번 학생의 점수를 입력하세요.: ')) score5 = int(input('5번 학생의 점수를 입력하세요.: ')) total = 0 total += score1 total += score2 total += score3 tota..

공부/TIL

[Do it! 자료구조와 함께 배우는 알고리즘 입문 : 파이썬 편] 01. 알고리즘 기초

서적의 실습 자료(참고 코드)는 다음 링크에서 다운 가능 : http://www.easyspub.co.kr/30_Menu/DataList/PUB 파이썬 기초는 다음 링크에서 학습 가능 : https://wikidocs.net/book/2 01. 알고리즘 기초 01-1. 알고리즘이란? 알고리즘 어떠한 문제를 해결하기 위해 정해 놓은 일련의 절차 올바른 알고리즘 : 어떠한 경우에도 실행 결과가 똑같이 나오는 것 # [Do it! 실습 1-1] 세 정수를 입력받아 최댓값 구하기 print('세 정수의 최댓값을 구합니다.') a = int(input('정수 a의 값을 입력하세요.: ')) # 형 변환 b = int(input('정수 b의 값을 입력하세요.: ')) c = int(input('정수 c의 값을 입력..

공부/TIL

[한 권으로 읽는 컴퓨터 구조와 프로그래밍]

비트 - 2진법 사용 논리연산 - 다른 비트들이 표현하는 내용으로부터 새로운 비트를 만들어내는 동작 ex. 밖에 비가 내리거나 춥다면 코트를 입어라 불리언 대수 Boolean algebra - 비트에 대해 사용할 수 있는 연산 규칙의 집합 - 기본적인 불리언 연산자 : NOT, AND, OR - XOR : 첫 번째 비트와 두 번째 비트가 다른 값인 경우에만 참 드모르간의 법칙 De Morgan's law a AND b = NOT(NOT a OR NOT b) NOT을 충분히 사용하면 AND 연산을 OR 연산으로 대체 가능(OR을 AND로도 대체 가능) 정수를 비트로 표현하는 법 LSB 가장 작은 유효 비트 least significant bit : 2진수에서 가장 오른쪽의 비트 MSB 가장 큰 유효 비트 ..

공부/TIL

[SQL 첫걸음] 32강 - 36강

32강 : 테이블 결합 테이블 결합 여러 개로 나뉜 데이터를 하나로 묶어 결과를 내는 방법 1. 곱집합과 차집합 교차결합 Cross Join - FROM 구에 복수의 테이블 지정 or CROSS JOIN 사용 mysql> SELECT * FROM sample72_x; +------+ | x | +------+ | A | | B | | C | +------+ 3 rows in set (0.03 sec) mysql> SELECT * FROM sample72_y; +------+ | y | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.01 sec) # SELECT * FROM 테이블명1, 테이블명2 mysql> SELECT * FROM sample72_x, s..

공부/TIL

[SQL 첫걸음] 29강 - 31강

29강 :인덱스 작성과 삭제 # 인덱스 작성 # CREATE INDEX isample65 ON sample62(no); mysql> CREATE INDEX isample65 ON sample62(no); Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 # 인덱스 삭제 # DROP INDEX 인덱스명(스키마 객체) # DROP INDEX 인덱스명 ON 테이블명(테이블 내 객체) mysql> DROP INDEX isample65 ON sample62; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 EXPLAIN - 실제로 인덱스를 사용해 검..

공부/TIL

[SQL 첫걸음] 26강 - 28강

26강 : 테이블 작성·삭제 ·변경 1. 테이블 작성 CREATE TABLE 사용 mysql> CREATE TABLE sample62 ( -> no INTEGER NOT NULL, -> a VARCHAR(30), -> b DATE); Query OK, 0 rows affected (0.07 sec) mysql> DESC sample62; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | no | int | NO | | NULL | | | a | varchar(30) | Y..

Ail_
log