Algorithm (49) 썸네일형 리스트형 알고리즘 풀이를 위한 Python 사용법 - 자료구조편 C++로만 알고리즘 문제를 풀던 나. C++ API의 옛스러움과 혼란스러움에 지쳐 Python으로 넘어왔다. 이 문서는 파이썬 초보가 알고리즘을 풀 때 알아두어야 할 지식들을 하나씩 삽질해가며 모아가는 공간이다. 1. stack Python에서 stack은 따로 자료구조 없이 list를 응용하면 된다. 1) PUSH stack = ['a', 'b', 'c'] stack.append('d') # stack의 push 역할로 list의 append() 함수 사용 print(stack) # output # ['a', 'b', 'c', 'd'] 2) POP stack = ['a', 'b', 'c'] pop = stack.pop() # 맨 마지막 (stack으로 따지자면 제일 위) 원소를 제거하면서 해당 값을 리.. 알고리즘 풀이를 위한 Python 사용법 - 기본편 C++로만 알고리즘 문제를 풀던 나. C++ API의 옛스러움과 혼란스러움에 지쳐 Python으로 넘어왔다. 이 문서는 파이썬 초보가 알고리즘을 풀 때 알아두어야 할 지식들을 하나씩 삽질해가며 모아가는 공간이다. 1. 문자열 -> 숫자(정수형) stringNumber = '3' number = int(stringNumber) # 문자(정수형) -> 숫자 print(type(number)) ## output # 2. 문자열 -> 숫자(실수형) stringNumber = '3.5' number = float(stringNumber) # 문자(실수형) -> 숫자 print(type(number)) ## output # 3. 숫자 -> 문자열 number = 3 stringNumber = f'{number}' .. C++ 에서 hash 쓸 땐 unordered_map !! Programmers의 2021 Dev Matching 백엔드 문제 중 "다단계 문제"를 풀었다. 문제에서 요구사항은 다단계의 제일 위에 있는 주인공이 얼마를 벌 수 있는지였고, 다단계 직원 수의 max 값이 10,000명 이었기 때문에 직원들간의 다단계 트리관계를 저장하기 위해선 해시 맵이 필수라고 생각하였다. 그리고 다른 사람들의 풀이를 볼 때 그 생각은 얼추 맞은 듯 하다. 거기까진 좋았는데.. 나는 해시를 직접 구현해버리는 시간 낭비를 저질렀다. 다른 사람들의 코드를 보니 이미 C++에는 red-black tree 기반의 map 컨테이너와 해시 테이블 기반의 unordered_map 컨테이너를 그냥 가져다 쓰고 있었다. 앞으로 환경이 허락되는 한(코테에서 컴파일러가 해당 컨테이너를 제공해주는 한).. LAN #include #include #include #include #define MAX_V 99999 #define INF 987654321 using namespace std; double kruskalExtension(vector & selected, vector & preConnected); int prim(vector & selected); typedef struct DisjointSet { vector parent, rank; DisjointSet(int n) : parent(n), rank(n, 1) { for (int i = 0; i < n; i++) parent[i] = i; } int find(int u) { if (parent[u] == u) return u; return parent[u.. PROMISES #include #include #include #define MAX_V 200 #define MAX_M 1000 #define MAX_N 1000 #define INF 99999 using namespace std; struct path_info { int a; int b; int c; }typedef path_info; int adj[MAX_V][MAX_V]; vector new_adjs; int shortest_adj[MAX_V][MAX_V]; int shortest_new_adj[MAX_V][MAX_V]; int solve(int v); void floyd(int param_adj[MAX_V][MAX_V], int v); int main() { int caseNum; cin >> caseNum; .. DRUNKEN #include #include #include #define MAX_V 500 #define INF 99999 using namespace std; // first - vertex, second - cost int adj[MAX_V][MAX_V]; int W[MAX_V][MAX_V]; vector order; int delay[MAX_V]; int v, e; void solve(); int main() { cin >> v >> e; int delayInput; for (int i = 0; i > delayInput; delay[i] = delayInput; } for (int i = 0; i < v; i++) { order.push_back(make_pair.. TIMETRIP #include #include #include #define MAX_V 100 #define INF 99999 using namespace std; // first - vertex, second - cost vector adj[MAX_V]; bool reachable[MAX_V][MAX_V]; void floyd(int vCnt); int bellman2(int src, int target, int vCnt); int main() { int caseNum; cin >> caseNum; for (int cIter = 0; cIter > g >> w.. NTHLON #include #include #include using namespace std; #define MAX_V 410 #define INF 99999 const int START = 401; vector adj[MAX_V]; int vertex(int delta); int solve(vector & a, vector & b); vector dijkstra(const int src); int main() { int caseNum; cin >> caseNum; for (int cIter = 0; cIter > n; int aTime, bTime; for (int nIter = 0; nIter < n; nIter++) { ci.. 이전 1 2 3 4 ··· 7 다음