728x90
https://www.acmicpc.net/problem/2903
규칙에 따라 점의 개수를 구해야 하는 문제 였는데
1. 정사각형의 각 변의 중아엥 점을 하나 추가
2. 정사각형의 중심에 점을 하나 추가
문제에 흰점과 검은 점이 섞여있어서 어렵게 느껴졌었는데, 색 구분 없이 보게 되면 완전하게 점으로 채워진 정사각형이 보이게 된다. 이를 통해서 변의 길이만 알게 되면 점의 개수를 구할 수 있다 판단하였다.
처음 변의 길이가 2 였고, 다음은 3, 5로 증가한다. 다음은 점 5개 사이에 점이 1개씩 추가되므로, 변의 길이는 9가 되어진다. 여기서 알 수 있듯이 (이전 변의 길이 -1) 만큼씩 변의 길이가 늘어나고 있는 것이다.
초기 2 1회 2 + 1 = 3 2회 3 + 2 = 5 3회 5 + 4 = 9 4회 9 + 8 = 17 5회 17 + 16 = 33 |
여기서 늘어나는 길이를 나열하여 직관적인 규칙을 찾았고 이는 2의 배수만큼 늘어나며, n회 차의 변의 길이는 (1+2**n)이라는 것이었다.
이에 맞춰서 코드를 작성하였다.
n = int(input()) a = (1 + 2**n) print(a**2) |
728x90
'코딩테스트' 카테고리의 다른 글
백준 2869 : 달팽이는 올라가고 싶다. (1) | 2024.09.26 |
---|---|
백준 1193 : 분수찾기 (0) | 2024.09.26 |
백준 1062번 가르침 (0) | 2024.09.24 |
백준 2720번 세탁소 사장 동혁 문제 풀이 (0) | 2024.09.20 |
백준 2745번 진법변환문제 (0) | 2024.09.19 |