프로그래밍

    [파이썬 기초] 알고리즘 - 재귀, 하노이의 탑

    [파이썬 기초] 알고리즘 - 재귀, 하노이의 탑

    🔍 재귀 알고리즘이란? - 나 자신을 다시 호출하는 알고리즘 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)}') ----------------------------------..

    [파이썬 기초] 알고리즘 - 최대값, 최소값

    [파이썬 기초] 알고리즘 - 최대값, 최소값

    🔍 알고리즘 사용 이유 - 해당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..

    [파이썬 기초] 알고리즘 - 검색,순위

    [파이썬 기초] 알고리즘 - 검색,순위

    🔍 알고리즘이란? - 문제를 풀기 위한 일련의 절차나 방법 🗝 선형 검색 - 선형(일렬)으로 나열되어 있는 데이터를 순차적으로 스캔하며 원하는 값을 찾는다. 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)

    🔍 딕셔너리(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)

    🔍 튜플(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('원하는 숫자 입력:')) ..

    [리스트] 암호 해독기

    [리스트] 암호 해독기

    🔍 문제 주어진 암호를 아래와 같이 변환하기 secret = '27156231' [1, 3, 3, 2, 6, 12, 5, 1, 5, 7, 2, 14] 🗝 사용함수 insert() : 특정 위치(인덱스)에 아이템 추가, 인수가 2개 필요 append() : 마지막 인덱스에 아이템 추가 reverse() : 아이템의 순서를 뒤집음(정렬과 상관 없음) 🖥 실행 secret = '27156231' secretList = [] for cha in secret: secretList.append(int(cha)) secretList.reverse() val = secretList[0] * secretList[1] secretList.insert(2, val) val = secretList[3] * secretList..

    [리스트] 최고, 최저점을 삭제 후 총점, 평균 구하기

    [리스트] 최고, 최저점을 삭제 후 총점, 평균 구하기

    🔍 문제 아래 점수표에서 최고 및 최저점 삭제 후 총점, 평균 구하기 playerScore = [9.5, 8.9, 9.2, 9.8, 8.8, 9.0] 🗝 사용함수 pop() : 마지막 인덱스에 해당하는 아이템 제거 len() : 리스트의 길이 출력 sort() : 리스트 내 아이템을 오름차순으로 정렬 🖥 실행 layerScore = [9.5, 8.9, 9.2, 9.8, 8.8, 9.0] print('player Score : {}'.format((playerScore))) playerScore.sort() print('player Score : {}'.format((playerScore))) playerScore.pop(0) playerScore.pop(len(playerScore)-1) sum = 0 ..

    [리스트] 중복된 숫자 제거

    [리스트] 중복된 숫자 제거

    🔍 문제 두 개의 리스트를 합치고 중복된 숫자를 제거 myFavoriteNum = [1,3,5,7,9] friendNum = [2,3,5,8,10] 🗝 사용함수 append() : 마지막 인덱스에 아이템 추가 🖥 실행 myFavoriteNum = [1,3,5,7,9] friendNum = [2,3,5,8,10] addList = myFavoriteNum + friendNum print('addList : {}'.format(addList)) result = [] for num in addList: if num not in result: result.append(num) print('result : {}'.format(result)) 📝 결과물