본문 바로가기
반응형

알고리즘222

[알고리즘] 가장 먼 노드 포인트 1. 가장 먼 노드 의미는 무엇인가? 어떻게 보면 2가지로 해석을 할 수 있다. 1. BFS를 해서 제일 마지막 거리에 있는 노드들 2. 다익스트라 알고리즘을 써서 최단 거리가 max 인 것들의 노드들 2. 따라서 2가지 방법으로 풀 수 있습니다. 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. BFS #include #include #include #include #include using namespace std; vector map[20010]; int dist[20010]; int bfs() { memset(dist, -1, sizeof (dist)); int max_value = 0; queue q; q.push ({ 1, 0 }); dist[1] = 0; //거리를 이용하여 b.. 2021. 3. 9.
[알고리즘] 홈 방범 서비스 포인트 1. 홈 방범 서비스 -> 각각의 영역을 돌면서 서비스에 최대 값을 찾아준다. 2. bfs를 이용하여 각각의 서비스를 이용할 수 있게 한다. -> 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. c++/cpp #include #include #include #include using namespace std; int n, m, answer; int map[20][20]; bool visited[20][20]; int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0}; int calc(int k) { return (k * k) + (k - 1) * (k - 1); } void bfs(int a, int b) { queue q; q.push(make_pair.. 2021. 3. 8.
[알고리즘] 원자 소멸 시뮬레이션 포인트 1. 전형적인 구현 문제이다. 원자가 없을 때 까지 무한 반복 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. python data = [[0 for _ in range(4001)] for _ in range(4001)] for test in range(1, int(input()) + 1): # 상 하 좌 우 dx = [1, -1, 0, 0] dy = [0, 0, -1, 1] atoms = [] n = int(input()) delete_list = set() total_energy = 0 pop_list = [] # 음수 없애기 for _ in range(n): y, x, move, energy = map(int, input().split()) x = (x + 1000) * 2 y = .. 2021. 3. 8.
[알고리즘] Longest Substring Without Repeating Characters 포인트 1. 중복 문자가 없는 가장 긴 부분 문자열의 길이를 반환을 하는 방법 2. 딕셔너리를 하나 만들고 인덱스를 넣어가면서 지속적으로 업데이트? 하는 방법이 있을 것 같다. 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. c++/cpp #include using namespace std; class Solution { public: int lengthOfLongestSubstring(string s) { unordered_map used; // 해시를 하나 지정을 해준다 int start = 0; int max_length = 0; for (auto i = 0; i < s.size(); i++) //char 를 돌면서 { char ele = s[i]; if (used.find(ele) != .. 2021. 3. 8.
반응형