문제https://www.acmicpc.net/problem/1697 해설최단 경로를 탐색하는 문제이므로 BFS를 사용하였다. Pythonqueue에서 pop하는 과정은 deque 자료구조를 활용하여 시간초과에 관한 문제를 개선하였다. 이후 set을 이용하여 visited를 저장하였지만, 메모리 초과가 발생하였다. 이 부분을 list를 이용하여 최대 사이즈를 지정하여 메모리 초과를 해결할 수 있었다. from sys import stdinfrom collections import dequeMAX = 100001def bfs(start: int, end: int): visited = [False] * MAX visited[start] = True queue = deque([(start, ..
문제https://www.acmicpc.net/problem/1260 해설알고리즘 문제에서 자주 활용되는 DFS와 BFS 구현에 대한 문제였다. 모든 Vertex(정점)을 방문할 땐 DFS, BFS 모두 사용하여도 무관하지만 경로의 특징에 따라 처리가 되는 문제라면 DFS를 사용하는 것이 유리하다. 반면 최단거리를 구하는 문제는 BFS를 사용하는 것이 유리하다. 깊이 내려가지 않고 가까운 곳에서 탐색할 수 있기 때문이다.참고로 간선은 Edge라고 표현한다. Pythonfrom sys import stdindef dfs(graph: list, start: int, visited: list): dfs_result.append(str(start)) visited[start] = True for..
논문 링크: https://arxiv.org/abs/1409.3215 Sequence to Sequence Learning with Neural NetworksDeep Neural Networks (DNNs) are powerful models that have achieved excellent performance on difficult learning tasks. Although DNNs work well whenever large labeled training sets are available, they cannot be used to map sequences to sequences. In this paparxiv.org 1. 서론1.1 논문 선정 이유자연어 처리 분야에서 가장 강력한 모델로 평가받..
문제https://www.acmicpc.net/problem/2470 해설완전 탐색으로 풀었을 때 시간초과가 발생하였다. 투 포인터라는 개념을 적용시켜 성능을 개선시킬 수 있었다. Python1차 시도(실패) 완전 탐색으로 풀이하여 시간 초과가 발생하였다. from sys import stdindef solution(N: int, lst: list): current_sum = abs(max(lst)) lst = sorted(lst) result = [lst[0], lst[-1]] for l1 in lst: for l2 in lst[::-1]: if l1 != l2: new_sum = abs(l1+l2) if ..
문제https://www.acmicpc.net/problem/2343 해설이진 탐색을 활용하여 해결하는 문제였다. 분할하는 구간들 때문에 아이디어가 곧바로 떠오르지 않아서 시간이 꽤 오래 걸렸다. Pythonfrom sys import stdindef chk_validation(M: int, videos: list, max_size: int): running_time = 0 blue_ray_cnt = 1 for video in videos: if max_size Javaimport java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException..
문제https://www.acmicpc.net/problem/11663 해설이 문제도 이진 탐색을 이용하여 해결하여야 시간초과가 발생하지 않는 문제였다. Pythonfrom sys import stdindef min_bin_search(N, point, lst): start = 0 end = N - 1 while start Javaimport java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..