문제: https://www.acmicpc.net/problem/2903
1. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
long answer = 4;
while(T-- > 0)
answer = answer * 4 - ((int)Math.sqrt(answer) * 2 - 1) * 2 -1;
System.out.println(answer);
}
}
2. 설명
초기 상태에서 1번 그림을 비교해보면 초기 상태에서 4개를 하나의 정사각형으로 만든 것으로 보이며 마찬가지로 1번 그림과 2번 그림을 비교하면 1번 그림을 4번 이어 붙이면 2번 그림 상태가 된다.
이 점을 이용하여 중복되는 것은 2변의 점은 2번씩 겹치며 꼭짓점은 4번 겹치기에 코드에 적힌 식이 도출된다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 - 9506번: 약수들의 합 [Java] (0) | 2023.09.07 |
---|---|
백준 알고리즘 - 2501번: 약수 구하기 [Java] (0) | 2023.09.06 |
백준 알고리즘 - 2720번: 세탁소 사장 동혁 [Java] (0) | 2023.09.04 |
백준 알고리즘 - 11005번: 진법 변환 2 [Java] (0) | 2023.09.03 |
백준 알고리즘 - 2745번: 진법 변환 [Java] (0) | 2023.09.02 |