Python/파이썬 자료구조 알고리듬
-
Trie (트라이)Python/파이썬 자료구조 알고리듬 2022. 12. 5. 11:04
[참고] tistory 코드의 가독성을 높이는 법 나무 위키의 간결한 설명. https://namu.wiki/w/%ED%8A%B8%EB%9D%BC%EC%9D%B4 트라이 - 나무위키 이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권 namu.wiki 설명이 너무 잘 되어 있다. 코드까지 ㄷㄷㄷ https://ko.wikipedia.org/wiki/%ED%8A%B8%EB%9D%BC%EC%9D%B4_(%EC%BB%B4%ED%93%A8%ED%8C%85) 트라이 (컴퓨팅) - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. "A", "..
-
[파이썬/동적계획법] 동전 거스름돈 계산Python/파이썬 자료구조 알고리듬 2021. 11. 17. 10:05
최근 7일 통계 중에 배낭 문제가 1위길래... 옛 글을 다시 읽어보니... 동전 거스름돈을 언급만 하고... 풀지 않았더군요. https://comdoc.tistory.com/entry/35-%EB%B0%B0%EB%82%AD%EB%AC%B8%EC%A0%9CKnapsack-problem-%ED%8C%8C%EC%9D%B4%EC%8D%AC 그리디는 간단해서 원문에 추가했습니다만... 그 외는 내용이 많아서 새 포스트로 올려봅니다. 1. 그리디 알고리듬(탐욕법) 우리나라 동전은 500, 100, 50, 10, 5, 1원이 있습니다. 이 상황에서는 그리디 알고리듬으로 문제를 풀 수 있습니다. 각 단계에서 최선의 값을 구하는 것이 전체적으로도 맞는 답이 됩니다. * 간략한 코드를 위해 동전은 크기가 큰 순서대로 ..
-
[파이썬] from itertoolsPython/파이썬 자료구조 알고리듬 2021. 11. 8. 14:09
파이썬의 이터툴즈 중 조합형 이터레이터에 대해 알아보겠습니다. 조합형 이터레이터는 다음 4가지가 있습니다. product(), permutations(), combinations(), combinations_with_replacement() 가장 익숙한 순열부터 보도록 하죠. permutations(순열) 고등학교 교육과정에서 배운 개념. '순'열에는 '순'서가 있습니다. from itertools import permutations print(tuple(permutations((1, 2, 3)))) # ((1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)) 3가지 원소를 1열로 세운다면... 모든 경우의 수는 3! 이죠. 3 * 2 * 1..
-
파이썬 단리, 복리, 이자, 수익률 계산Python/파이썬 자료구조 알고리듬 2021. 6. 2. 13:56
실제, 은행은 일단위의 이자율을 사용한다고 합니다. 다음 코드들은 개념 정리 용도로만 사용하십시오. 단리, 복리에 대한 설명은 다음 링크를 참고하시고... https://mathbang.net/601 예금의 원리합계(단리, 복리) 예금은 처음 한번 입금하고 만기에 원금과 이자의 합을 인출합니다. 계산이 단순한데요... 원리합계(원금과 이자의 합)는 단리의 경우 등차수열의 일반항이고 복리의 경우 등비수열의 일반항입니다. 1년에 한번 이자가 발생하는 연복리를 계산해 보겠습니다. principal = 10000 # float(input('예치금액: ')) period = 10 # float(input('예치기간(년): ')) rate = 2 # float(input('이자율(년, %): ')) rate /= ..
-
python 만 나이, 살아온 날 계산Python/파이썬 자료구조 알고리듬 2021. 6. 2. 11:30
웹으로 만들어 보았습니다. https://comdoc.pythonanywhere.com/birth 만 나이 계산기 만 나이 계산기 생년월일(양력)을 입력하십시오. comdoc.pythonanywhere.com 파이썬의 datetime 모듈 사용법 https://wikidocs.net/104845 https://dojang.io/mod/page/view.php?id=2463 https://docs.python.org/ko/3/library/datetime.html 시간을 빼고 더할 수 있다는 것이 재미있습니다. 만 나이 전에 살아온 날을 먼저 계산해 봅시다. 쉬우니까요... 살아온 날 계산기 # 살아온 날 계산기 2021-06-01 by 컴닥 from datetime import datetime # bir..
-
다익스트라 알고리듬(파이썬)Python/파이썬 자료구조 알고리듬 2021. 5. 1. 21:05
namu.wiki/w/다익스트라%20알고리즘 다익스트라 알고리즘 - 나무위키 다익스트라 알고리즘은 다음과 같다. (P[A][B]는 A와 B 사이의 거리라고 가정한다) 출발점으로부터의 최단거리를 저장할 배열 d[v]를 만들고, 출발 노드에는 0을, 출발점을 제외한 다른 노드들에는 namu.wiki https://www.youtube.com/watch?v=611B-9zk2o4 기본적으론 이렇게 코딩할 수 있고..... O(V^2)의 시간복잡도를 가집니다. # 다익스트라 # 2021.05.01 # ComDoc def dijkstra(start, pairs): graph = {} for v1, v2, distance in pairs: graph.setdefault(v1, {v2: distance}) graph[..
-
[Python] Tic-Tac-Toe: Minimax algorithmPython/파이썬 자료구조 알고리듬 2020. 11. 20. 20:36
틱-택-토 틱택토는 3*3 보드 위에 3칸 1줄(가로, 세로, 대각선 중 하나)을 먼저 완성하는 쪽이 이기는 보드게임입니다. 따라서 모든 경우의 수는 9! = 362_880 이 정도라면 가지치기를 하지 않고 퓨어한 미니 맥스 알고리듬으로 돌릴 수 있습니다. *막대기게임처럼 max에서 score==1, min에서 score==-1을 찾으면 break 했습니다. 이것만 하더라도 반응 속도가 상당히 빨라집니다. game_board: str = '_' * 9 AI = True HUMAN = False AI_MARK = 'X' HUMAN_MARK = 'O' def main(): player: bool = AI # player: bool = HUMAN print('initializing ...') if player..