Minnnning's logs
Preview Image

투포인터 알고리즘

투 포인터(Two Pointers)란 리스트에 순차적으로 접근 할 때 두개의 포인터를 이용해서 처리하는 알고리즘이다 투 포인터를 이용한 문제는 리스트에서 특정 합을 찾거나 특정 부분합을 찾을 때 이용할 수 있다     만약 리스트가 주어지고 그 리스트에 특정합이 되는 수열을 찾으라는 문제가 있으면 두개의 포인터를 이용해서 해결 가능하다 t...

Preview Image

백준 2470번 두 용액

리스트를 입력 받아서 리스트중 2개의 합이 특정한 값을 찾는 문제로 대표적인 투 포인터 문제이다 여기서는 두개의 합만을 구하므로 부분합을 이용하지 않고 푼다   리스트를 입력받아서 서로 다른 두 용액을 섞었을때 0에 가장 가까운 값을 만드는 두 용액을 찾아내야한다 만약 같은 값이 두가지 이상인경우 아무거나 하나를 출력한다 -> 빠르게...

Preview Image

소수 찾기 알고리즘

소수 찾는 알고리즘은 매우 많다 그 중에서 기본적인것은 자연수 n이 주어진다면 n이 소수인지 판별하기 위해 2~n-1까지 모든 숫자를 for 문을 통해서 나누어본다 나머지가 0이 나오는 값이 없다면 그 숫자는 소수이다 위 방법이 기본적인 소수를 찾는 방법이지만 프로그래밍에서 숫자 하나당 n-3번 반복해야하기 때문에 시간이 매우 많이 소요된다   ...

Preview Image

백준 1504번 특정한 최단경로

기본적인 다익스트라 문제에서 특정 조건 2개가 추가된 문제이다 다익스트라 알고리즘에서 양방향으로 이동 할 수 있도록 입력을 받을때 반대 방향 그래프로 같이 넣어준다 이 문제서는 두 점을 추가로 주어서 그 점을 경유하는 최단거리를 구하는 것이다 이 두번째 조건을 해결하기 위해 경유 정점 2개를 기준으로 경유를 통해 나올 수 있는 최단거리를 예...

Preview Image

다익스트라(Dijkstra) 알고리즘

다익스트라 알고리즘은 최단거리를 구할 때 사용한다 bfs도 최단거리를 구할때 사용하지만 차이점은 bfs는 단위길이 모든 간선의 가중치가 서로 같을 때 이용가능하다 다익스트라 알고리즘은 노드 사이 간선의 가중치가 다를 때 사용한다 만약 간선의 가중치가 다를 때 모두 동일하게 간선을 쪼개서(추가적인 노드가 생성 2인 간선에 노드를 1개 추가해서 1,1로...