본문 바로가기

Python 문법 정복하기

[Python] Stack (LIFO) '스택'이란 자료 구조는 "빨래통"을 떠올리면 된다. 가장 위에서만 빨래를 빼거나 넣을 수 있는 빨래통! Swift 언어에서의 스택은 어떠한지 코드 예시를 보면서 비교해 보자. Stack - 한쪽 끝으로만 자료를 넣고 뺄 수 있는 자료 구조 빨래통의 특징: Last In First Out = LIFO 가장 처음에 넣은 빨래는? 가장 늦게 나온다. 가장 마지막에 넣은 빨래는? 가장 빨리 나온다. push, pop, is_empty def test_stack(): stack = Stack() stack.push(1) stack.push(2) stack.push(3) stack.push(4) stack.push(5) assert stack.pop() == 5 assert stack.pop() == 4 asse.. 더보기
[Python] 알고리즘 기초: 공간 복잡도 공간 복잡도란? 입력값과 문제를 해결하는 데 걸리는 공간과의 상관관계 입력값이 2배로 늘어났을 때 문제를 해결하는 데 걸리는 공간은 몇 배로 늘어나는지를 보는 것 입력값이 늘어나도 공간이 덜 늘어나는 알고리즘이 좋은 알고리즘! ▼ 시공간 복잡도를 이해하기 위한 알파벳 찾기 문제 문제 설명 a 부터 z 까지, 주어진 문자열에서 알파벳이 포함되어 있을 경우 처음 등장하는 인덱스를 반환하는 프로그램을 작성하세요. 포함되어있지 않을 경우 -1을 반환하면 됩니다. ※ 아스키(ascii) 코드 다루기 import string # 1. 알파벳을 바로 꺼내오는 방법 print(string.ascii_lowercase) # 2. ord 연산 print(ord('a'), ord('A'), ord('@')) # 97 65 .. 더보기
[Python] 알고리즘 기초: 시간 복잡도 점근 표기법의 두 가지 종류, O(N), Ω(1)와 시간 복잡도의 개념에 대해 이해해 봅니다. 1. 빅오(Big-O) 표기법 2. 빅오메가(Big-Ω) 표기법 3. 시간 복잡도 - 입력값이 늘어나도 걸리는 시간이 덜 늘어나는 알고리즘이 좋은 알고리즘! 점근 표기법이란? → 알고리즘 "효율성"을 평가하는 방법 = 알고리즘의 성능을 수학적으로 표기 1. 빅오(Big-O) 표기법 : O(N) 최악의 성능이 나올 때 어느 정도의 연산량이 걸릴것인가 Q. 다음과 같은 숫자로 이루어진 배열이 있을 때, 이 배열 내에 특정 숫자가 존재한다면 True, 존재하지 않다면 False 를 반환하는 프로그램을 작성하세요. arr = [3, 5, 6, 1, 2, 4] is_number_exist(3, arr) # True is.. 더보기
[Python] Basic (2) 기초문법의 내맘대로 마지막! 조건문과 반복문을 복습해 봅니다. 아래 링크에서 최근 공부를 시작한 Swift 언어와 비교하며 두 언어의 차이점도 알아봅니다. Swift 조건문과 반복문 보러가기 #1. 조건문 #2. 반복문 #3. 클래스 1. 조건문 if / else 로 구성! def is_adult(age): if age > 20: print('성인입니다') # 조건이 참이면 성인입니다를 출력 else: print('청소년이에요') # 조건이 거짓이면 청소년이에요를 출력 is_adult(30) # 무엇이 출력될까요? 2. 반복문 파이썬에서의 반복문은, 리스트의 요소들을 하나씩 꺼내쓰는 형태 → 무조건 리스트와 함께 쓰인다. fruits = ['사과','배','감','귤'] for fruit in fruit.. 더보기
[Python] Basic (1) 23년 하반기에 공부했던 Python 기초 문법을 하나씩 둘씩 정리하며 복습해 봅니다. 아자아자 다시 시작이다앗! #1. 변수 & 기본연산 #2. 자료형 - 숫자,문자형 / 리스트형 / Dictionary형 / Dictionary형과 List형의 조합 #3. 함수 - 함수의 정의 / 함수의 응용 #1 변수 & 기본연산 a = 3 # 3을 a에 넣는다 b = a # a를 b에 넣는다 a = a + 1 # a+1을 다시 a에 넣는다 num1 = a*b # a*b의 값을 num1이라는 변수에 넣는다 num2 = 99 # 99의 값을 num2이라는 변수에 넣는다 # 변수의 이름은 마음대로 지을 수 있음! # 진짜 "마음대로" 짓는 게 좋을까? var1, var2 이렇게? ※ 모든 프로그래밍 언어가 그렇겠지만 변.. 더보기