반응형
🔺 문제
9461번: 파도반 수열
오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// DP 배열 채우기
long[] P = new long[101];
P[1] = P[2] = P[3] = 1;
for(int i = 4 ; i <= 100 ; i++) {
P[i] = P[i - 3] + P[i - 2];
}
// 입력
int T = Integer.parseInt(br.readLine());
while(T --> 0) {
int num = Integer.parseInt(br.readLine());
sb.append(P[num]).append("\n");
}
System.out.println(sb.toString());
br.close();
}
}
|
cs |
✅ 해결 아이디어
✔ DP
- P[N] : 나선에 있는 정삼각형의 변의 길이
- 점화식 :P[ i ] = P[ i - 3 ] + P[ i - 2 ]
또 다른 점화식은 P[i] = P[i - 1] + P[i - 5] 라고 함.
💥 유의사항
• 100번째 항 요청 시, int형 범위를 넘기므로 배열을 long형으로 만들어야 값이 제대로 나온다. (참고1, 참고2)
🔺 다른 풀이들
- 복습용... 좋은 설명
[백준] 9461번 : 파도반 수열 - JAVA [자바]
st-lab.tistory.com
- 그림 과정
[백준] 9461번: 파도반 수열 - JAVA
🔗 문제 링크 BOJ 9461번: 파도반 수열 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정
girawhale.tistory.com
💬 느낀 점
앞으로 이 문제 나오면 DP & 점화식 기억해둬야지...
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 1149번: RGB거리 (0) | 2023.05.31 |
---|---|
[백준/JAVA] 1912번: 연속합 (0) | 2023.05.30 |
[백준/JAVA] 1904번: 01타일 (1) | 2023.05.30 |
[백준/JAVA] 9184번: 신나는 함수 실행 (1) | 2023.05.30 |
[백준/JAVA] 24416번: 알고리즘 수업 - 피보나치 수 1 (0) | 2023.05.30 |