Python
-
Python2 10일차 수업 정리_스택(Stack), 큐(Queue)Python 2024. 3. 20. 04:10
- 스택(Stack) - 큐(Queue) - 스택(Stack) 스택이란 데이터가 입력되는 순서대로 쌓고, 나중에 들어온 것부터 먼저 사용하는 자료구조 == 후입선출, LIFO(Last In First Out) 스택의 ADT (추상 자료형) - 맨 윗부분에 요소를 추가한다 - 맨 윗부분에 있는 요소를 알려준다 - 맨 윗부분에 있는 요소를 삭제하면서 알려준다 - 스택이 비어있는지 확인한다 - 스택을 깨끗이 비운다 스택의 주요함수 push() bottom 부터 차례대로 삽입된다. pop() top 부터 차례대로 삭제되며 top에 해당하는 값을 반환한다. peek() top에 있는 요소를 알려준다. clear() 스택에 있는 모든 요소를 삭제한다. 연결리스트를 통한 스택 구현 우선 연결리스트의 Node 클래스 ..
-
Python2 09일차 수업 정리_단일 원형 연결리스트 및 각각의 장단점, 재귀함수, 스택(Stack)Python 2024. 2. 22. 00:08
- 단일 원형 연결리스트 및 각각의 장단점 - 재귀함수 - 스택(Stack) - 단일 원형 연결리스트 및 각각의 장단점 단일 원형 연결리스트는 단순 연결리스트의 마지막 노드가 다시 첫번째 노드를 가르키도록 설정한 리스트의 형태가 원형인 구성 구성 환경 [데이터][다음주소값] -> [데이터][다음주소값] -> [데이터][첫번째 주소값] 단일원형 연결리스트 ADT 예제 특정 위치에 노드 삽입, 삭제 / 리스트가 비어있는지 확인, 크기 확인 / 전체 요소 내용 출력 class CircularLinkedList : # Node 클래스 선언 class Node : def __init__(self, data = None, link = None) : self.data = data self.link = link # 원..
-
Python2 08일차 수업 정리_연결리스트 ADT, 필요연산, 단일 원형 연결리스트Python 2024. 2. 20. 13:59
- 연결리스트 ADT, 필요연산 - 단일 원형 연결리스트 - 연결리스트 ADT, 필요연산 연결리스트 ADT - i번째 자리에 데이터 삽입 - i번째 자리에 데이터 삭제 - 데이터의 인덱스 반환 - 데이터 개수 반환 - 노드 총 개수 반환 - 연결리스트 비어있는지 확인 - 모든 노드 삭제 - 모든 노드의 데이터 출력 필요연산 insert(idx, x) x를 연결리스트의 idx번째 요소로 삽입(맨앞자리는 0) append(x) x를 연결리스트의 맨 뒤에 삽입 pop(idx) 연결리스트의 idx번째 요소를 삭제하면서 알림 remove(x) 연결리스트에서 처음으로 나타나는 x를 삭제 get(idx) 연결리스트의 idx번째 요소를 알려줌 index(x) 요소 x가 연결리스트의 몇번째 요소인지 알려줌 isEmpty..
-
Python2 07일차 수업 정리_알고리즘의 효율성과 시간 복잡도, 표기법(오메가, 세타, 빅오), 공간 복잡도, 연결리스트(Linked List)Python 2024. 2. 20. 00:30
- 알고리즘의 효율성 과 시간 복잡도 - 표기법(오메가, 세타, 빅오) - 공간 복잡도 - 연결리스트(Linked List) - 알고리즘의 효율성, 시간 복잡도 알고리즘의 효율성이란 계산 속도와 메모리 사용량으로 평가하는 것을 말한다. 이는 사용하는 자료구조에 따라 큰 영향을 받는다. 시간 복잡도란 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간을 의미한다. 같은 결과를 나타내는 소스라면 최대한 시간이 적게 걸리는 것이 좋은 코드이며, 효율적인 알고리즘 구성을 위해 시간 복잡도 측면을 고려하며 중요하게 본다. - 표기법(오메가, 세타, 빅오) 점근적 표기법으로 오메가 표기법 최상의 경우 ex) 정류장에 도착하자마자 버스가 온다를 가정하고 가장 빨리 목적지에 도착할 수 있지만 항상 이 상황을 기대할 수..
-
Python2 06일차 수업 정리_예외처리, 강제 예외, 자료구조와 알고리즘, 자료구조Python 2024. 2. 16. 17:57
- 예외처리 - 자료구조와 알고리즘 - 자료구조 - 알고리즘 - 예외처리 각종 오류를 처리하기 위한 것! 예외가 발생했을 때 프로그램이 정상적으로 종료될 수 있도록 다루는 행위 예외란 개발자가 직접 처리할 수 있는 간단한 문제 (에러코드를 읽을 수 있는) 오류는 개발자가 처리할 수 없는 복잡한 문제 (천체지변?) 예외처리는 왜 필요한가 발생된 문제로 인해 프로그램이 비정상적으로 종료되는 것을 막으며 사용자에게 발생한 문제 정보 전달을 위함 예외처리의 구조 try ~ except try : 예외가 발생할 수 있는 문장 # try 블록에서 예외가 발생하면 except : 예외가 발생시에 수행할 문장 # 해당하는 예외발생 시 처리 try ~ except ~ else ~ finally try : 예외가 발생할 ..
-
Python2 05일차 수업 정리_04일차 복습, 상속, 자식클래스, 상속 관계 구현, 자식클래스의 __init__(), 다형성 오버라이딩/예외처리Python 2024. 2. 15. 15:02
- 04일차 복습 - 상속 - 자식클래스 - 상속 관계 구현 - 자식클래스의 __init__() - 다형성 오버라이딩/예외처리 - 04일차 복습 인스턴스 변수와 클래스 변수 인스턴스 변수 클래스 변수 객체마다 다른값 인스턴스 접근 O 클래스 접근 X 공유하는 값 인스턴스 접근 O 클래스 접근 O 인스턴스 메소드 클래스 메소드 정적 메소드 인스턴스 호출 O O O 클래스 호출 X O O 데코레이터 X @classmethod @staticmethod 매개변수 self cls 매개변수가 없어도 가능 인스턴스 호출 => 객체명.메소드명() 클래스 호출 => 클래스명.메소드명() - 상속 이란 기존에 사용중인 클래스를 바탕으로 새로운 요소(메소드)를 추가해 클래스를 다시 정의한는 것==> 클래스의 확장 새로운 클..
-
Python2 04일차 수업 정리_03일차 복습, 클래스/객체, 생성자, 클래스 변수와 인스턴스 변수, 인스턴스/클래스/정적 메소드Python 2024. 2. 14. 13:24
- 03일차 복습 - 클래스와 객체 그리고 생성자 - 클래스변수와 인스턴스 변수 - 인스턴스 메소드, 클래스 메소드, 정적 메소드 - 03일차 복습 3일치가 비는 이유는 그동안 배웠던거 리뷰해서 그냥 안씀! 클래스 : 똑같은 무엇인가를 계속 만들어 낼 수 있는 설계도면 (like 붕어빵틀) 클래스 기본 개념 정리 클래스 여러 변수와 함수(메소드)를 묶어서 처리할 수 있는 것 (보따리 같은 너낌) 속성 데이터 속성(값, 변수) + 메소드(기능, 처리) - 클래스와 객체 그리고 생성자 클래스와 객체 객체는 클래스에 의해서 만들어진 결과물 (팥붕, 슈붕) - 객체는 지정한 속성값에 따라 고유한 특징을 갖게 됨 - 객체의 데이터 속성은 변수로 구현, 행위는 함수(메소드)로 구형 - 객체를 만들기 위해서 클래스가..
-
Python 10일차 수업 정리_모듈, 지역/전역변수, 클래스, 생성자(Constructor)Python 2024. 2. 6. 15:04
- 09일차 복습 - 모듈이란 - 변수의 종류 - 클래스 - 생성자(Constructor) - 09일차 복습 사용자 정의 함수란 사용자가 직접 만든 함수이며 반복되는 코드를 보다 쉽게 관리하기 위해 선언하여 사용한다. 함수 : 주어진 값에 정해진 처리를 하여 그 결과를 반환하는 기능 / 특정 기능을 실행하는 코드 def 함수명(매개변수,...) : 실행할 기능 return 반환값 - 모듈이란 모듈 : 파이썬 파일(.py) / 파이썬 파일 자체가 모듈이 될 수 있다. 언제든지 사용할 수 있는 변수나 함수 클래스를 모아놓은 파일을 의미한다. import : 다른 모듈/파일을 지정해서 읽어들이는/가져오는 처리를 하는 구문 1) 모듈의 사용 import 파일명 ==> 파일 안에 있는 모든 것을 사용하겠다! fr..