* 알고리즘 너무 약해서 기초 문제 50개 목표로 푸는 중...
* 3시간 안에 답을 내지 못하면 답지를 보고 30분 내로 정답 판정을 받고, 3일 뒤 다시 풀어보기
Greedy
2 / 50
탐색
2 / 50
기초 동적 프로그래밍
3 / 50(NEW!)
투포인터
0 / 10
문제
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는 점화식 구하는 게 결국 관건인 듯...
'Algorithm' 카테고리의 다른 글
[알고리즘] BOJ 9465번 - 스티커(python3) (0) | 2023.05.23 |
---|---|
[알고리즘] BOJ 10610번 - 30(python3) (2) | 2023.05.21 |
[알고리즘] BOJ 11403번 - 경로 찾기(python3) (1) | 2023.05.21 |
[알고리즘] BOJ 11660 - 구간 합 구하기 5(python3) (0) | 2023.05.18 |
[알고리즘] BOJ 1946번 - 신입 사원(python3) (0) | 2023.05.17 |