파이썬
[파이썬 기초] 아스키 코드 최대값 찾기
🔍 문제 무작위로 받은 10개의 아스키 코드 중 최대값 찾기 🗝 사용함수 ord() : 특정한 한 문자를 아스키 코드로 변환 chr() : 아스키 코드 값을 문자로 변환(10, 16진수 사용 가능) 🖥 실행 import random as rd class MaxAl: def __init__(self,cs): self.chars = cs self.maxChar = 0 def getMax(self): self.maxChar = self.chars[0] for i in self.chars: if ord(self.maxChar) < ord(i): self.maxChar = i return self.maxChar array = [] for i in range(9): t = rd.randint(1,128) array..
[파이썬 기초] 알고리즘 - 최대값, 최소값
🔍 알고리즘 사용 이유 - 해당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..
[정렬] 1부터 100사이 난수 정렬(선택 정렬)
🔍 문제 1부터 100사이의 난수 10개를 오름차순, 내림차순으로 정렬(선택 정렬 사용) 🗝 사용함수 🖥 실행 1) 모듈 class SelectionSort: def __init__(self, arr, asc=True): self.arr = arr self.isAsc = asc def setAsc(self, flag): self.isAsc = flag def setSelect(self): for i in range(len(self.arr)-1): minIdx = i if self.isAsc: for j in range(i+1, len(self.arr)): if self.arr[minIdx] > self.arr[j]: minIdx = j self.arr[i], self.arr[minIdx] = self.a..
[정렬] 1부터 100사이 난수 정렬(삽입 정렬)
🔍 문제 1부터 100까지 난수 10개를 뽑아 정렬하고 최대값과 최소값을 출력(삽입 정렬 사용) 🗝 사용함수 🖥 실행 1) 클래스 class SortNum: def __init__(self, arr, asc=True): self.array = arr self.isAsc = asc def isAscending(self, flag): self.isAsc = flag def setSort(self): for i1 in range(1, len(self.array)): i2 = i1 -1 cNum = self.array[i1] if self.isAsc: while self.array[i2] > cNum and i2 >= 0: self.array[i2+1] = self.array[i2] i2 -= 1 else: w..
[정렬] 키순대로 배열
🔍 문제 175-180cm 사이의 키를 가진 학생들을 버블 정렬을 통해 오름차순으로 정렬 🗝 사용함수 copy.copy() : 깊은 복사와 얕은 복사를 가능하게 함. 🖥 실행 1) 실행파일 import random as rm import sortBubble as sb student = [] for i in range(20): student.append(rm.randint(170,185)) print(f'원본데이터 : {student}') result = sb.bubbleSort(student,deepCopy=True) print(f'보존된 원본데이터 : {student}') #False면 원본데이터로 작업 print(f'결과데이터 : {student}') 2) 클래스 import copy def bubb..
[순위] 중간, 기말 점수 격차 확인
🔍 문제 학급 학생 20명의 중간, 기말 점수 순위를 구하고, 두 시험의 편차를 출력하는 프로그램 생성 🖥 실행 1) 모듈 class RankDeviation: def __init__(self, mss, ess): self.midStuScos = mss self.endStuScos = ess self.midRanks = [0 for i in range(len(mss))] self.endRanks = [0 for i in range(len(ess))] self.rankDeviation = [0 for i in range(len(mss))] def setRank(self, ss, rs): for idx, sco1 in enumerate(ss): for sco2 in ss: if sco1 < sco2: rs[..
[파이썬 기초] 알고리즘 - 정렬
🔍 정렬 알고리즘 - 파이썬에는 내장 정렬 메소드 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..