본문 바로가기

Programming/[Data structure & Algorithm]

(2)
[Python] 알고리즘의 시간 복잡도 알고리즘 평소 어느 목적지로 이동을 할 때 우리는 자연스럽게 최단거리, 최소시간을 생각하며 움직인다. 10이라는 시간으로 갈 수 있는 목적지인데 굳이 100의 시간을 들여 다른 길로 가려하지 않는다. 프로그래밍에서는 목적지로 가는 수많은 과정(루트)을 알고리즘이라 말할 수 있으며, 알고리즘의 실행 시간(처리 시간)을 최소화 하기 위한 노력을 알고리즘의 시간복잡도를 개선한다라고 표현할 수 있다. 즉, 최소한의 시간과 공간을 이용해 문제를 해결하는 과정이 좋은 알고리즘이라고 할 수 있다. 시간 복잡도와 점근 표기법(Big - O) 시간 복잡도는 간단히 말해 알고리즘이 동작하는데 시간이 얼마나 걸리는 지 수치화하여 표현한 것이다. Big - O 표기법은 알고리즘의 시간복잡도를 단순화 할 때 사용하는 표기법으로..
절차적 프로그래밍과 객체 지향 프로그래밍 코드를 짤 때 어떤 방식으로 코딩을 하는지에는 두 가지 패러다임이 있다. 프로그래밍을 시작하기 앞서 절차적 프로그래밍(Procedural Progamming, PP)과 객체지향 프로그래밍(Object Oriented Programming, OOP)에 대해 가볍게 알아보자. 절차적 프로그래밍(Procedural Programming) 흔히 절차 지향으로 알고 있는 프로그래밍 방법이다. 하지만 애초에 프로그래밍은 코드 연산을 절차적으로 수행한다는 의미인데 절차 지향적인 방법으로 프로그래밍을 한다는 것은 말에 어폐가 있다. 그렇다면 절차적 프로그래밍은 무슨 의미인가? 간단한 예시 코드로 두 방법의 차이를 느껴보자. 사용언어 : Python3 """ 장바구니 기능 구현 시나리오 1. 고객이 사과를 장바구니에 추..