본문 바로가기
반응형
[Python] 알고리즘 개념5 퀴즈 - 동적 프로그래밍(DP) ✅ 퀴즈 1다음 중 동적 프로그래밍(DP)의 핵심 개념이 아닌 것은?최적 부분 구조 (Optimal Substructure)중복되는 부분 문제 (Overlapping Subproblems)그리디 알고리즘 (Greedy Algorithm)메모이제이션 (Memoization) ✅ 퀴즈 2다음 코드의 출력 결과는?def fibonacci(n, memo={}): if n in memo: return memo[n] if n 581321 ✅ 퀴즈 3동적 프로그래밍에서 "탑다운(Top-Down) 방식"이 의미하는 것은?반복문을 사용하여 문제를 해결하는 방식재귀 호출을 이용해 문제를 해결하고, 결과를 저장하여 중복 계산을 줄이는 방식가장 작은 부분 문제부터 해결하여 큰 문제를 해결하는 방식정렬된.. 2025. 2. 20.
[Python] 알고리즘 개념8 - 큐(Queue) 🚀 1. 큐(Queue)란?**큐(Queue)**는 데이터를 순서대로 저장하고 꺼내는 자료구조로, FIFO(First In, First Out, 선입선출) 원칙을 따릅니다.➡ 즉, 먼저 들어온 데이터가 먼저 나가는 구조입니다. 새로운 데이터는 뒤(rear)에서 추가(Enqueue) 되고, 기존 데이터는 앞(front)에서 제거(Dequeue) 됩니다. 💡 큐의 특징선입선출(FIFO): 먼저 추가된 데이터가 먼저 제거됨데이터가 한쪽 끝(뒤)에서 추가되고, 다른 한쪽 끝(앞)에서 제거됨배열(Array)과 달리, 중간 삽입/삭제가 어려움대기열, 작업 스케줄링, 네트워크 패킷 처리 등에 활용 📌 큐의 예시은행 창구 대기줄: 먼저 온 손님이 먼저 창구에서 서비스를 받음프린터 작업 대기열: 먼저 요청된 인쇄 .. 2025. 2. 20.
[Python] 알고리즘 개념7 - 스택(Stack) 🚀 1. 스택(Stack)이란?**스택(Stack)**은 데이터를 차곡차곡 쌓아 올리는 구조로, LIFO(Last In, First Out, 후입선출) 원칙을 따르는 자료구조입니다.➡ 즉, 가장 나중에 추가된 데이터가 가장 먼저 제거되는 구조입니다. 💡 스택의 특징후입선출(LIFO): 마지막에 들어온 데이터가 가장 먼저 나감한쪽 끝에서만 데이터 추가(push)와 삭제(pop)가 이루어짐재귀 호출, 괄호 검사, 실행 취소(Undo) 기능 등에 활용 📌 스택의 예시웹 브라우저의 뒤로 가기(Back) 버튼: 최근 방문한 페이지부터 먼저 나옴텍스트 편집기의 실행 취소(Undo) 기능: 가장 최근의 작업부터 차례대로 취소함수 호출 스택: 현재 실행 중인 함수가 종료되면, 마지막 호출된 함수부터 반환됨➡ 스택.. 2025. 2. 20.
[Python] 알고리즘 개념6 - 연결 리스트 (Linked List) 🚀 1. 연결 리스트란?**연결 리스트(Linked List)**는 데이터를 저장하는 노드들이 연결된 형태의 자료구조입니다.배열과 달리 연속된 메모리 공간이 아니라, 각 데이터(노드)가 다음 데이터(노드)의 위치를 기억하는 방식으로 구성됩니다. 즉, 각 노드는 자신과 연결된 다음 노드를 가리키는 포인터를 포함합니다. 💡 연결 리스트의 특징데이터가 연속된 메모리 공간에 위치하지 않아도 됨 → 삽입/삭제가 유리각 노드가 다음 노드를 가리키는 포인터(링크)를 포함중간에 데이터를 추가하거나 삭제하는 것이 빠름(O(1)~O(n))특정 위치의 데이터를 찾는 속도는 느림(O(n))➡ 연결 리스트는 삽입/삭제가 자주 발생하는 경우에 유용하며, 인덱스를 통해 직접 접근이 필요한 경우에는 배열이 더 적합합니다. 🚀 .. 2025. 2. 20.
[Python] 알고리즘 개념5 - 동적 프로그래밍 (DP) 🚀 1. 동적 프로그래밍(DP)이란?**동적 프로그래밍(Dynamic Programming, DP)**은 큰 문제를 작은 문제로 나누어 해결하는 최적화 기법입니다. 쉽게 말해, 같은 계산을 여러 번 반복하지 않고, 한 번 계산한 결과를 저장하여 다시 활용하는 기법입니다. 💡 DP의 특징:부분 문제 최적화: 작은 문제를 먼저 해결한 후, 큰 문제를 해결합니다.중복 계산 방지: 이미 해결한 문제는 저장하여 다시 계산하지 않습니다.재귀(Top-Down) 또는 반복(Bottom-Up) 방식 사용 ➡ 대표적인 DP 문제피보나치 수열최단 경로 문제배낭 문제 (Knapsack Problem)LIS (최장 증가 부분 수열) 🚀 2. DP의 핵심 개념DP를 이해하기 위해 가장 중요한 개념 두 가지: ✅ 1) 최적.. 2025. 2. 20.
[Python] 알고리즘 개념2 추가 퀴즈 - Big-O 표기법 심화 📌 퀴즈 개요이 퀴즈는 "Big-O 표기법 심화" 개념을 더욱 깊이 이해하기 위한 추가 문제들로 구성되어 있습니다. 각 문제의 답을 선택하거나 직접 작성해보세요! 🧩 1. 개념 이해 문제 ❓ 문제 1Big-O 표기법에서 O(n log n) 시간복잡도를 가지는 알고리즘은?이진 탐색퀵 정렬선형 탐색버블 정렬 ❓ 문제 2Big-O 표기법에서 가장 효율적인 알고리즘은?O(n)O(n log n)O(n^2)O(1) 🧩 2. 실전 문제 ❓ 문제 3다음 코드에서 log_search(n) 함수의 시간복잡도는?def log_search(n): while n > 1: n = n // 2O(n)O(n log n)O(log n)O(1) ❓ 문제 4다음 코드의 시간복잡도를 올바르게 분석한 것은?for .. 2025. 2. 20.
[Python] 알고리즘 개념1 추가 퀴즈 - 시간복잡도 & 공간복잡도 📌 퀴즈 개요이 퀴즈는 "시간복잡도 & 공간복잡도" 개념을 더욱 깊이 이해하기 위한 추가 문제들로 구성되어 있습니다. 각 문제의 답을 선택하거나 직접 작성해보세요! 🧩 1. 개념 이해 문제 ❓ 문제 1다음 중 공간복잡도가 가장 낮은 연산은?크기가 n인 리스트를 선언하고 초기화하기크기가 n인 리스트를 정렬하기크기가 n인 리스트를 한 번 순회하기크기가 n인 리스트를 사용하지 않고 단일 변수로 계산하기 ❓ 문제 2Big-O 표기법에서 가장 비효율적인 시간복잡도는?O(n)O(log n)O(n^2)O(n!) 🧩 2. 실전 문제 ❓ 문제 3다음 코드에서 get_sum(n) 함수의 시간복잡도는?def get_sum(n): total = 0 for i in range(n): total .. 2025. 2. 20.
[Python] 알고리즘 개념4 퀴즈 - 재귀와 백트래킹 📌 퀴즈 개요이 퀴즈는 "재귀와 백트래킹" 개념을 이해하고 있는지 확인하기 위한 문제들로 구성되어 있습니다. 각 문제의 답을 선택하거나 직접 작성해보세요! 🧩 1. 개념 이해 문제 ❓ 문제 1재귀 함수가 반드시 가져야 하는 요소는?반복문종료 조건글로벌 변수정렬된 입력 데이터 ❓ 문제 2다음 코드의 실행 결과는?def func(n): if n == 0: return 1 return n * func(n - 1)print(func(3))6931 🧩 2. 실전 문제 ❓ 문제 3다음 코드에서 fibonacci(n) 함수의 시간복잡도는?def fibonacci(n): if n O(n)O(n log n)O(2^n)O(1) ❓ 문제 4백트래킹 기법을 사용하면 탐색 과정에서 어떤 최.. 2025. 2. 20.
[Python] 알고리즘 개념4 - 재귀와 백트래킹 🚀 1. 재귀 함수란?재귀는 함수가 자기 자신을 부르는 것을 말해요. 예를 들어, 거울을 거울에 비추면 끝없이 반복되는 모습을 본 적 있나요? 재귀 함수도 비슷해요. 함수가 자기 자신을 계속 부르지만, 언젠가는 멈춰야 해요. 이걸 "기본 종료 조건 (Base Case)" 이라고 해요.def 인사(n): if n == 0: # 종료 조건 return print("안녕!") 인사(n - 1) # 자기 자신을 호출인사(3)💡 이해하기 쉽게 설명하자면: 친구에게 "안녕!"이라고 말하고, 그 친구도 또 다른 친구에게 "안녕!"이라고 말하는 방식이에요. 하지만 친구가 3명까지만 전달하고 더 이상 말하지 않도록 멈춰야 해요. 이걸 "기본 종료 조건(Base Case)" 이라고 부릅.. 2025. 2. 20.
[Python] 알고리즘 개념2 퀴즈 - Big-O 표기법 심화 📌 퀴즈 개요이 퀴즈는 "Big-O 표기법 심화" 개념을 이해하고 있는지 확인하기 위한 문제들로 구성되어 있습니다. 각 문제의 답을 선택하거나 직접 작성해보세요!  🧩 1. 개념 이해 문제 ❓ 문제 1Big-O 표기법에서 가장 효율적인 알고리즘 복잡도는?O(n^2)O(log n)O(n)O(n!) ❓ 문제 2다음 코드의 시간복잡도는?for i in range(n): for j in range(n): print(i, j)O(n)O(n log n)O(n^2)O(log n)  🧩 2. 실전 문제 ❓ 문제 3다음 코드에서 arr.sort()의 시간복잡도는?arr = [3, 1, 4, 1, 5, 9]arr.sort()O(n)O(n log n)O(n^2)O(1) ❓ 문제 4다음 코드의 실행 시.. 2025. 2. 20.
[Python] 알고리즘 개념1 퀴즈 - 시간복잡도 & 공간복잡도 📌 퀴즈 개요이 퀴즈는 "시간복잡도 & 공간복잡도" 개념을 이해하고 있는지 확인하기 위한 문제들로 구성되어 있습니다. 각 문제의 답을 선택하거나 직접 작성해보세요!  🧩 1. 시간복잡도 관련 문제 ❓ 문제 1다음 코드의 시간복잡도는 얼마일까요?for i in range(n): print(i)O(1)O(n)O(n^2)O(log n) ❓ 문제 2다음 코드의 시간복잡도를 올바르게 분석한 것은?for i in range(n): for j in range(n): print(i, j)O(n)O(n^2)O(log n)O(n!)  🧩 2. 공간복잡도 관련 문제 ❓ 문제 3다음 코드의 공간복잡도는 얼마일까요?arr = [0] * nO(1)O(n)O(n^2)O(log n) ❓ 문제 4다음 코드.. 2025. 2. 20.
[Python] 알고리즘 개념3 퀴즈 - 배열과 리스트 📌 퀴즈 개요이 퀴즈는 "배열과 리스트" 개념을 이해하고 있는지 확인하기 위한 문제들로 구성되어 있습니다. 각 문제의 답을 선택하거나 직접 작성해보세요!  🧩 1. 개념 이해 문제 ❓ 문제 1배열(Array)과 리스트(List)의 주요 차이점이 아닌 것은?배열은 연속된 메모리를 사용하지만, 리스트는 동적 메모리를 할당한다.배열은 같은 타입의 데이터만 저장할 수 있지만, 리스트는 다양한 타입을 저장할 수 있다.리스트는 정적 크기를 가지며, 크기를 변경할 수 없다.배열은 크기 변경이 어렵지만, 리스트는 크기 조절이 가능하다. ❓ 문제 2Python 리스트의 시간복잡도가 O(1) 이 아닌 연산은?리스트의 마지막에 요소 추가 (append())리스트의 특정 위치에 요소 삽입 (insert())리스트의 길이 .. 2025. 2. 20.
반응형