본문 바로가기

분류 전체보기137

2021.3.2 TIL : [Python] 기초 문법2 문자열에서 어떤 문자가 몇 개나 들어있는지 알려주는 함수이다. 다음 코드를 실행시키면 2라는 결과를 얻을 수 있다. a = 'hobby' print(a.count('b')) 문자열에서 어떤 문자가 어디에 들어있는지 그 배열의 인덱스를 알려주는 함수이다. 다음 코드를 실행시키면 2라는 결과를 얻을 수 있다. 이는 2 번 째에 해당 문자가 있다는 것이다. (0번째부터 시작) 이 함수는 같은 문자가 문자열 안에 여러 번 있을 시에는 가장 첫 번째 인덱스를, 만약 해당 문자가 문자열 내에 없을 때에는 -1을 반환한다. a = "hobby" print(a.find('b')) join 앞의 ""사이에 들어가는 값을 기준으로 join 뒤에 들어가는 배열들 사이사이를 구성한다. a = ",".join("abcd") p.. 2021. 3. 2.
2021.3.1 TIL : [Python] 기초 문법1 정수형 (int) : 양의 정수, 음의 정수, 0 을 포함하는 개념 ex) a = 3; a = -876 실수형 (floating - point) : 소수점이 포함된 숫자 ex) a = 4.24e-10 8진수 표현법 : 8진수로 표현되는 수 앞에 0o 혹은 0O를 붙여 8진수 임을 표현해준다. 0o376 혹은 0O376 (10진수로 표현할 경우 254) 16진수 표현법 : 16진수로 표현되는 수 앞에 0x를 붙여 16진수 임을 표현해준다. 0xa95 (10진수로 표현할 경우 2709) 사칙연산 : +, -, *, / 로 사용된다. 나눗셈 후 나머지 반환 : % 나눗셈 후 몫 반환 : // ex) 72/10 = 7.2 72//10 = 7 문자열 (string) : 문자열을 저장하는 경우, 문자열 내에 ""가.. 2021. 3. 1.
2021.2.27 TIL : [자료구조] 그래프의 개념과 구현 그래프(Graph)란 사물을 정점(Vertex)와 간선(Edge)으로 나타내기 위한 도구이다. 지금까지 배운 자료 구조 중에 가장 복잡하면서도 일반적이라고 할 수 있다. 우리가 흔히 보는 지하철 노선도가 그래프랑 비슷하게 생겼다고 볼 수 있다. 각각의 역은 노드, 그리고 역과 역 사이에 이어진 노선은 에지로 생각하면 된다. 경로(Path)는 어떤 노드에서 다른 노드로 가는 길이라고 볼 수 있다. 같은 인덱스를 두 번 이상 거치게 되면 경로라고 부르지 않는다. 사이클(Cycle)은 어떤 노드에서 출발해서 제자리로 돌아오는 닫힌 경로를 말한다. 사이클은 그래프에 존재하지 않을 수도 있고, 2개 이상 있을 수도 있다. 사이클이 존재하지 않는 그래프의 경우, 두 노드를 연결하는 경로가 최대 1개씩 밖에 없다. .. 2021. 2. 27.
2021.2.25 TIL : [자료구조] 순차 탐색과 이진 탐색(Sequential Search and Binary Search) 순차 탐색(Sequential Search)이란 특정한 원소를 찾기 위해 원소를 순차적으로 하나씩 탐색하는 방법이다. 데이터 정렬 유무에 상관 없이 가장 앞에 있는 원소부터 하나씩 확인해야 한다는 점에서 O(N)의 시간 복잡도를 가진다. 순차 탐색 코드는 여기에서 확인할 수 있다. 이진탐색(Binary Search)은 배열 내부 데이터가 이미 정렬 되어 있는 상황에서만 사용 가능한 알고리즘이다. 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 특징이 있다. 이진 탐색은 한 번 확인할 때마다 보아야 하는 원소의 개수가 절반씩 줄어든다는 점에서 탐색 시간에서 O(log N)의 시간 복잡도를 가진다. 여기에서 이진 탐색 코드를 확인할 수 있다. 2021. 2. 26.
2021.2.23 TIL : [자료구조] 이진트리의 개념, 구현 및 순회 트리는 나무의 형태를 뒤집은 것과 같은 형태의 자료 구조이다. 이진 트리(Binary Tree)는 최대 2개의 자식을 가질 수 있는 트리이다. 길이(length)란 출발 노드에서 목적지 노드까지 거쳐야 하는 가지의 수를 의미한다. 여기서 주의해야 할 점은 출발 노드가 루트 노드가 아닐 수 있고, 목적지 노드도 리프 노드가 아닐 수 있다는 점이다. 깊이(Depth)란 루트 노드에서 특정 노드까지의 길이를 의미한다. 높이(Height)란 루트 노드에서 가장 깊은 노드까지의 길이를 의미한다. 포화 이진 트리(Full binary tree)는 리프 노드를 제외한 모든 노드가 2개의 자식을 가지고 있는 트리이다. (원래도 리프 노드는 자식을 가지지 않음) 완전 이진 트리(Complete binary tree)는 .. 2021. 2. 24.
2021.2.21 TIL : [자료구조] 계수정렬(Counting Sort) 계수 정렬이란 크기를 기준으로 데이터의 개수를 세는 정렬 알고리즘이다. 각 데이트를 바로 크기를 기준으로 분류하므로 O(N)의 시간 복잡도를 가진다. 이러한 배열로 만들어서 인덱스 차례대로 해당 원소를 1씩 줄여나가면서 출력하게 되면 정렬된 데이터를 확인할 수 있다. 출력 값 : 0 0 1 1 1 2 2 2 3 3 계수정렬을 C언어로 구현한 코드는 여기에서 확인할 수 있다. 계수 정렬은 가장 큰 데이터의 크기만큼 메모리를 할당 해중야 하기 때문에 데이터의 크기가 한정적일 때 사용할 수 있다. 2021. 2. 24.