Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 27 | 28 | 29 | 30 |
Tags
- 노마드코더
- 클린코드
- CS50
- 백준
- activity
- 데이터바인딩
- 지하철api
- github
- java
- RecyclerView
- androidstudio
- Windows10
- 노마드북클럽
- 노개북
- 액티비티
- 윈도우10
- 부스트코스
- 사용자폴더
- 북클럽
- 부스트캠프
- 알고리즘
- Node.js
- BOJ
- 트렐로 삭제
- 선형레이아웃
- codility
- listview
- 안드로이드
- CardView
- Android
Archives
- Today
- Total
Be Developer
[백준/BOJ] 9461번 : 파도반 수열 (Java) 본문
반응형
문제요약
나선 모양으로 놓여지는 N번째 정삼각형 변의 길이를 구하시오.
풀이
P(1) = P(2) = P(3) = 1
P(4) = P(5) = 2
P(6)부터 P(N) = P(N-5) + P(N-1)
다른 사람의 풀이를 보니, P(4)부터 P(N) = P(N-3) + P(N-2)로 풀이 할 수 있었다.
코드
시간 복잡도 O(N)
import java.util.Scanner;
public class BOJ_9461 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int t = scan.nextInt();
for (int i=0; i<t; i++) {
int n = scan.nextInt();
System.out.println(getSideLength(n));
}
scan.close();
}
public static long getSideLength(int n) {
long[] sideLengths = new long[101];
sideLengths[1] = sideLengths[2] = sideLengths[3] = 1;
sideLengths[4] = sideLengths[5] = 2;
for (int i=6; i<=n; i++) {
sideLengths[i] = sideLengths[i-5] + sideLengths[i-1];
}
return sideLengths[n];
}
}
반응형
'Algorithm' 카테고리의 다른 글
[백준/BOJ] 5397번 : 키로거(Java) (0) | 2020.07.28 |
---|---|
[백준/BOJ] 11399번 : ATM (Java) (0) | 2019.08.19 |
[Codility] Lesson 5 : PassingCars (Java) (0) | 2019.08.13 |
[백준/BOJ] 1904번 : 01타일 (Java) (0) | 2019.08.09 |
[Codility] Lesson 4 : FrogRiverOne (Java) (0) | 2019.04.10 |
Comments