본문 바로가기

줄세우기3

[백준][위상정렬, DAG] 2252 줄세우기 줄세우기 문제는 DAG로 표현할 수 있다. 메모리 절약을 위해 간선의 연결 상태는 리스트로 표현한다. 노드에 입력이 들어는 것을 따로 배열로 표현하여 더이상 연결이 되지 않는 노드는 제거하면 된다. https://www.acmicpc.net/problem/2252 2017. 6. 20.
[정올][다이나믹] 1871 줄세우기 LIS 문제중 가장 간단한 형태인것 같다. 숫자들중 순서대로 나보다 큰 숫자들 중 정렬이 가장 많이 되어 있는 숫자를 찾아서 +1을 하여 기록한다. http://saecom-dalcom.tistory.com/9http://comganet.github.io/dp/2016/06/03/dp-1007http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1144&sca=3050 2016. 9. 21.
[더블릿] 줄세우기 알고리즘(Koi_Align) 줄세우기 알고리즘 해결방법은 다음과 같다. 줄을 세울때 맨 앞과 맨뒤로만 보낼수 있기 때문에, 순서대로 읽어 가면서 정렬이 되어 있는 상태의 숫자는 옮기지 않아도 된다. 정렬이 되어 있지 않은 데이터중 1은 맨앞으로 옮기고, 나머지는 순서대로 맨뒤로 옮기면 자동으로 정렬이 되게 된다. 5, 2, 4, 1, 3의 경우 2, 3은 순서대로 정렬이 되기 때문에 이를 제외한 나머지 값을 옮기게 되므로 5-2 = 3으로 3번 움직여야 한다. 5, 2, 3, 4, 7, 1, 6의 경우 2, 3, 4는 순서대로 정렬 되기 때문에 이를 제외한 나머지 값을 옮기게 되므로 7-3 = 4로 4번 움직여야 한다. 이를 처리하는 코드는 다음과 같다. 2016. 6. 27.