본문 바로가기

Study46

[Python(파이썬)] split 함수 split() 문자열을 일정한 규칙으로 잘라서 리스트로 만들어주는 함수 split의 모양 문자열.split() 문자열.split('구분자') 문자열.split('구분자', 분할횟수) 문자열.split('구분자', maxsplit=분할횟수) sep 파라미터 : 기본값 none (띄어쓰기, 엔터를 구분자로 하여 문자열을 나눈다.) maxsplit 파라미터 : 기본값 -1 (제한없이 자를 수 있을 때까지 문자열 전체를 나눈다.) 문자열.split() split()에 아무것도 입력하지 않으면 기본적으로 띄어쓰기, 엔터를 구분하여 문자열을 나누게 된다. 또한 maxsplit 파라미터도 정하지 않았기 때문에 나눌 수 있는 최대로 나누게 된다. >>> test = '가 나 다 라 마 바' >>> print(test... 2021. 12. 1.
[Algorithm] 이진 탐색(Binary Search, 이분 탐색, 이진 검색) 이진 탐색(Binary Search) 정렬된 데이터 집합을 이분화하면서 특정한 값을 탐색하는 검색 알고리즘 -> 자료들이 순서대로 정리되어 있을 때 원하는 값을 찾기 위해 자료를 반씩 나누어 살펴보는 방법 시간 복잡도가 O(logN)으로 대표적인 로그 시간 알고리즘 1) 특정한 값을 찾기 위해 정렬된 데이터 집합의 중간 값 X와 비교한다. 2) X보다 작으면 X를 기준으로 왼쪽 데이터들, X보다 크면 X를 기준으로 오른쪽 데이터들 대상으로 다시 탐색한다. 3) 1 - 2번을 반복하며 특정값을 찾을 때 까지 반복한다. 종료 조건 : 원하는 값을 찾으면 종료 하지만 원하는 값이 배열에 존재하지 않는다면 탐색을 하다가 찾지 못했는데 더 이상 남은 배열이 존재하지 않으면 원하는 값이 배열에 존재하지 않는다고 판.. 2021. 10. 11.
[Python(파이썬)] TypeError: 'set' object is not subscriptable [Python(파이썬)] 세트(set) 세트 (set) 중복된 데이터를 허용하지 않는다. 비순차 자료형, 가변 자료형 인덱스로 접근 불가하다. 항목들을 {} 로 감싸고 각각의 항목은 쉼표(,)로 구분한다. 집합 선언 방법 - set() # 빈 집합 선 young-library.tistory.com 세트 (set) 중복된 데이터를 허용하지 않는다. 비순차 자료형, 가변 자료형 인덱스로 접근 불가하다. 항목들을 {} 로 감싸고 각각의 항목은 쉼표(,)로 구분한다. >>> test = {'a','b','c'} # set의 인덱스 접근 >>> test[1] Traceback (most recent call last): File "", line 1, in test[1] TypeError: 'set' object .. 2021. 10. 6.
[Python(파이썬)] 대소문자 변환 및 구분 1. 소문자 -> 대문자 2. 대문자 -> 소문자 3. 문자가 대문자인지 확인 4. 문자가 소문자인지 확인 1. 소문자 -> 대문자 : upper() 소문자를 대문자로 변환하는 함수 : 문자열(string).upper() 문자열의 모든 문자들을 대문자로 변환하여 반환한다. # 문자열.upper() >>> 'abcDeF'.upper() 'ABCDEF' 문자열 변수를 사용한 변환 # 문자열 변수를 사용한 변환 >>> a = 'abcDeF' >>> a.upper() 'ABCDEF' # a는 바뀌지 않는다. >>> a 'abcDeF' >>> b = a.upper() >>> b 'ABCDEF' 문자열의 모든 문자들을 대문자로 변환하여 반환한다. -> 원래 문자열은 변하지 않는다. a.upper()을 하면 a의 모.. 2021. 10. 6.
[Algorithm] LCS (최장 공통 부분 수열, 최장 공통 부분 문자열) LCS의 2가지 Longest Common Subsequence (최장 공통 부분 수열) Longest Common Substring (최장 공통 부분 문자열) Subsequence와 Substring의 차이점 Subsequence : 전체 문자열에서 꼭 연속적이지는 않은 부분 문자열 Substring : 전체 문자열에서 연속된 부분 문자열 str1 : 'ABECJ' str2 : 'ABKJG' 공통 부분 수열 -> {}, {A}, {B}, {J}, {A, B}, {A, J}, {B, J}, {A,B,J} -> 최장 공통 부분 수열 str1 : 'ABECJ' str2 : 'TABJG' 공통 부분 수열 -> {}, {A}, {B}, {A, B} -> 최장 공통 부분 문자열 Longest Common Subs.. 2021. 10. 3.
[Python(파이썬)] 2차원 리스트 정렬_인덱스, 길이 등에 따른 정렬 1차원 리스트 정렬 [Python(파이썬)] sort와 sorted 차이 sort와 sorted차이 sort() .sort(key = , reverse = True|False) - 리스트를 정렬해주는 기능을 하는 함수, 반환값이 None이다. - 정렬된 값을 리턴하지 않는다. - 원본의 내용을 정렬한 형태로 바꿔준다. - 리스.. young-library.tistory.com 1) 1차원 리스트 길이에 따른 정렬 >>> test = ['abd', 'a', 'b', 'eg', 'adbde', 'aedb'] >>> test.sort(key = len) >>> test ['a', 'b', 'eg', 'abd', 'aedb', 'adbde'] 2) 여러가지 정렬 test.sort(key = lambda x : .. 2021. 9. 6.
[Python(파이썬)] 리스트의 특정 원소 개수 구하기, Counter 리스트의 특정 원소 개수 구하기 count() - 리스트의 특정 원소 개수 구하는 함수 >>> test = [1, 3, 5, 2, 1, 3, 6, 8] >>> test.count(1) 2 >>> test.count(8) 1 >>> test = ['abc', 'apple', 'abaegd', 'abcdeaa', 'cba'] >>> temp = [] >>> for i in test: temp.append(i.count('a')) >>> temp [1, 1, 2, 3, 1] 리스트안 전체 요소의 개수를 각 각 구하기 from collections import Counter Counter(리스트명) >>> from collections import Counter >>> test = [1, 2, 3, 5, 4, .. 2021. 9. 6.
[Python(파이썬)] 리스트 가로, 세로 변환 (행, 열 변환) 그림과 같이 가로와 세로를 변환 하는 방법 test = [[1,2,3,4],[4,5,6,7],[8,9,10,11],[12,13,14,15]] 방법 1 - map 사용 X # map x >>> test2 = [list(i) for i in zip(*test)] # 출력 >>> test2 [[1, 4, 8, 12], [2, 5, 9, 13], [3, 6, 10, 14], [4, 7, 11, 15]] 방법 2 - map 사용 O # map o >>> new_test = list(map(list, zip(*test))) # 출력 >>> new_test [[1, 4, 8, 12], [2, 5, 9, 13], [3, 6, 10, 14], [4, 7, 11, 15]] ※ Asterisk(*) 연산자 하나의 * 연산자.. 2021. 9. 1.
[Python(파이썬)] 별(Asterisk(*)) 연산자 Asterisk(*) 연산자 하나의 * 연산자는 리스트 또는 튜플에 있는 원소들을 개별 인자로 분리해 차례대로 꺼내서 함수 인자에 대응시킨다. ex1) >>> a = [1,2,3] >>> print(a) [1, 2, 3] >>> print(*a) 1 2 3 a 리스트를 * 없이 출력했을 땐 리스트 전체를 리스트 기호와 함께 출력했고 *를 리스트명 앞에 포함했을 땐 원소만 출력했다. ex2) >>> def test(x, y): return x + y >>> a = (5, 8) # without * >>> test(a) Traceback (most recent call last): File "", line 1, in test(a) TypeError: test() missing 1 required positi.. 2021. 9. 1.
[Algorithm] 점근 표기법, 빅오 표기법(big-O notation) 점근 표기법 어떤 함수의 증가 양상을 다른 함수와의 비교로 표현하는 방법 이것을 시간 복잡도, 공간 복잡도를 표현할 수 있다. 시간 복잡도 : 알고리즘을 수행하는 데 걸리는 시간 효율성 공간 복잡도 : 알고리즘을 수행하는 데 걸리는 메모리 효율성 대표적 세 가지 유형의 점근 표기법 1. 빅 오(big-O) - 점근적 상한선(upper bound) 기준 2. 빅 오메가(big-Ω) - 점근적 하한선(lower bound) 기준 3. 빅 세타(big-θ) - 점근적 평균 기준 예를 들어 복잡한 함수 f(n)이 있을 때, 실행시간이 가장 빠른게 하한, 실행시간이 가장 느린게 상한이라고 보면 된다. 빅 오(big-O) -> f(n) = O(g(n)) f(n)의 복잡도는 최악의 경우라도 g(n)보다 작거나 같다는.. 2021. 8. 30.