| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- DP
- isdigit()
- explainable recommendation
- Deque
- 알고리즘
- bfs
- 그래프
- 프로그래머스
- LSTM
- Stack
- kg
- isalpha()
- find()
- isnumeric()
- 추천시스템
- Dynamic Programming
- Knowledge graph
- 파이썬
- Python
- Algorithm
- 코테
- knowledge
- 그래프 탐색
- 자료구조
- 우선순위 큐
- isalnum()
- 정렬
- Recommendation
- 동적 프로그래밍
- 백준
- Today
- Total
목록Python (6)
데린이 고인물되기
1. 반올림 (round)round(x) : 가장 가까운 정수로 반올림import math를 사용하지 않음print(round(3.5)) # 4print(round(2.5)) # 2 (주의!)print(round(2.675, 2)) # 2.67 (부동소수점 특성)주의파이썬의 round는 "Banker's Rounding" (또는 Round half to even) 규칙을 사용딱 .5로 끝나는 경우, 가까운 짝수 정수 쪽으로 반올림함. 그래서 :print(round(1.5)) # 2 (짝수로 감)print(round(2.5)) # 2 (짝수로 감)print(round(3.5)) # 4 (짝수로 감) 2. 올림 (math.ceil)항상 큰 정수로 올림import mathprint(math.ceil..
🧩"05:34"와 "04:56"의 시간 차이를 분 단위로 구하는 방법from datetime import datetimet1, t2 = "05:34", "04:56"fmt = "%H:%M"dt1 = datetime.strptime(t1, fmt)dt2 = datetime.strptime(t2, fmt)diff_minutes = abs((dt1 - dt2).seconds // 60)print(diff_minutes) # 38 🥲코테에서 더 유용한 단순 계산 (더 빠르다)h1, m1 = map(int, t1.split(":"))h2, m2 = map(int, t2.split(":"))minutes1 = h1 * 60 + m1minutes2 = h2 * 60 + m2print(abs(minutes1 - ..
itertools.product는 중복을 허용하며, 주어진 리스트의 모든 가능한 조합(데카르트 곱)을 만들어주는 도구기본 사용법from itertools import productfor p in product(['A', 'B'], repeat=2): print(p)출력 결과:('A', 'A')('A', 'B')('B', 'A')('B', 'B') repeat=2는 두 글자로 조합한다는 뜻중복 허용순서 고려함 → ('A', 'B')와 ('B', 'A')는 다르게 봄사용 예시🔍 'A', 'E', 'I', 'O', 'U'로 만들 수 있는 단어 생성from itertools import productalphabet = ['A', 'E', 'I', 'O', 'U']all_words = []for i in ..
바킹독님의 그래프 강의를 참고해 파이썬 버전으로 작성했습니다. 사이클임의의 한 점에서 출발해 자기 자신으로 돌아올 수 있는 경로. 그래프 안에 사이클이 하나라도 있으면 순환 그래프, 하나도 없으면 비순환 그래프 완전 그래프 vs 연결 그래프완전 그래프 : 모두 서로 다른 두 정점 쌍이 간선으로 연결되 그래프연결 그래프 : 임의의 두 정점 사이에 경로가 항상 존재하는 그래프 간과하기 쉬운 그래프 예시 그래프를 코드로 표현하는 법1. 인접행렬노드 사이에 edge 가 있으면 1, 아니면 0으로 표현무방향 그래프의 경우 인접행렬이 대칭방향그래프의 경우 인접행렬이 대칭이 아님노드 2에서 노드 3으로 가는 엣지가 있는 경우 인접행렬의 (2,3) 의 위치에 1이 있는 형태인접행렬 표현 구현보통 노드의 경우 관례적으로..
소수는 1과 자기 자신만을 약수로 가지는 수입니다. 코딩 테스트에서 자주 등장하는 개념이라, 소수를 판별하는 알고리즘은 꼭 알고 계시는 것이 좋습니다. 이번 글에서는 Python으로 소수를 판별하는 방법 중 대표적인 두 가지를 소개드리도록 하겠습니다. 1. 기본 소수 판별법 (완전탐색 방식)가장 단순하게 먼저 떠올릴 수 있는 방법은 2부터 n-1까지 전부 나누어보는 것입니다. 만약 하나라도 나누어떨어지면 소수가 아니고, 그렇지 않으면 소수로 판단하는거죠.def is_prime(n): if n ⚠️ 단점이 방법은 아주 단순하지만, 검사 횟수가 많아 수가 커질수록 비효율적입니다.예를 들어 10000이 소수인지 판단하려면 2부터 9999까지 모두 나누어봐야 하므로 시간이 오래 걸립니다.그래서 사용할 수..
바킹독님의 BFS 강의를 참고해 파이썬 버전으로 정리했습니다. 원래 깃허브에 private으로 정리를 했는데, 앞으로는 티스토리에 정리를 해보려 합니다. BFS : Queue(큐)로 구현BFS(Breadth-First Search:너비 우선 탐색)1. BFS란?BFS는 그래프 탐색 알고리즘 중 하나로, 너비(횡적) 방향으로 탐색을 진행하는 방식임가장 가까운 노드부터 차례로 탐색한 후, 다음 단계의 노드를 탐색함최단 경로 탐색에 적합하며, 동일 레벨의 노드를 먼저 탐색하는 특징을 가짐2. BFS 동작 과정시작 노드를 큐에 저장큐의 맨 앞 값을 꺼냄 (Dequeue)현재 노드에서 수행해야 할 연산 수행현재 노드와 연결된 인접 노드 중 방문하지 않은 노드를 큐에 저장탐색이 끝난 노드는 큐에서 제거큐가 빌 때까..