Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- 트랜스포머 #자연어처리 #딥러닝 #구글 #attention #self-attention #BERT #transformer #deeplearing
- docker #도커 #도커 컨테이너 #docker container #도커 우분투
- 백준
- jupyter notebook #anaconda #vscode #pytorch #딥러닝 #deep learning #vscode server #서버 vscode #ssh vscode #vscode cuda
- GPU #jtorch GPU #파이토치 병렬 #파이토치 GPU #pytorch gpu #multi process torch #horovod
- cuda #centos #cuda삭제 #리눅스 #cenos cuda삭제
- BERT #구글BERT #BERT의정석
- docker #아나콘다 #anaconda #ubuntu anaconda #docker anaconda
- 구름자연어처리과정
- docker #우분투 #ubuntu #도커 설치 #docker 설치 #docker installation #우분투 도커
- 깃허브 #우분투 #ubuntu #Github #깃허브 우분투 #깃헙 우분투 #깃헙
- pytorch #cuda #우분투 torch #ubuntu pytorch #cuda torch #cuda pytorch
- pandas #folium #groupby #네이버부스트코스 #코칭스터디
- ssh #우분투 ssh #우분터 서버 #도커 #우분투 도커 #docker #cuda #우분투 개발환경 #딥러닝 #ubuntu docker #ubuntu cuda
- logistic regression
- 머신러닝
- 알고리즘 #levenshtein distance #편집거리 #edit distance
- 구름
- 파이썬 #Python
- GPU #cuda out of memory #gpu 메모리 #pytorch
- docker #cuda #docker container #도커 #도커 컨테이너 #쿠다 #cuda 11.3
- 백준 #알고리즘 #골드
- Machine Learning
- 트랜스포머 #transformer #attention #self-attention #어텐션 #인공지능 #AI #딥러닝 #NLP #자연어처리
Archives
- Today
- Total
바닥부터 시작하는 개발 공부
[알고리즘]백준 9461번: 파도반 수열 본문
728x90
알고리즘 유형: 다이나믹 프로그래밍
문제

오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다.
파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다.
N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100)
출력
각 테스트 케이스마다 P(N)을 출력한다.
풀이
점화식을 세워보면 간단하게 점화식이 계산됩니다
i번째 삼각형의 변의 길이는 i-5번째 삼각형과 i-1번째 삼각형의 변의 합으로 주어집니다
import sys
T = int(sys.stdin.readline().strip())
def DP(n):
dp = [0,1,1,1,2,2,3,4,5,7,9]
for i in range(11, n+1):
d = dp[i-5]+dp[i-1]
dp.append(d)
if n>10:
return dp[-1]
else:
return dp[n]
for i in range(T):
n = int(sys.stdin.readline().strip())
print(DP(n))728x90
'Algorithm > 백준' 카테고리의 다른 글
| [알고리즘]백준 5618번: 공약수 (0) | 2023.02.21 |
|---|---|
| [알고리즘]백준 2477번: 참외밭 (0) | 2023.02.17 |
| [알고리즘]백준 1463번: 1로 만들기 (0) | 2023.02.16 |
| [알고리즘]백준 11659번: 구간 합 구하기4 (0) | 2023.02.15 |
| [알고리즘]백준 1620: 나는야 포켓몬 마스터 이다솜 (0) | 2023.02.15 |
Comments