동적 계획법복잡하 문제를 더 작은 하위 문제로 나눠서 해결하는 알고리즘이다.각 하위 문제의 결과를 저장하고 재사용 → 중복 계산을 피하는 해결법임최적 부분 구조문제의 최적 해결책이 부분 문제의 최적 해결책으로 구성되는 경우예를 들어A → D 로 가는 최단 경로가 필요한
주어진 지도에서 연결된 집의 모임 을 찾아 단지로 정의각 단지에 번호를 붙이는 작업을 수행함.연결된 집 이라는 것은좌우상하로 인접한 집을 의미함.BFS 혹은 DFS 을 사용( 그래프 탐색 ) 하여 지도를 순회1 이라는 집을 만나면 내부적으로 그래프 탐색을 시도하여 co
https://www.acmicpc.net/problem/1620포켓몬의 개수 N문제의 개수 MN 개 만큼의 포켓몬 이름M 개 줄에 케이스 1 입력 : 포켓몬 영어 이름출력 : 포켓몬 번호케이스 2입력 : 포켓몬 번호출력 : 포켓몬 영어 이름해당하는 포켓몬을
이중 우선순위 큐를 구현하는 것임.필요한 것은데이터 구조최대값과 최소값을 효율적으로 삭제할 수 있어야 한다중복된 값도 저장가능연산I n정수 n을 큐에 삽입D 1큐에서 최댓값을 삭제함.D -1큐에서 최솟값을 삭제함.기타큐가 비어있는 경우 D 연산이 들어오면 무시최대값이
모든 레슨을 M 개 이하의 블루레이로 담아야함.블루레이의 크기를 최소화 해야한다블루레이 가능한 범위는가장 긴 레슨 길이 ~ 모든 레슨 길이의 합일단 블루레이에는 무조건 하나 이상은 들어가야한다.블루레이에 들어갈 수 있는 최소는 가장 긴 레슨 길이임모든 레슨이 일단 블루
A 와 B가 직접 친구이거나A 와 B 모두와 친구인 C 가 존재하는 경우2-친구가 된다고 한다.플로이드 워셜 알고리즘그래프에서 모든 장점 쌍 사이의 최단 경로를 찾는 알고리즘이다.다익스트라, 벨만포드 알고리즘는 한 노드에서 모든 노드까지 최단경로인 반면 플로이드 워셜
트리구조는 실제로 트리모양으로 구현되진 않는다물론 Node\[] 를 여러개 가지고 Node 안에 left right 등의 주소를 가진 구조로 코드를 짤순있지만, 조금 복잡해지는 경향이 있다물론 라이브러리의 경우에는 이런식으로 짜야 유지보수하기 편하긴 할 것 같다나는 일