, 매 순간 가장 좋아보이는 것만을 선택, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않음그리디 알고리즘으로 문제의 해법을 찾았을 때는 그 해법이 정당한지 검토해야함바로 문제 유형을 파악하기 어려우면 그리디 알고리즘인지 의심\--> 해결하기 어렵다면 \-->
구현!챕터 설명 부분이 도움이 됐다! 가끔 다시 읽어봐도 좋을 듯이번 챕터에선 코드는 바로 짰다짜면서..가물가물했던 파이썬 함수들을 사용해보고...list도 만들고...str --> int(아스키코드)로 변환하려면 ord() 사용예제 4-3은 c스타일 코드랑 pytho
스택 : 파이썬에선 별도의 라이브러리 사용할 필요x 기본 리스트에서 append(), pop() 사용큐 : collections 모듈에서 제공하는 deque 자료구조 이용 데이터 넣고 빼는 속도가 리스트 자료형에 비해 효율적재귀 함수 - 파이썬 인터프리터는 호출 횟수
: 데이터를 특정한 기준에 따라서 순서대로 나열하는 것선택 정렬순서대로 탐색하며 정렬되지 않은 데이터 중에서 가장 작은 데이터를 정렬되지 않은 데이터 중 가장 앞과 바꿈시간 복잡도 : O(N^2)삽입 정렬삽입될 데이터가 이미 정렬되어 있다 가정하고, 데이터를 적절한 위
: 리스트 안 특정 데이터를 찾음순차 탐색앞에서부터 차례로 데이터를 하나씩 확인이진 탐색찾으려는 데이터와 중간점에 있는 데이터를 반복적으로 비교. 데이터가 정렬돼있을 때 사용참고할 소스코드가 없을 땐 이진 탐색 구현은 어려울 수도 있으니 가급적 외우길 권함input()
: 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법큰 문제를 작은 문제로 나눌 수 있다작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 동일하다메모이제이션 기법: 한 번 구한 결과를 메모리 공간에 메모해두고 같은
:가장 짧은 경로를 찾는 알고리즘다익스트라 알고리즘특정한 노드에서 출발하여 다른 노드로 가는 최단 경로를 구함음의 간선이 없을 때 정상적으로 동작그리디 알고리즘각 노드에 대한 현재까지의 최단거리 정보를 1차원 리스트에 저장하며 리스트를 갱신간단한 다익스트라접근하지 않은