역량테스트

x좌표 기준으로 정렬합니다. dp[4] = (4를 위한 cost) + (1~3의 최적Cost) dp[4] = min(dp[4] , (3~4 Cost) + (1~2의 최적Cost) ) dp[4] = min(dp[4] , (2~4 Cost) + (1을 위한 Cost) ) dp[4] = min(dp[4] , (1~4 Cost) ) 구간의 cost를 구하는 방법 Max(A~B사이의 X축거리 , A~B사이의 모든 건물 중 Y절대값이 가장 큰 값 * 2) #include #include #include long long d[10005]; typedef struct point { long long x, y; }Point; struct point pointList[10000]; int comp(const void* p..

분류 : 큐, 시뮬레이션 초밥의 회전을 나머지연산을 이용하여 인덱싱을 간편하게 할 수 있습니다. 초기세팅 1. 0부터 k개의 초밥번호를 Q에 넣는다 (7,9,7,30) 2. 하나씩 넣으면서 (초밥종류배열[초밥[i]]==0) 이라면 cnt++ 한다. 3. 초밥종류배열[초밥[i]]++ 한다. 4. Max = cnt; 5. (초밥종류배열[쿠폰초밥] == 0) 이라면 max +1 한다 6. end = k-1 N번 반복 1. Dequeue한다(U). 초밥종류배열[U]-- 한다. 2. 초밥종류배열[U]==0 이라면 cnt--한다. 3. end = (end+1)%N //이부분이 중요 회전초밥 이므로 끝이라면 다시 앞으로 가야함. 4. 초밥종류배열[초밥[end]]==0 이라면 cnt++한다. 5. 초밥종류배열[초밥[e..

분류 : 다이나믹프로그래밍 이 문제는 냅색의 기본이론과 다른 방식으로 테이블을 작성해야 합니다. 냅색의 기본이론은 가로축이 책가방의 크기(사용할 수 있는 전체 크기) 입니다. 그리고 테이블 속의 데이터는 취할 수 있는 이득입니다. 하지만 이문제에서 비용의 범위가 10,000,000이며 개수가 100개이므로 최대 10억 개의 데이터를 채워야 합니다. 시간복잡도와 공간복잡도를 고려한 접근이 필요합니다. 냅색은 가로축이 크기이고 내용이 얻는 비용입니다. 이것을 역으로 생각해서 가로축을 비용, 내용을 크기로 해봅시다. 그럼 어떤 비용에서 최대 크기를 구할 수 있습니다. 5 60 30 10 20 35 40 3 0 3 5 4 Input이 위와 같을 때 그럼 위와 같이 표를 채울 수 있습니다. 가장 아래쪽 라인에서 ..