Python 8

[Python] 알고리즘의 종류, 종류별 예제 _ 다이나믹프로그래밍 (6/7)

다이나믹 프로그래밍(동적 프로그래밍)메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법이미 계산된 결과는 별도의 메모리에 저장해서 다시 계산 xTop-down, Bottom-up방식으로 구성일반적인 프로그래밍 분야에서 동적(Dynamic)자료구조에서 동적 할당(Dynamic Allocation)은 ‘프로그램이 실행되는 도중에 실행에 필요한 메모리를 할당하는 기법’을 의미 반면에 다이나믹 프로그래밍의 ‘다이나믹’은 별다른 의미 없이 사용된 단어사용 조건최적 부분 구조 : 큰 문제를 작은 문제로 나눌 수 있으며 작은 문제의 답을 모아서 큰 문제 해결중복되는 부분 문제 : 동일한 작은 문제를 반복적으로 해결피보나치수열def fibo(x): if x == 1 or x == 2: return..

Python 2024.09.07

[Python] 알고리즘의 종류, 종류별 예제 _ 이진탐색 (5/7)

순차탐색 : 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법이진탐색 : 정렬되어 있는 리스트에서 탐색 범위를 좁혀가며 데이터를 탐색하는 방법이진탐색은 시작점, 끝점, 중간점을 이용하여 탐색범위를 설정전제조건 : 정렬되어있는 데이터#binary search(이진탐색)n, target = map(int, input().split())array = list(map(int, input().split()))#재귀함수def binary_search(array, target, start, end): if start > end: #start가 end보다 크다면 값이 없음. return None mid = (start + end) // 2 if targe..

Python 2024.09.06

[Python] 알고리즘의 종류, 종류별 예제 _ 정렬 (4/7)

데이터를 특정한 기준에 따라 순서대로 나열 하는 것선택정렬idx순서대로 뒤에있는 array중 최소값을 맨앞으로 스왑#선택정렬array = [7,5,9,0,3,1,6,2,4,8]for idx, v in enumerate(array): if idx 삽입정렬처리되지 않은 데이터를 하나씩 골라 적절한 위치에 삽입선택 정렬에 비해 구현 난이도가 높은 편이지만, 일반적으로 더 효율적#삽입정렬array = [7,5,9,0,3,1,6,2,4,8]for i in range(0, len(array)): for j in range(i, 0, -1): if array[j] 퀵정렬기준데이터를 설정하고 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꾸는 방법표준라이브러리로 채택되며 O(NlogN)을 보장..

Python 2024.09.05

[Python] 알고리즘의 종류, 종류별 예제 _ DFS/BFS (3/7)

자료구조 기초탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정.자료구조란 데이터를 표현하고 관리하고 처리하기 위한 구조삽입(Push) : 데이터를 삽입한다.삭제(PoP) : 데이터를 삭제한다.*스택과 큐를 사용할 때는 삽입과 삭제 외에도 오버플로와 언더플로를 고민해야함.오버플로(Overflow)는 특정 자료구조가 수용할 수 있는 데이터의 크기를 이미 가득 찬 상태에서 삽입 연산을 수행할 때 발생.즉, 저장공간을 벗어나 데이터가 넘쳐 흐를 때 발생언더플로(Underflow)는 특정한 자료구조에 데이터가 전혀 들어 있지 않은 상태에서 삭제 연산을 수행하면 데이터가 전혀 없는 상태이므로 언더플로 발생스택(Stack)스택은 박스쌓기와 같아서 먼저 아래에 쌓았다면 이는 마지막에 나감.선입후출, 후입선출..

Python 2024.09.04

[Python] 알고리즘의 종류, 종류별 예제 _ 그리디 (1/7)

개념현재 상황에서 지금 당장 좋은 것만 고르는 방법예제1 (p.92)큰 수의 법칙#1 m이 10000이하인 경우n, m, k = map(int, input().split())data = list(map(int, input().split()))start = time.time()data.sort()max1 = data[len(data) - 1]max2 = data[len(data) - 2]for i in range(0, m): if (i != 0)&(i % k == 0): result += max2 else: result += max1print(result)#2 m이 10000이하여도 가능한 방법n, m, k = map(int, input().split())data = l..

Python 2024.09.02

[Python] 파이썬으로 모니터 외부입력 전환하기

현재 모니터 1개와 PC2개를 운용하며 다이소에서 3000원인가 분배기를 구매했지만......원인모를 모니터 성능저하로 DP선을 추가 구매하여​모니터 DP - 1번 PC모니터 HDMI - 2번PC 를 연결하였다.​근데 한성컴퓨터 ultron 3298C 는 아주아주아주 좋지만외부입력 전환하는게 너무너무너무귀찮다.​▽ ▽ M ▽ △ M​이 세개 누르는게 너무 귀찮습니다 너무너무​심지어 버튼이 너무 잘되어있어서 우리 중고등학교 때 투표할때 찍는그 모나미 검은색 빼버린거로 손을 찍는듯한 느낌도 듦​그래서 오늘 오후 구글링 하고 대학원 다녀온뒤로 1시간 정도 코드 두들긴 결과간단히 파이썬 20줄로 외부입력을 손쉽게 변경하는 코드를 작성하였다​정상작동 하는것을 동영상으로 찍어서올리고싶은데얼른작성하고 밥먹고 자야하는..

Python 2024.09.02