Python/Python 기초
[파이썬 기초] 알고리즘 - 재귀, 하노이의 탑
🔍 재귀 알고리즘이란? - 나 자신을 다시 호출하는 알고리즘 1) 재귀 알고리즘 def recusion(num): if num > 0: print("*" * num) return recusion(num-1) else: return 0 recusion(10) ----------------------------- ********** ********* ******** ******* ****** ***** **** *** ** * 2) 팩토리얼 def factorial(num): if num > 0: return num * factorial(num-1) else: return 1 print(f'factorial(4) : {factorial(4)}') ----------------------------------..
[파이썬 기초] 알고리즘 - 최빈값, 근사값, 평균
🗝 최빈값 - 빈도 수가 가장 많은 데이터 - 최대값 알고리즘을 이용하여 배열을 새로 만들고, 값이 나올 때마다 각 인덱스에 +1 class MaxAl: def __init__(self,arr): self.arr = arr self.max = 0 self.maxNumIdx = 0 def setMax(self): self.max = self.arr[0] self.maxIdx = 0 for i, n in enumerate(self.arr): if self.max < n: self.max = n self.maxIdx = i def getMax(self): return self.max def getMaxIdx(self): return self.maxIdx import random as rd nums = [rd...
[파이썬 기초] 알고리즘 - 최대값, 최소값
🔍 알고리즘 사용 이유 - 해당API가 존재하지만, 작동원리를 알아보기 위함. 🗝 최대값 - 자료 구조에서 가장 큰 값을 찾는다. import random as rd class MaxAl: def __init__(self, array): self.arr = array self.maxNum = 0 def getMax(self): self.maxNum = self.arr[0] for i in self.arr: if self.maxNum < i: self.maxNum = i return self.maxNum array = rd.sample(range(1,100), 10) print(array) maxInt = MaxAl(array) result = maxInt.getMax() print(f'max = {re..
[파이썬 기초] 알고리즘 - 정렬
🔍 정렬 알고리즘 - 파이썬에는 내장 정렬 메소드 sort 가 있지만, 코딩을 하다보면 내장 메소드로만은 해결 불가능한 경우가 있다. - 정렬 알고리즘은 시간 복잡도에 따라 성능을 좌우되며 성능이 좋을수록 구현 방법이 어려워진다. 1) O(n²)의 시간 복잡도 (정렬할 자료의 수가 늘어나면 제곱에 비례해서 증가) 버블 정렬(Bubble Sort) 선택 정렬(Selection Sort) 삽입 정렬(Insertion Sort) 2) O(n log n)의 시간 복잡도 병합 정렬(Merge Sort) 퀵 정렬(Quick Sort) 🗝 버블 정렬(Bubble Sort) - 처음부터 끝까지 인접하는 인덱스의 값을 순차저그로 비교하면서, 큰 숫자를 가장 끝으로 옮김. - 거품 정렬은 안정 정렬이며, 개인적으로 구현 ..
[파이썬 기초] 알고리즘 - 검색,순위
🔍 알고리즘이란? - 문제를 풀기 위한 일련의 절차나 방법 🗝 선형 검색 - 선형(일렬)으로 나열되어 있는 데이터를 순차적으로 스캔하며 원하는 값을 찾는다. datas = [1,3,6,7,8,4,9,11,5] searchData = int(input('찾으려는 데이터 입력:')) searchResultIdx = -1 n = 0 while True: if n == len(datas): searchResultIdx = -1 break elif datas[n] == searchData: searchResultIdx = n break n += 1 print(f'searchResultIdx: {searchResultIdx}') 🗝 보초법 - 마지막 인덱스에 찾으려는 값을 추가해서 찾는 과정을 간략화한다. data..
[파이썬 기초] 딕셔너리(Dictionary)
🔍 딕셔너리(Dictionary) - key와 value를 이용하여 자료를 관리하며, {} 로 선언한다. - key와 value에는 숫자, 문자(열), 논리형 뿐만 아니라 컨테이너 자료형도 올 수있다. - 단 key에 immutable(변경불가)값은 올 수 있지만, mutable 값은 올 수 없다. students = {'s1':'김형식', 's2':'김종국', 's3':'박중호', 's4':'유재석', 's5':'강호동' } cf. immutable & mutable immutable : 수정 불가능한 객체. ex) 정수, 실수, 문자열, 튜플 mutable : 수정 가능한 객체. ex) 리스트와 딕셔너리 🗝 딕셔너리 조회 - key를 이용하여 value를 조회 - 존재하지 않은 키로 조회 시 에러 발..
[파이썬 기초] 튜플(Tuple)
🔍 튜플(Tuple) - 리스트([])와 비슷하지만, 한번 선언이 되면 아이템 변경 불가(수정, 삭제 등) - ()을 사용해서 선언하지만 생략이 가능하다. - 튜플 안에 또 다른 자료형 데이터를 저장할 수 있다. myNum1 = (1,3,6,8,9) myNum2 = 4,6,2,7,8 🗝 tuple의 아이템 조회 - 인덱스를 이용하여 조회 가능 students = ('홍길동', '박찬호', '이용규', '박승철') students[2] → '이용규' 🗝 in, not in 키워드 - 아이템의 존재 유/무 확인(True/False) - 문자열에서도 사용 가능 예시) if '강호동' in students: → False import random userNum = int(input('원하는 숫자 입력:')) ..
[파이썬 기초] 리스트(list)
🔍 자료구조 - 컨테이너 자료형*의 데이터 구조 - 대표적으로 리스트(List), 튜플(Tuple), 딕셔너리(Dic), 세트(Set)가 있음 - iterable 객체 : 하나 이상의 항목이 포함되어 있는 자료구조에서 데이터를 차례대로 꺼낼 수 있는 객체 List (데이터를 바꿀 수 있음) student = ['홍길동', '박찬호', '이용규', '박승철'] Tuple(한번 데이터가 정해지면 바꿀 수 없음) jobs = ('의사', '속기사', '전기기사', '감정평가사', '회계사') Dic(key값에 해당하는 Value가 존대 scores = {'kor':88, 'eng':91, 'mat':95, 'sci':90, 'his':100} Set(중복 데이터가 존재하지 않음.) allSale = {100,..