코드잇
-
알고리즘: 시간 복잡도(Time complexity)와 공간 복잡도(Space complexity)알고리즘 2020. 7. 1. 21:53
1. 시간 복잡도란? 시간 복잡도란 문제를 해결하는데 걸리는 시간과 입력함수의 관계를 나타내는 것입니다. 쉽게 말해서 문제 해결에 시간이 얼마나 걸리냐? 를 정량적으로 나타낸것입니다. 그래서 보통 시간 복잡도가 적은 알고리즘을 빠른 알고리즘 시간 복잡도가 큰 알고리즘을 느린 알고리즘이라고 합니다. 알고리즘의 시간복잡도 표기법은 점근표기법(Big-O)을 통해서 나타내는데 오늘 여러가지 경우의 시간 복잡도과 공간 복잡도를 알아보겠습니다. 주로 O(1), O(lgn), O(n), O(nlgn), O(n2^2), O(n^3) 정도가 많이 사용되고, 나머지는 흔치 않습니다. def my_print(my_list): print(my_list) my_print([2, 3]) my_print([2..
-
알고리즘: 선형탐색 알고리즘(Linear search algorithm)과 이진탐색 알고리즘(binary search algorithm)알고리즘 2020. 7. 1. 15:26
탐색 알고리즘이란 방대한 데이터에서 목적에 맞는 데이터를 찾아내기 위한 알고리즘입니다. 여러가지 탐색 알고리즘이 있지만 대표적으로 선형탐색 알고리즘과 이진탐색 알고리즘에 대해서 공부하겠습니다. 두 알고리즘 다 정렬되어있다는 가정하에 알아보겠습니다. 1. 선형탐색 알고리즘(Linear search algorithm) 순서대로 하나씩 값을 찾아보는 알고리즘입니다. 원하는 값을 발견하면 더이상 탐색하지 않습니다. def linear_search(element, some_list): # some_list의 안에 element가 있으면 인덱스를 리턴 for i in range(0, len(some_list)): if some_list[i] == element: return i # 왼쪽 값부터 시작해서 하나씩 비교..
-
Python: 파이썬으로 로또를 만들어보자!Python 2020. 6. 30. 15:43
로또를 만들기 전에 규칙을 정하고 갑시다. 1. 사용자는 1부터 45까지의 숫자 중 6개의 랜덤하고 중복되지 않는 숫자를 뽑는다. 2. 당첨번호는 6개의 일반 당첨 번호와 1개의 보너스 당첨 번호로 이루어진다. 마찬가지로 7개의 번호는 1부터 45까지의 숫자로 중복되지 않게 뽑으며, 6개의 일반 당첨번호는 정렬되게 보너스 번호는 정렬과 상관없이 마지막에 오도록 한다! 예) [3, 10, 12, 38, 39, 45, 17] [4, 10, 11, 29, 30, 42, 32] 3. 당첨 상금은 다음과 같은 규칙을 따릅니다. 1) 내가 뽑은 번호 6개와 일반 당첨 번호 6개 모두 일치 (10억 원) 2) 내가 뽑은 번호 5개와 일반 당첨 번호 5개 일치, 그리고 내 번호 1개와 보너스 번호 일치 (5천만 원) ..
-
Python: with open() 파일 읽기(read), 쓰기(write), 덧붙히기(append), strip(), split() 함수란?Python 2020. 6. 30. 14:34
파일을 읽고 쓰기전에 필수적으로 알아야 하는 함수가 있습니다. 그래서 그 함수들부터 먼저 알아보도록 해보겠습니다. 1. strip() strip() 메서드는 앞뒤의 공백, 즉 앞뒤의 모든 화이트 스페이스들을 없애주는 기능을 합니다. print(" \n hello Panda \n \t ") print(" \n hello Panda \n \t ") print("-----------------------------------------") print(" \n strip hello Panda \n \t ".strip()) print(" \n strip hello Panda \n \t ".strip()) hello Panda hello Panda -------------------------------------..
-
Python: 모듈 import하고 표준 라이브러리 모듈 사용해보기! (feat. math, random, datetime)Python 2020. 6. 30. 00:37
1. 내가 만든 모듈 import하기 project 안에 calculator.py 라고 해서 계산기능을 넣은 py 파일을 만들어 줍니다. def add(x, y): # 덧셈 return x + y def subtract(x, y): # 뺄셈 return x - y def multiple(x, y): # 곱셈 return x * y def divide(x, y): # 나눗셈 return x / y 이제 같은 디렉토리 안에 있는 다른 py파일에 import 파일명을 해줍니다. import calculator x = 10 y = 5 print(calculator.add(x, y)) print(calculator.subtract(x, y)) print(calculator.multiple(x, y)) 단, cal..
-
Python: 에일리어싱(Aliasing)Python 2020. 6. 29. 23:27
에일리어싱(Aliasing)에 대해 공부하기전에 alias의 뜻부터 알고 가시죠! alias는 '가명'이라는 뜻을 가지고 있는데 이는 쉽게 말해 파이썬에서 변수 = 객체 일때, 객체에 변수라는 가명을 정해준다고 생각하시면 됩니다. 이렇게 객체와 변수의 연관짓는 것을 참조(reference)라고 합니다. 예를 들어서 여기 이 코드를 보시면 x = 10 y = x y = 5 print(x) print(y) 10 5 10이라는 상수에 x라는 가명을 정해주고, 다시 y는 x라는 가명이 정해진 상수 10에 가명을 정해줍니다. 그리고 이후, 5라는 상수에 y라는 가명을 정해주면서 y는 5를 참조해주게 됩니다. 하나 이상의 참조를 가진 객체는 한 개 이상의 이름을 갖게 되어서 객체가 에일리어스(aliased)되었다고..
-
Python: 딕셔너리(Dictionary) 사전 기능!Python 2020. 6. 29. 22:50
딕셔너리(dictionary)는 파이썬에서 가장 많이 쓰이는 기능 중 하나입니다. key 값과 value 값이 한 쌍을 이룹니다. 딕셔너리 말그대로 사전을 예로 들면 영어 사전에는 영어단어: 한국어 이런 형태로 되어 있는데 여기서 영어단어가 key, 한국어를 value라고 생각하시면 됩니다. # dictionary 단어장 만들기 vocab = { 'sanitizer': '살균제', 'ambition': '야망', 'conscience': '양심', 'civilization': '문명' } print(vocab) # 새로운 단어 추가하기 vocab['privilege'] = '특권' vocab['principle'] = '원칙' print(vocab) {'sanitizer': '살균제', 'ambition..