본문 바로가기
반응형

문제풀이/SWEA 문제풀이6

[ 알고리즘 ] 코딩 SWEA 5653 - 줄기세포 배양.java SWEA 5653 - 줄기세포 배양 * 자바로 구현 * 줄기세포 생명력이라는 수치를 가지고 있음. * 초기 상태 비활성. 수치가 x인 세포는 x 시간 동안 비활성 * x 시간이 지나면 활성. 세포가 죽어도 소멸이 아닌 남아있음 * 활성화된 줄기세포는 첫 1시간 동안 상하좌우로 번식. * 번식된 세포는 비활성. * 번식하려는 곳에 2개 이상의 세포가 있다면 생명력 수치가 높은 세포가 혼자 차지. ​* 배양용기 크기는 무한함. * K 시간 후 살아있는 줄기세포( 비활성 + 활성)의 총개수를 구하라. * 우선순위 큐와 ArrayList를 이용해서 구현하면 쉽고(...?) 빠르게 구현할 수 있다. * 근데 그런 생각을 못 해서.. ArrayList와 Collection 배열의 정렬을 이용해서 구현했다. * 시뮬.. 2020. 9. 5.
[ 알고리즘 ] 코딩 SWEA 1251 - 하나로.java SWEA 1251 - 하나로 * 자바로 구현 * 주어진 모든 섬을 하나로 연결하자. * 단, 세율E, 길이L의 비용이 발생 * 비용 : E*L^2 * 초기에 주어지는 간선가중치 없음. * 리스트, 우선순위 큐, 프림 알고리즘을 이용해 MST를 찾았다. * 각 정점마다 최소값만을 찾아서 추가 추가 하는거면 꼭 이렇게 했어야 했나 싶기도.. ** 인접행렬, 크루스칼을 이용해서도 구현할 수 있다 ** public class SWEA_1251_Hanaro { static class Island { // 섬 위치 정보 int y, x; public Island(int y, int x) { this.y = y; this.x = x; } } // 섬간에 이어진 간선 정보 static class Edge impleme.. 2020. 9. 5.
[ 알고리즘 ] 코딩 SWEA 1767 - 프로세서 연결하기.java SWEA 1767 - 프로세서 연결하기 * 자바로 구현 * N x N개의 셀이있다. * 각 셀에는 1개의 코어 혹은 1개의 전선이 올 수 있다. * N+1의 가장자리에는 전원이 흐르고있다. * 코어와 전선을 연결하는 전선은 직선만 가능하다. * 전선은 절대 교차해서는 안된다. * 초기 코어의 위치가 주어진다. * (가장자리에 맞닿아있는 코어는 전원이 들어온 것으로 판단한다) * 최대한 많은 코어에 전원을 연결할 경우 전선 길이의 합은? * 여러 방법이 있다면 최소의 전선길이를 구하라. * 7 2020. 9. 5.
[ 알고리즘 ] 코딩 SWEA 3234 - 준환이의 양팔저울.java SWEA 3234 - 준환이의 양팔저울 * 자바로 구현 * N개의 무게추를 저울에 올리는 방법은 N! * 왼쪽에 올릴 것인지 오른쪽에 올리 것인지를 선택하면 2^N * N! * 이때 저울의 오른쪽이 왼쪽보다 무거우면 안된다. * 저울에 무게추를 올릴 수 있는 모든 경우의 수 * static 변수 생성하면 메모리 초과 발생. * 아래 코드에 더해서 위의 조건중에 N!*2^N을 이용해서 모든 추를 오른쪽에 놓아도 무겁지 않은 경우에 한해서 미리 계산해놓은 N!과 2^N을 이용하면 속도가 훨씬 많이 향상된다. * 아래 코드에 더해서 메모이제이션 기법을 적용하면 속도가 훨씬 향상된다. public class SWEA_3234_Two_Arm_Scale { static int total; public static .. 2020. 9. 5.
[ 알고리즘 ] 코딩 SWEA 7793 - 오 나의 여신님.java SWEA 7793 - 오 나의 여신님 * 자바로 구현 * 악마는 악마의 손아귀라는 스킬을 사용한다. * 악마의손아귀 : 매 초마다 상하좌우 인접해있는 영역을 부식시키며 확장 * 단 지은이라는 여신이 있는 공간은 피해를 입지않는다. * 수연이는 여신이 있는곳까지 가야한다! * NxM크기, 돌이 있는 곳은 갈 수없고, 부식되지않음. * 수연이 이동 동서남북 여신에게 가는 최소시간 구하기 * 2 2020. 9. 5.
반응형