Bibbidi Bobbidi Boo

* 알고리즘 너무 약해서 기초 문제 50개 목표로 푸는 중...

* 3시간 안에 답을 내지 못하면 답지를 보고 30분 내로 정답 판정을 받고, 3일 뒤 다시 풀어보기


Greedy

2 / 50

 

탐색

2 / 50

 

기초 동적 프로그래밍

3 / 50(NEW!)

 

투포인터

0 / 10


문제

9461번: 파도반 수열 (acmicpc.net)

 

9461번: 파도반 수열

오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의

www.acmicpc.net

→ solved.ac 기준 실버 3 문제


문제 해결 아이디어

그림부터 점화식을 구하면 되는 문제

주어진 값으로 cache를 초기화 하고,

다음과 같은 점화식으로 cache에 값을 더해줌

cache[i] = cache[i-1] + cache[i-5]

그러고 나서 테스트 케이스 받아서 출력만 하면 끝


구현

내 풀이

import sys
input = sys.stdin.readline

cache = [1, 1, 1, 2, 2, 3, 4, 5, 7, 9]
for i in range(10, 100) :
  cache.append(cache[i-1] + cache[i-5])
  
t = int(input())
for _ in range(t):
  p = int(input())
  print(cache[p-1])

메모

  • 걸린 시간: 10분...?

 


마치며

다른 실버 1문제 풀다가 1시간 내내 못 풀어서 다음에 풀기로 하고 단계를 낮췄는데... 음..

DP는 점화식 구하는 게 결국 관건인 듯...

profile

Bibbidi Bobbidi Boo

@비비디

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!