전체 글 14

[Python] 알고리즘의 종류, 종류별 예제 _ 최단경로 (7/7)

다익스트라 최단경로 알고리즘특정한 노드에서 출발하여 다른 모든 노드로 가는 최단경로를 계산다익스트라 최단 경로 알고리즘은 음의 간선이 없을 때 정상적으로 동작매 상황에서 가장 비용이 적은 노드를 선택해 임의의 과정을 반복(그리디)다익스트라 최단경로 알고리즘출발 노드를 결정최단 거리 테이블을 초기화방문하지 않은 노드 중에서 최단거리가 가장 짧은 노드를 선택해당 노드를 거쳐 다른 노드로 가는 비용을 계산하여 최단 거리 테이블을 갱신3번과 4번을 반복

카테고리 없음 2024.09.08

[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

파이썬 개발, 맥 vs 윈도우: 도대체 뭐가 더 좋을까요? 🤔

안녕하세요! 오늘은 많은 개발자들이 고민하는 주제인 '파이썬 개발에 있어서 맥과 윈도우, 도대체 뭐가 더 좋을까요?'에 대해 이야기해보려고 합니다. 이 글에서는 두 운영체제의 장단점을 비교하고, 어떤 환경에서 어떤 운영체제를 선택해야 하는지에 대해 알아보겠습니다. 파이썬은 현재 가장 인기 있는 프로그래밍 언어 중 하나로, 다양한 플랫폼에서 사용되고 있습니다. 하지만 파이썬 개발을 위해서는 어떤 운영체제를 선택해야 할지 고민하는 분들이 많습니다. 특히 맥과 윈도우는 각기 다른 특성을 가지고 있어 선택하기 어려운 경우가 많습니다. 먼저, 두 운영체제의 기본적인 특징을 살펴보겠습니다.맥 : 애플에서 개발한 macOS는 사용자 친화적인 인터페이스와 안정성을 자랑합니다. 특히 디자인 및 멀티미디어 작업에 강점을 ..

기타잡잡냠냠 2024.09.05

[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