목록Python (8)
채채

정렬(Sorting)이란 데이터를 특정한 기준에 따라 순서대로 나열하는 것을 말한다. 일반적으로 문제 상황에 따라서 적절한 정렬 알고리즘이 공식처럼 사용된다. 선택 정렬 처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복 => 이중 반복문 사용, O(N²) array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i + 1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_index], arra..

탐색(Search)이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 말한다. 대표적인 그래프 탐색 알고리즘으로는 DFS와 BFS가 있다. 코딩 테스트에서 매우 자주 등장하는 유형 스택 자료구조 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조 입구의 출구가 동일한 형태로 스택을 시각화 할 수 있다. 리스트 자료형을 사용 append()와 pop() 함수 사용 # append()와 pop()을 사용한다. => 상수시간 O(N)만큼 거림 stack = [] stack.append(5) stack.append(2) stack.pop() print(stack[::-1]) # 최상단 원소부터 출력 print(stack) # 최하단 원소부터 출력 큐 자료구조 먼저 들어온 데이터가 먼저 나가는 ..

복잡도는 알고리즘의 성능을 나타내는 척도이다. 시간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석 공간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 동일한 기능을 수행하는 알고리즘이 있다면, 일반적으로 복잡도가 낮을수록 좋은 알고리즘이다. 빅오 표기법(Big-O Notation) 가장 빠르게 증가하는 항만을 고려하는 표기법 예를들어 연산 횟수가 3N³ + 5N² + 1,000,000인 알고리즘이 있다고 할 경우. 빅오 표기법에서는 차수가 가장 큰 항만 남기므로 O(N³)으로 표기한다. 시간 복잡도 계산해보기 1. N개의 데이터의 합을 계산하는 예제 수행 시간은 데이터의 개수 N에 비례할 것임을 예측할 수 있다. 시간 복잡도: O(N) array = [3, 5, 1..
표준 입력 방법 input() 함수는 한 줄의 문자열을 입력 받는 함수. map() 함수는 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용. 예시) 공백을 기준으로 구분된 데이터를 입력 받을 때 `data = list(map(int, input().split()))` 예시) 공백을 기준으로 구분된 데이터의 개수가 많지 않다면 `a, b, c = map(int, input().split())` 빠르게 입력 받기 사용자로부터 받는 입력의 갯수가 매우 많을 때, 입력을 최대한 빠르게 받아야 함 이진탐색, 정렬, 그래프 sys 라이브러리에 정의된 sys.stdin.readline() 메서드를 이용. 단, 입력 후 엔터(Enter)가 줄 바꿈 기호로 입력되므로 rstrip() 메서드를 함께 사용 impo..
사전 자료형은 키(Key)와 값(Value)의 쌍을 데이터로 가지는 자료형이다. 사전 자료형은 키와 값의 쌍을 데이터로 가지며, 원하는 '변경 불가능한 자료형'을 키로 사용한다. 파이썬의 사전 자료형은 해시 테이블을 이용하므로 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있다. data = dict() data['사과'] = 'Apple' data['바나나'] = 'Banana' data['코코넛'] = 'Coconut' print(data) dif = { '사과': 'Apple' '바나나': 'Banana' '코코넛': 'Coconut' } print(dif) if '사과' in data: print("'사과'를 키로 가지는 데이터가 존재합니다.") 사전 자료형 관련 메서드 키 데이터만..
data = 'Hello World' print(data) data = "Don't you know \"Python\"?" print(data) 문자열 연산 문자열 변수에 덧셈(+)을 이용하면 문자열을 연결할 수 있다. 문자열 변수를 특정한 양의 정수와 곱하는 경우, 문자열이 그 값만큼 여러번 연결된다. 문자열에 대해서도 마찬가지로 인덱싱과 슬라이싱을 이용할 수 있다. 다만 문자열은 특정 인덱스의 값을 변경할 수 없다. a = "Hello " b = "World" print(a + b) a = "String" print(a * 3) a = "ABCDEF" print(a[2:4]) 튜플 자료형 튜플은 한 번 선언된 값을 변경할 수 없다. 리스트는 대괄호([])를 이용하지만, 튜플은 소괄호(())를 이용한다..

리스트 초기화 - 리스트는 대괄호([])안에 원소를 넣어 초기화하며, 쉼표(,)로 원소를 구분한다. - 비어 있는 리스트를 선언하고자 할 때는 list() 혹은 간단히 []를 이용할 수 있다. # 직접 데이터를 넣어 초기화 a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(a) # 네 번째 원소만 출력 print(a[3]) # 크기가 N이고, 모든 값이 0인 1차원 리스트 초기화 n = 10 a = [0] * n print(a) 리스트의 인덱싱과 슬라이싱 연속적인 위치를 갖는 원소를 가져와야 할 때는 슬라이싱을 이용한다. - 대괄호 안에 콜론(:)을 넣어서 시작 인덱스와 끝 인덱스를 설정할 수 있다. - 끝 인덱스는 실제 인덱스보다 1을 더 크게 설정한다. a = [1, 2, 3, 4,..

모든 프로그래밍은 결국 데이터를 다루는 행위이다. 파이썬의 자료형으로는 정수형, 실수형, 복소수형, 문자열, 리스트, 튜플, 사전 등이 있다. 정수형(Integer)은 정수를 다루는 자료형으로 코딩테스트에서 출제되는 많은 문제들은 정수형을 주로 다루게 된다. # 양의 정수 a = 1000 print(a) # 음의 정수 a = -7 print(a) # 0 a = 0 print(a) 실수형(Real Number)은 소수점 아래의 데이터를 포함하는 수 자료형이다. 파이썬에서는 변수에 소수점을 붙인 수를 대입하면 실수형 변수로 처리된다. 소수부가 0이거나, 정수부가 0인 소수는 0을 생략하고 작성할 수 있다. # 양의 실수 a = 157.93 print(a) # 음의 실수 a = -1837.2 print(a) ..