🧩 1독 스터디 기록입니다. 스택(Stack) 먼저 입력한 데이터는 가장 나중에 꺼낼 수 있는 선입후출(FILO, First-In-Last-Out) 자료구조이다. '가장 최근의 값'이 필요할 때 활용할 수 있다. 파이썬에서는 스택 자료구조를 지원하지 않기 때문에 리스트로 구현해서 이용할 수 있다. 스택 ADT 연산 boolean isFull(): 스택에 들어있는 데이터 개수가 max_size인지 확인하여 boolean 값을 반환한다. 즉, 스택에 데이터가 가득 차 있으면 True, 그렇지 않다면 False를 반환한다. boolean isEmpty(): 스택이 비어있는지 확인하여 boolean 값을 반환한다. 즉, 데이터가 하나라도 있으면 False, 완전히 비어있으면 True를 반환한다. void pus..
Study
🧩 1독 스터디 기록입니다. 선언 일반적인 방법 arr = [0, 0, 0, 0, 0] arr = [0] * 5 리스트 생성자를 사용하는 방법 arr = list(range(5)) # 결과: arr = [0, 1, 2, 3, 4] List Comprehension을 사용하는 방법 List Comprehension이란, [expression for item in iterable if condition] 구조로 리스트를 간결하고 효율적으로 생성할 수 있는 문법이다. 코드의 가독성을 높이고 일반적인 for 루프보다 빠르게 실행할 수 있다. arr = [0 for _ in range(5)] # 결과: arr = [0, 0, 0, 0, 0] 시간 복잡도 맨 뒤에 삽입하는 경우 해당 위치에 바로 접근할 수 있고 다..
🧩 1독 스터디 기록입니다. Mutable vs Immutable 뮤터블 객체(Mutable Object) 객체 생성 후 수정할 수 있는 객체를 의미한다. 대표적으로 리스트, 딕셔너리, 셋이 있다. 리스트로 예를 들어 보자. (1) 리스트를 선언한다. my_list = [1, 2, 3, 4, 5] (2) 이 때 마지막 값을 6으로 변경해보면 다음과 같은 상태가 된다. my_list[4] = 6 단순히 index 4의 값을 5에서 6으로 수정한 것이다. 이처럼 참조한 곳은 동일하지만 값을 수정할 수 있으면 'mutable'이다. 이뮤터블 객체(Immutable Object) 이뮤터블 객체는 객체 생성 후 수정할 수 없는 객체를 뜻한다. 대표적으로 정수, 부동소수점, 문자열, 튜플이 있다. 정수를 예를 들어..
🧩 1독 스터디 기록입니다. 문제를 분석하여 시간 복잡도를 구한 다음 문제에 적합한 알고리즘을 찾을 수 있다. 시간 복잡도(time complexity) 알고리즘 수행 시간을 측정하는 방법에는 절대 시간을 측정하는 방법과 시간 복잡도를 측정하는 방법 두 가지가 있다. 절대 시간을 측정하는 방법은 프로그램 실행 환경에 따라 편차가 크기 때문에 코딩 테스트에서는 잘 활용하지 않는다. 시간 복잡도는 어떻게 측정하는가? 입력 크기에 대해 알고리즘이 시작한 순간부터 결괏값이 나올 때까지의 연산 횟수를 측정하면 된다. 그리고 이 측정 결과를 최선, 보통, 최악의 경우로 나눌 수 있다. 결괏값이 가장 빠르게 나오는 경우가 최선의 경우, 가장 늦게 나오는 경우가 최악의 경우이다. 즉 시간복잡도가 낮을 수록 알고리즘의 ..