Computer Science/Algorithm

✨계수 정렬(Counting Sort) 컴퓨터 과학에서 정렬 알고리즘의 하나로서, 작은 양의 정수들인 키에 따라 객체를 수집하는 것, 즉 정수 정렬 알고리즘의 하나 키의 다양성이 항목의 수보다 상당히 크지 않은 상황에서 사용한다. ✨과정 배열 생성 데이터의 값과 동일한 인덱스의 데이터를 1씩 증가 인덱스를 인덱스 값만큼 출력 ex) 백준 수 정렬하기 3 https://www.acmicpc.net/problem/10989 import sys n=int(sys.stdin.readline().rstrip()) li=[0]*10001 for i in range(n): a=int(sys.stdin.readline().rstrip()) li[a]+=1 for i in range(1,len(li)): for j in..
✨deque(덱) 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조의 한 형태 양쪽에서 삭제와 삽입을 발생시킬 수 있다. 큐와 스택을 합친 형태 ✨python deque ✨ deque import from collections import deque ✨ deque 생성 dq = deque() ✨deque 뒤,앞 값 추가 dq.append() dq.appendleft() ✨deque iterable 객체 값추가 dq.extend([7, 8, 9]) dq.extendleft([2, 1, 0])#마지막 값부터 추가됨 ✨deque 뒤,앞 값 pop dq.pop() dq.popleft() ✨deque 값 number만큼 회전(number 양수 1->2->3->4->5->1..., number 음수 5->4->3-..
✨Stack(스택) 스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 구조가 단순해서 구현이 쉽다. 데이터 저장/읽기 속도가 빠르다. class stack: def __init__(self): self.items = [] def push(self, item): self.items.append(item) def peek(self): return self.items[-1] def pop(self): if len(self.stack) < 1: return None return self.stack.pop() ✨Queues(큐) 먼저 들어간 자료가 먼저 나오는 자료구조. 자료를 넣는 Enqueue 함수와 자료를 빼내는 Dequeue 함수를 가진다. 선..
✨배열(array) 배열은 번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료 구조를 나타낸다 인덱싱이 되어 있어 인덱스 번호로 데이터에 접근할 수 있다. array=[] array1=[1,2] ✨해시 유일한 값(반복되지 않는 값)을 저장하기 위한 자료구조 [키,값] 형태로 저장 해시 값을 배열의 인덱스로 사용하여 값을 저장하고 검색하는 방식이다. 매우 빠른 데이터 검색을 할수있다. dict={1:"aa",2:"bb"} 🎈참고자료 https://ko.wikipedia.org/wiki/%EB%B0%B0%EC%97%B4 https://junvelee.tistory.com/153
✨시간 복잡도(Time complexity) 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킨다. ✨빅오 표기법(big-O notation) 인자가 특정한 값이나 무한대로 향할 때 함수의 극한적인 동작을 설명하는 수학적인 표기법 알고리즘의 시간복잡도는 주로 빅-오 표기법으로 나타낸다. ✨ 상수시간 for n in arr: print(1) 주어지는 n값과 상관없이 O(1)의 수행시간을 가진다. ✨선형 시간 for n in arr: print(arr[n]) 주어지는 n값에 따라 O(n)의 수행시간을 가진다. ✨2차 시간 for n in arr: for x in arr: print(n,x) 주어지는 n값에 따라 O(n^2)의 수행시간을 가진다. 🎈참고자료 https://ko.wikipedia.org/..
✨알고리즘(Algorithm) 수학과 컴퓨터과학에서 사용되는, 문제 해결 방법을 정의한 '일련의 단계적 절차'이자 어떠한 문제를 해결하기 위한 '동작들의 모임이다. 특정 문제를 효율적이고 빠르게 해결하기 위해서는 효율적인 알고리즘을 공부해야한다. ✨자료구조(Data Structure) 자료(data)를 담는 구조, 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미 🎈참고자료 https://ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 https://librewiki.net/wiki/%EC%8B%9C%EB%A6%AC%EC%A6%88:%EC%88%98%ED%95%99%EC%9D%B8%EB%93%AF_%EA%B3%BC%ED%95%..
아사_
'Computer Science/Algorithm' 카테고리의 글 목록 (3 Page)