728x90
https://www.acmicpc.net/problem/2903
2903번: 중앙 이동 알고리즘
상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다.
www.acmicpc.net
- 정사각형의 각 변의 중앙에 점을 하나 추가한다.
- 정사각형의 중심에 점을 하나 추가한다.
정사각형에 위의 중앙 이동 알고리즘을 n번 적용하였을 때
추가된 점의 개수를 중복 없이 구하는 문제다.
개인적으로는 문제의 이해보다는 그림을 보고 규칙을 찾아서 풀었다.
주어진 그림 예시를 살펴보다 보니
한 줄의 사각형의 수는 이전 사각형의 개수의 2배로 증가하는 규칙이 있다.
중앙 이동 알고리즘을 적용하기 전의 초기 상태는 사각형이 하나라면
그 뒤는 2 > 4 > 8 > 16 > 32 > ... 순서로 증가한다.
또한 한 줄에 찍히는 점의 수는
한 줄에 존재하는 사각형의 수 + 1이고
가로와 세로 상관 없이 찍히는 점의 수는 같으니
(한 줄에 존재하는 사각형의 수 + 1)의 제곱이
중복을 제외한 점의 수가 된다.
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int count = 1;
for(int i = 0; i < n; i++) {
count *= 2;
}
System.out.println((count + 1)*(count + 1));
}
}
'Java > Algorithms' 카테고리의 다른 글
[백준] 2577번 : 숫자의 개수 (0) | 2023.09.28 |
---|---|
[배열] 두 수의 합이 100인 경우 (0) | 2023.09.27 |
[백준] 2292번 : 벌집 (0) | 2023.07.30 |
[백준] 2720번 : 세탁소 사장 동혁 (0) | 2023.07.30 |
[백준] 1316번 : 그룹 단어 체커 (0) | 2023.06.26 |