본문 바로가기

Algorithm(알고리즘)/SWEA(SW Expert Academy)9

[SWEA][Java][모의 SW][재귀, 부분집합] 2112 - 보호 필름 성능이 우수한 보호 필름을 제작하려고 한다. 보호 필름은 [Fig. 1]와 같은 엷은 투명한 막을 D장 쌓아서 제작된다. 막은 [Fig. 1]과 같이 동일한 크기를 가진 바(bar) 모양의 셀들이 가로 방향으로 W개 붙여서 만들어진다. 이렇게 제작된 필름은 두께 D, 가로 크기 W의 보호 필름이라고 한다. [Fig. 1] 각 셀들은 특성 A 또는 특성 B를 가지고 있다. 보호 필름의 성능은 셀들의 특성이 어떻게 배치됨에 따라 결정된다. [Fig. 1]은 셀 6개를 이어서 만든 막의 단면이다. [Fig. 2]는 셀 8개로 이루어진 엷은 막 6장을 쌓아서 만든 두께 6, 가로크기 8인 보호 필름의 단면이다. A, B는 각 셀들이 가진 특성 A, 특성 B를 의미한다. [Fig. 2] 보호 필름의 성능을 검사하.. 2021. 4. 16.
[SWEA][Java][모의 SW][DFS] 1949 - 등산로 조성 등산로를 조성하려고 한다. 등산로를 만들기 위한 부지는 N * N 크기를 가지고 있으며, 이곳에 최대한 긴 등산로를 만들 계획이다. 등산로 부지는 아래 [Fig. 1]과 같이 숫자가 표시된 지도로 주어지며, 각 숫자는 지형의 높이를 나타낸다. 등산로를 만드는 규칙은 다음과 같다. ① 등산로는 가장 높은 봉우리에서 시작해야 한다. ② 등산로는 산으로 올라갈 수 있도록 반드시 높은 지형에서 낮은 지형으로 가로 또는 세로 방향으로 연결이 되어야 한다. 즉, 높이가 같은 곳 혹은 낮은 지형이나, 대각선 방향의 연결은 불가능하다. ③ 긴 등산로를 만들기 위해 딱 한 곳을 정해서 최대 K 깊이만큼 지형을 깎는 공사를 할 수 있다. N * N 크기의 지도가 주어지고, 최대 공사 가능 깊이 K가 주어진다. 이때 만들 .. 2021. 4. 16.
[SWEA][Java][모의 SW][DFS] 2105 - 디저트 카페 친구들과 디저트 카페 투어를 할 계획이다. [Fig. 1]과 같이 한 변의 길이가 N인 정사각형 모양을 가진 지역에 디저트 카페가 모여 있다. 원 안의 숫자는 해당 디저트 카페에서 팔고 있는 디저트의 종류를 의미하고 카페들 사이에는 대각선 방향으로 움직일 수 있는 길들이 있다. 디저트 카페 투어는 어느 한 카페에서 출발하여 [Fig. 2]와 같이 대각선 방향으로 움직이고 사각형 모양을 그리며 출발한 카페로 돌아와야 한다. 디저트 카페 투어를 하는 도중 해당 지역을 벗어나면 안 된다. 또한, 친구들은 같은 종류의 디저트를 다시 먹는 것을 싫어한다. 즉, [Fig. 3]과 같이 카페 투어 중에 같은 숫자의 디저트를 팔고 있는 카페가 있으면 안 된다. [Fig. 4]와 같이 하나의 카페에서 디저트를 먹는 것도.. 2021. 4. 16.
[SWEA][Java][D4][최소 신장 트리,크루스칼] 1251 - 하나로 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15StKqAQkCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 이 문제는 전형적인 최소 신장 트리 문제이다. 최소 신장 트리 문제를 해결하는 방법은 크루스칼, 프롬 알고리즘이 있다. 해당 문제는 크루스칼로 접근해서 풀었고 크루스칼로 풀기 위해서는 Union 파인드를 알아야 한다. 유니온 파인드란 해당 부모를 찾아 부모가 같은지 확인하는 것이고 이는 그래프가 순환되는 트리로 연결되는지 확인할 때 사용된다. 크루스칼은 가중치가 낮은 순으로 연결하면서 순환 트리로 연결.. 2021. 3. 29.