일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- peft
- LLM
- DP
- 파이썬
- Generative AI
- 완전탐색
- Fine-Tuning
- bfs/dfs
- English
- Scaling Laws
- 코드트리
- 그래프이론
- speaking
- 코딩테스트실력진단
- 이분탐색
- 코딩테스트
- 스터디
- paper review
- 판다스
- 프로그래머스
- Python
- 파인튜닝
- 최단경로
- Study
- Coursera
- 데이터분석
- 머신러닝
- Lora
- 플로이드와샬
- 알고리즘
- Today
- Total
목록Study (58)
생각하는 아져씨
문제 서준이는 아빠로부터 N개의 회의를 모두 진행할 수 있는 최소 회의실 개수를 구하라는 미션을 받았다. 각 회의는 시작 시간과 끝나는 시간이 주어지고 한 회의실에서 동시에 두 개 이상의 회의가 진행될 수 없다. 단, 회의는 한번 시작되면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작 시간은 끝나는 시간보다 항상 작다. N이 너무 커서 괴로워 하는 우리 서준이를 도와주자. 입력 첫째 줄에 배열의 크기 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 231−1보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 최소 회의실 개수를 출력한다...
문제 수강신청의 마스터 김종혜 선생님에게 새로운 과제가 주어졌다. 김종혜 선생님한테는 Si에 시작해서 Ti에 끝나는 N개의 수업이 주어지는데, 최소의 강의실을 사용해서 모든 수업을 가능하게 해야 한다. 참고로, 수업이 끝난 직후에 다음 수업을 시작할 수 있다. (즉, Ti ≤ Sj 일 경우 i 수업과 j 수업은 같이 들을 수 있다.) 수강신청 대충한 게 찔리면, 선생님을 도와드리자! 입력 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 10^9) 출력 강의실의 개수를 출력하라. 🚦 문제 유형 Greedy 알고리즘 ✏️ Solution 문제 속 빨간색으로 표시된 부분에서 풀이방법에 대한 힌트를 얻을 수 있다. 먼저, 최소의..
파이썬 코딩테스트를 풀다보면 input을 받아야 하는 상황이 빈번한데, 대부분 이 2가지를 많이 쓴다. - input() : 입력의 개수가 많은 경우 동작 속도가 느려 시간 초과 발생 - 파이썬 sys 라이브러리에 정의되어 있는 함수: sys.stdin.readline() 보통 sys.stdin.readline이 속도가 빨라서 많이 쓰이는데, 문제를 풀다가 종종 헷갈려서 차이를 정리해보았다. 1. sys.stdin.readlines() - 여러 줄을 입력으로 받는다. (종료될 때 까지) - Ctrl+D 를 누르면 입력받기가 종료되고 다음 코드를 진행한다. import sys lines = sys.stdin.readlines() print(lines) >> 1 >> 2 >> 3 >> 4 # Press Ct..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bI30Z2/btrHjtTwqhD/bk5WwEqAN9GFLC7ALYgkoK/img.png)
문제는 다음과 같다. 🚦 문제 유형 - Graph Traversal (그래프 탐색) - DFS/BFS ✏️ Solution 제목에 DFS/BFS 가 명시된 문제로, 전형적인 DFS/BFS 알고리즘을 그대로 사용해 풀었다. from collections import deque import sys input = sys.stdin.readline n, m, v = map(int, input().split(' ')) graph = [[] for i in range(n+1)] for _ in range(m): f, s = map(int, input().split(' ')) graph[f].append(s) graph[s].append(f) visited = [False]*(n+1) visited2 = [False..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bRRXYC/btrHaSOHtQB/ZyoQe7IaM4EUB2kkJkZfuk/img.png)
문제는 다음과 같다. 🚦 문제 유형 - Graph Traversal (그래프 탐색) - DFS/BFS ✏️ Solution DFS/BFS 문제로, DFS를 이용해 풀었다. n = int(input()) m = int(input()) # 연결된 그래프 리스트 만들기 graph = [] for i in range(n+1): graph.append([]) for i in range(m): f, s = map(int, input().split(' ')) graph[f].append(s) graph[s].append(f) visit = [False] * (n+1) # dfs def dfs(start, graph, visit): visit[start] = True for i in graph[start]: if vi..
DFS/BFS 들어가기 전 탐색은 그래프, 트리 등 자료구조 안에서 자주 다룬다. DFS와 BFS를 이해하려면 기본 자료구조인 스택과 큐 그리고 재귀함수를 이해하고 있어야 함 스택: FILO(First In Last Out) 큐: FIFO(First In First Out) 스택과 큐를 사용할 땐 Overflow와 Underflow를 고려해야 함 파이썬에서는 스택 → 파이썬 리스트 큐 → collections 모듈에서 제공하는 deque 자료구조 재귀함수: 자기 자신을 다시 호출하는 함수 재귀함수는 내부적으로 스택 자료구조 이용 (가장 마지막에 호출한 함수가 끝나야 그 앞의 함수 호출이 종료되기 때문이다.) 꼭 종료조건을 구현해줘야 함 반복문 보다 코드가 간결 DFS(Depth-First Search) ..