목록파이썬기초 (7)
욤미의 개발일지
sorted( ) 파이썬에서는 기본 정렬 라이브러리인 sorted() 함수를 제공한다. 병합 정렬과 삽입 정렬의 아이디어를 더한 방식으로 만들어졌다. 병합정렬은 일반적으로 퀵 정렬보다는 느리지만 최악의 경우에도 시간 복잡도 O(NlogN)을 보장한다. iterable 객체(리스트, 집합 자료형, 딕셔너리 자료형) 등을 입력받아서 정렬된 리스트를 반환한다. 집합 자료형이나 딕셔너리 자료형을력받아도 반환되는 결과는 리스트 자료형이다. result = sorted(array) # 오름차순 정렬 result = sorted(array, reverse=True) # 내림차순 정렬 sort( ) 리스트의 메소드 리스트를 정렬된 상태로 변경 array.sort() # 오름차순 정렬 array.sort(reverse=..

재귀 함수(Recursive Function)란 자기 자신을 다시 호출하는 함수를 의미한다. 문자열을 무한히 출력하는 예제 def recursive_function(n): print('재귀함수', n) recursive_function(n+1) recursive_function(1) 파이썬에서는 최대 재귀 깊이 제한이 있기때문에 위의 코드를 실행하면 어느 정도 출력하다 'maximum recursion depth exceeded while callilng a Python object'라는 오류 메시지가 출력되고 프로그램이 종료될 수 있다. 함수가 재귀적으로 호출되게 되면 컴퓨터 시스템의 스택에 함수가 반복적으로 쌓여서 제일 위에 쌓인 것부터 처리된다. 컴퓨터 메모리는 한정된 자원(크기)이기 때문에 무한 ..
[Lecture 9] Advanced Data Structure 우선순위 큐, 스택, 큐, linked list, 기본 값이 있는 dictionary 등 좀 더 강력한 자료구조를 사용하고 싶을 때 Stack FILO 구조 기존 list를 활용한다. 동적 배열이기 때문에 push와 pop이 O(1) append: push 연산 / pop: pop 연산 Queue FIFO 구조 list로 구현할 수는 있지만 처음 위치에 삽입/삭제하는 경우 O(N)이 걸림 linked list 구조를 활용해야함 tail에서 데이터 추가, head에서 데이터 삭제 double linked list는 양방향으로 접근 가능한 데이터 구조 - Deque 중간 random access가 어렵다. head, tail에서 원하는 위치로 ..
[Python] Split - 문자열을 리스트로 만들기 split함수는 리스트를 특정 구분자로 구분하여 문자열로 변환해주는 join 함수와는 반대의 기능을 한다고 할 수 있다.문자열을 일정한 규칙으로 잘라서 리스트로 만들어 주는 함수이다. 사용 방법문자열.split()문자열.split('구분자')문자열.split('구분자', 분할횟수)문자열.split(sep='구분자', maxsplit=분할횟수) 위와 같이 다양한 형태가 있는데, 흔히 첫번째 형태를 가장 많이 사용한다. 그리고 네 번째가 가장 정확한 형태라고 할 수 있는데 이는 어떤 문자열을 구분자를 기준으로 분할횟수만큼 잘라서 리스트로 만들어 주는 것을 말한다.각 파라미터에 대해 자세히 설명하면,sep'sep=' 생략 가능 e.g. 문자열.s..
[Python] Join - 리스트를 문자열로 만들기 파이썬 내장 함수 join을 이용해 리스트를 문자열로 만들 수 있다. join 함수는 리스트(list)를 특정 구분자(separator)로 구분하여 문자열(string)의 형태로 변환해주는 함수다. * 이 때, 문자열(str) 타입이 아닌 다른 타입의 데이터가 리스트에 있다면 에러가 발생한다. 사용 방법 '구분자'.join(리스트명) 위와 같은 형태로 리스트를 문자열로 만들 수 있다. 예시 array = ['apple','banana','grape','cherry'] ' '.join(array) # 빈칸으로 리스트를 연결 # apple banana grape cherry '-'.join(array) # -로 리스트를 연결 # apple-banana-g..

[Python] 2차원 리스트 - 인덱싱, 선언하는 방법 리스트 형에서는 여러 데이터를 2차원 행렬 구조(테이블 형태)로 저장할 수도 있다. 다음과 같이 2차원 리스트를 선언할 수 있는데, 아래 예시의 경우 2차원 리스트가 3행, 4열로 데이터가 구조화 되어있다고 볼 수 있다. e = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]] # e = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]] 이렇게 선언해도 됨 print(e[1]) # [5, 6, 7, 8], 리스트 e에 인덱스 1에 위치한 값 print(e[0][3]) # 4 #0행(1), 3열(4) 코딩 테스트에서 2차원 리스트 선언하는 방법 코딩 테스트 문제를 풀다보면 2차원 리스트..