전체 글

Responsibilities "Doing" responsibilities doing something / initiating action / controlling & coordinating activities "Knowing" responsibilities knowing about data / related objects / things it can derive or calculate OOD (object oriented design) 에서 responsibilties 가 할당된다. responsibilities 는 단독으로 act하거나 다른 방법 및 객체와 협력하는 방법을 사용하여 구현된다. SRP (single responsibility principle) 객체는 하나의 Responsibilites..

현주는 ai > aj > ak와 i aj > ak 일 때 이를 선택할 수 있고 1개의 경우의 수가 생긴다. 세개를 모두 비교하기보다 중간값인 j를 골라 비교해보자. j보다 순서가 작은(i) 수 중에서 j 위치의 aj 보다 큰 값을 가지는 경우의 수 ci, j보다 순서가 큰(k) 수 중에서 aj 보다 작은 값을 가지는 경우의 수 ck. 값이 aj일 때 ci와 ck는 위 조건을 만족하는 각각의 경우의 수가 되고, ci*ck 로 곱하면 선택할 수 있는 모든 경우의 수가 된다. 예제 입력 1 ..


터보소트는 1부터 N까지 총 N개의 수가 섞여있을 때만 사용할 수 있으며, 다음과 같이 N단계로 이루어져 있다. 첫 번째 단계에서 숫자 1의 위치를 찾는다. 그 다음 바로 앞의 숫자와 위치를 바꾸어가면서, 1이 제일 앞에 오게 바꾼다. 두 번째 단계에서는 숫자 N의 위치를 찾는다. 그 다음 바로 뒤의 숫자와 위치를 바꾸어가면서, N이 제일 마지막에 오게 바꾼다. 세 번째 단계는 숫자 2의 위치를 찾은 후에, 바로 앞의 숫자와 위치를 바꾸어가면서, 두 번째 위치에 오게 바꾼다. 네 번째 단계는 숫자 N-1의 위치를 찾은 다음에, 바로 뒤의 숫자와 위치를 바꾸면서, 뒤에서 2번째 위치에 오게 바꾼다. 다섯 번째 단계도 위와 같은 식으로 하면 되고 이를 N번 반복하는 것이다. 정리하면, 홀수번째 단계이면, 아..


정점 n개, m개의 간선으로 이루어진 무방향 그래프가 주어진다. 그리고 그래프 내에 있는 m개의 가중치 간선의 정보가 있는 간선리스트가 주어진다. 간선리스트에 있는 간선 하나씩 그래프에 제거해 나갈 것이다. 이때, 특정 정점 s와 t가 비연결이 되는 시점에서 간선 제거를 멈출 것이다. s와 t가 비연결이 되는 시점의 지운 간선의 가중치의 합이 최대가 되게 제거하는 간선의 순서를 조정할 때, 그 최댓값을 구하시오. → 그래프에서 간선을 지울건데, 지운 간선의 총합이 최대이어야하고 간선을 지울때 s, t가 끊어진다면 그때 멈추어야함. → 그럼 비연결이 될 때까지 최대한 많은 간선을 지워야하고, 즉 s-t를 잇는 경로를 제외한 모든 간선들을 지우게 됨. 그리고 추가로 s-t를 잇는 최단 경로(간선의 합이 최소..