반응형
정사각형이 중복 되니 마니 이래저래 말이 많지만 결국에는 점의 수를 구하는 문제.
규칙을 보면
초기상태 4
1번시행 9
2번시행 25
...
인 것을 알 수 있다. 이것은 정사각형의 변의 중앙에 점을 찍는 방식이므로 한 변에 있는 점을 안다면 모든 점을 알 수 있다.
한 변의 점을 기준으로
초기상태 2
1번시행 3
2번시행 5
...
이 된다. 이것을 공식화한다면
초기상태 2
1번시행 : 2 + 1 = 3
2번시행 : 3 + 2 = 5
3번시행 : 5 + 4 = 9
...
n번시행 : (n - 1번째 시행값) + (n - 1번째 실행값 - 1) 이 됨을 알 수 있다.
이제 n번 시행 후 나온 큰 정사각형에서 한 변에 있는 점의 개수를 알았으니, 이를 제곱해주면 모든 점의 수를 구할 수 있다.
이를 코드로 나타내면 다음과 같다.
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int dot = 2;
for (int i = 0; i < n; i++) {
dot += (dot - 1);
}
System.out.println(dot * dot);
sc.close();
}
}
초기상태가 정사각형 1개이므로 한 변에 있는 점의 수는 2개.
n번만큼 반복하면서 dot변수에 (한변에 있는 점의 수 - 1) 을 차례로 더해준다.
이를 제곱하여 출력하면 완성.
반응형
'Java > 백준알고리즘' 카테고리의 다른 글
[Java] 백준알고리즘 #9506 약수들의 합 (0) | 2023.10.05 |
---|---|
[Java] 백준알고리즘 #2501 약수 구하기 (1) | 2023.10.05 |
[Java] 백준알고리즘 #2720 세탁소 사장 동혁 (2) | 2023.10.05 |
[Java] 백준알고리즘 #11005 진법 변환 2 (0) | 2023.10.05 |
[Java] 백준알고리즘 #2745 진법 변환 (0) | 2023.10.05 |