Algorithm
-
동적 프로그래밍Algorithm 2020. 2. 19. 17:22
분할정복법 문제를 작은 사례로 나누고 각각의 작은 문제들을 해결하여 정복하는 방법이다. 분할정복법은 하향식 접근 방법으로 최상위 사례의 해답은 아래로 내려가면서 작은 사례에 대한 해답을 구함으로써 구한다. 분할정복법 설계전략 1. 문제 사례를 하나 이상의 작은 사례로 분할한다. 2. 작은 사례들을 각각 정복한다. 작은 사례가 충분히 작지 않은 이상 재귀를 사용한다. 3. 필요하다면, 작은 사례에 대한 해답을 통합하여 원래 사례의 해답을 구한다. 분할정복법 사례 이진 검색, 합병 정렬, 퀵 정렬, 최대값 찾기 등 분할정복법 장점 문제를 나눔으로써 어려운 문제를 해결할 수 있다는 점이다. 그리고 문제를 나누어 해결한다는 특징 상 병렬적으로 문제를 해결하는 데 큰 장점이 있다. 분할정복법 단점 함수를 재귀적으..
-
프로그래머스 / lv2 / 카펫Algorithm 2020. 2. 19. 15:34
문제 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 모서리는 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 빨간색 격자의 수 red가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. ====================================================================================================== 제한사항 갈색 격자의 수 brown은 8 이상 ..
-
프로그래머스 / lv2 / 라면공장Algorithm 2020. 2. 19. 14:29
문제 라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니다. 해외 공장에서는 향후 밀가루를 공급할 수 있는 날짜와 수량을 알려주었고, 라면 공장에서는 운송비를 줄이기 위해 최소한의 횟수로 밀가루를 공급받고 싶습니다. 현재 공장에 남아있는 밀가루 수량 stock, 밀가루 공급 일정(dates)과 해당 시점에 공급 가능한 밀가루 수량(supplies), 원래 공장으로부터 공급받을 수 있는 시점 k가 주어질 때, 밀가루가 떨어지지 않고 공장을 운영하기 위해서 최소한 몇 번 해외 공장으로부터 밀가루를 공급받아야 하는지를 return 하도록 solution 함수를 완성하세요. dat..