728x90

Code/Algorithm 20

[Algorithm] 스택과 큐_2

04-2 큐란? 큐 알아보기 큐(queue): 스택과 같이 데이터를 임시 저장하는 자료구조 큐는 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출(FIFO) 구조입니다. 큐에 데이터를 추가하는 작업을 인큐(enqueue), 데이터를 꺼내는 작업을 디큐(dequeue)라고 합니다. 데이터를 꺼내는 쪽을 프런트(front), 데이터를 넣는 쪽을 리어(rear)라고 합니다. 배열로 큐 구현하기 24를 인큐하기 : 맨 끝 데이터가 저장되어 있는 que[3]의 다음 원소인 que[4]에 24를 저장합니다. 이때 처리의 복잡도는 O(1)이고 비교적 적은 비용으로 구현할 수 있습니다. 19를 디큐하기 : que[0]에 저장되어 있는 19를 꺼내면서 2번째 이후의 모든 원소를 위 그림의 c와 같이 앞쪽으로 옮겨야 합..

Code/Algorithm 2022.12.05

[Algorithm] 스택과 큐_1

04-1 스택이란? 스택 알아보기 스택(stack): 데이터를 임시 저장할 때 사용하는 자료구조 스택에 데이터를 넣는 작업을 푸시(push)라 하고, 스택에서 데이터를 꺼내는 작업을 팝(pop)이라고 합니다. 푸시하고 팝하는 윗부분을 꼭대기(top)이라 하고, 아랫부분을 바닥(bottom)이라고 합니다. 스택 구현하기 스택 배열: stk 푸시한 데이터를 저장하는 스택 본체인 list형 배열입니다. 가장 먼저 푸시하여 데이터를 저장하는 곳은 stk[0]입니다. 스택 크기: capacity 스택의 최대 크기를 나타내는 int형 정수입니다. 이 값은 배열 skt의 원소 수인 len(stk)와 일치합니다. 스택 포인터: ptr 스택에 쌓여 있는 데이터의 개수를 나타내는 정숫값을 스택 포인터(stack point..

Code/Algorithm 2022.12.02

[Algorithm] 검색 알고리즘_4 (해시법)

이전 글 2022.11.27 - [Code/Algorithm] - [Algorithm] 검색 알고리즘_2 (선형 검색) [Algorithm] 검색 알고리즘_2 (선형 검색) 03-2 선형 검색 선형 검색(linear search) 직선 모양(선형)으로 늘어선 배열에서 검색하는 경우에 원하는 키값을 가진 원소를 찾을 때까지 맨 앞부터 스캔하여 순서대로 검색하는 알고리즘 선형 검색 heejins.tistory.com 2022.11.28 - [Code/Algorithm] - [Algorithm] 검색 알고리즘_3 (이진 검색) [Algorithm] 검색 알고리즘_3 (이진 검색) 이전 글(선형 검색) 2022.11.27 - [Code/Algorithm] - [Algorithm] 검색 알고리즘_2 (선형 검색)..

Code/Algorithm 2022.11.28

[Algorithm] 검색 알고리즘_3 (이진 검색)

이전 글(선형 검색) 2022.11.27 - [Code/Algorithm] - [Algorithm] 검색 알고리즘_2 (선형 검색) [Algorithm] 검색 알고리즘_2 (선형 검색) 03-2 선형 검색 선형 검색(linear search) 직선 모양(선형)으로 늘어선 배열에서 검색하는 경우에 원하는 키값을 가진 원소를 찾을 때까지 맨 앞부터 스캔하여 순서대로 검색하는 알고리즘 선형 검색 heejins.tistory.com 03-3 이진 검색 이진 검색(binary search) 원소가 오름차순이나 내림차순으로 정렬된 배열에서 좀 더 효율적으로 검색할 수 있는 알고리즘 검색 범위는 흰색 배열 안의 원소이고, 검색에서 제외되는 범위는 회색 배열 안의 원소입니다. 이진 검색을 한 단계씩 진행할 때마다 검색..

Code/Algorithm 2022.11.28

[Algorithm] 검색 알고리즘_2 (선형 검색)

03-2 선형 검색 선형 검색(linear search) 직선 모양(선형)으로 늘어선 배열에서 검색하는 경우에 원하는 키값을 가진 원소를 찾을 때까지 맨 앞부터 스캔하여 순서대로 검색하는 알고리즘 선형 검색의 종료 조건 검색할 값을 찾지 못하고 배열의 맨 끝을 지나간 경우 ··· 검색 실패 검색할 값과 같은 원소를 찿는 경우 ··· 검색 성공 배열 a에서 검색하는 프로그램 코드 i = 0 while True: if i == len(a): # 검색 실패 if a[i] == key: # 검색 성공(찾은 원소의 인덱스는 i) i+=1 선형 검색의 종료 조건 1 ··· if i == len(a)가 성립하면 스캔 종료 선형 검색의 종료 조건 2 ··· if a[i] == key가 성립하면 스캔 종료 실습 3-1 ..

Code/Algorithm 2022.11.27

[Algorithm] 검색 알고리즘_1

03-1 검색 알고리즘이란? 검색과 키 국적이 한국인 사람을 찾습니다. 나이가 21세 이상 27세 미만인 사람을 찾습니다. 이름에 '민' 자가 들어간 사람을 찾습니다. 모두 어떠한 항목에 주목하고 있습니다. 이렇게 주목하는 항목을 키(key)라고 합니다. 대부분 키는 데이터의 일부입니다. 국적: 키값과 일치하도록 지정합니다. 나이: 키값의 구간을 지정합니다. 문자: 키값에 가깝도록 지정합니다. 검색의 종류 배열 검색 연결 리스트 검색 이진 검색 트리 검색 배열 검색 선형 검색: 무작위로 늘어놓은 데이터 집합에서 검색을 수행합니다. 이진 검색: 일정한 규칙으로 늘어놓은 데이터 집합에서 아주 빠른 검색을 수행합니다. 해시법: 추가·삭제가 자주 일어나는 데이터 집합에서 아주 빠른 검색을 수해합니다. - 체인법..

Code/Algorithm 2022.11.27

[Algorithm] 기본 자료구조와 배열_2

이전 글과 이어지기 때문에 이전 글을 먼저 보시는 것이 좋습니다. 2022.11.21 - [Code/Algorithm] - [Algorithm] 기본 자료구조와 배열 [Algorithm] 기본 자료구조와 배열_1 02 - 1 자료구조와 배열 실습 2-1 학생 5명의 시험 점수를 입력받아 합계와 평균을 출력하기 # 학생 5명의 시험 점수를 입력받아 합계와 평균을 출력하기 print('학생 그룹 점수의 합계와 평균을 구합 heejins.tistory.com 02 - 1 배열이란? 배열 원소의 최댓값 구하기 # a의 원소가 3개일 때 maximum = a[0] if a[1] > maximum: maximum = a[1] if a[2] > maximum: maximum = a[2] # a의 원소가 4개일 때 m..

Code/Algorithm 2022.11.25

[Algorithm] 기본 자료구조와 배열_1

02 - 1 자료구조와 배열 실습 2-1 학생 5명의 시험 점수를 입력받아 합계와 평균을 출력하기 # 학생 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 total += scor..

Code/Algorithm 2022.11.21

[Algorithm] 알고리즘 기초_2

01 - 2 반복하는 알고리즘 실습 1-7 1부터 n까지 정수의 합 구하기 1(while 문) # 1부터 n까지 정수의 합 구하기 1 (while 문) print('1부터 n까지 정수의 합을 구합니다.') n = int(input('n값을 입력하세요.: ')) sum = 0 i = 1 while i b: a,b = b, a sum = 0 for i in range(a, b+1): sum += i print(f'{a}부터 {b}까지 정수의 합은 {sum}입니다.') a부터 b까지 정수의 합을 구합니다. 정수 a를 입력하세요.: 3 정수 b를 입력하세요.: 64 3부터 64까지 정수의 합은 2077입니다. a와 b를 교환할 때 a, b = b, a # a와 b의 값을 교환(단일 대입문 사용) 반복 과정에서 ..

Code/Algorithm 2022.11.18

[Algorithm] 알고리즘 기초_1

01 - 1 알고리즘이란? 더보기 어떠한 문제를 해결하기 위해 정해 놓은 일련의 절차 특히 올바른 알고리즘이란 '어떠한 경우에도 실행 결과가 똑같이 나오는 것'을 말함. 실습 1-1 세 정수의 최댓값 구하기 # 세 정수의 최댓값 구하기 print('세 정수의 최댓값을 구합니다.') a = int(input('정수 a의 값을 입력하세요.: ')) b = int(input('정수 b의 값을 입력하세요.: ')) c = int(input('정수 c의 값을 입력하세요.: ')) maximum = a if b > maximum: maximum = b if c > maximum: maximum = c print(f'최대값은 {maximum}입니다.') 세 정수의 최댓값을 구합니다. 정수 a의 값을 입력하세요.: 5..

Code/Algorithm 2022.11.18
728x90