-
#1917 정육면체 전개도Code/BOJ 2020. 1. 2. 19:37728x90반응형
출처:https://www.acmicpc.net/problem/1917
시뮬레이션 문제다. 먼저 처음에 정육면체의 전개도를 펼치면 일직선인 정사각형 4개과 그 큰 변을 기준으로 양 옆에 하나씩 붙어있는 전개도가 정육면체 전개도의 전부라고 생각해서 틀렸다.(아래 그림의 1번부터 6번까지만 생각해서 틀렸음) 하지만 정육면체의 전개도는 다음과 같이 총 11개로 나눌 수 있다.
11개의 전개도는 4가지로 분류를 할 수 있다.
먼저 11번 전개도를 제외한 나머지는 세로 폭이 3이라는 것을 알 수 있다.
그러므로 (1)~(10)까지 먼저 고려해 보자.
1. (1)~(6)까지는 가운데 길이가 4이고 양옆에 정사각형이 하나씩 붙어있다.
2. (7),(8),(10)번은 가운데 길이가 3이고 양 옆에 정사각형 2개, 반대편에는 정사각형이 1개씩 붙어있는데 정사각형이 1개 붙어있는 곳은 그 위치가 아무데나 나와도 상관없다. 하지만 2개 붙어있는 곳은 가운데 길이가 3인 중심 변의 양 끝에 붙어 있어야 한다.
3. (9)는 가운데 변의 길이가 2, 양옆에 붙어있는 정사각형도 2개씩 붙어 있어야 하고 계단식으로 차례차례 붙어져 있어야 한다.
마지막으로
4. (11)번 전개도만 높이가 2이며 높이당 붙어있는 정사각형은 3개씩 붙어있어야 하고 길이 3인 이 직사각형은 서로 끝부분만 접촉해 있어야 한다.
정리하자면 가능한 모든 전개도는 다음과 같다
//가능한 모든 전개도 1. 1 4 1 2. 2(모서리에 붙어있어야함) 3 1 3. 2 2 2 (계단식으로) 4. 3 3 (끝과 끝끼리) 이러한 전개도 특성을 인지하고 이 특성에 맞게 구현을 하면 다음과 같다.
소스코드
728x90반응형'Code > BOJ' 카테고리의 다른 글
#17244 아맞다우산 (0) 2020.01.03 #2096 내려가기 (0) 2020.01.02 #2098 외판원 순회 (0) 2020.01.01 #14267 내리 갈굼 (0) 2020.01.01 #1019 책 페이지 (0) 2019.12.31