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 | 31 |
Tags
- while
- 백준
- event_scheduler
- RESTful
- DP
- 빗버킷
- 알고리즘
- 자바
- 페이징
- 2375
- WebFlux
- 11053
- bitbucket
- 검색 API
- Programming
- 젠킨스
- 스프링 번역
- 도커
- MariaDB
- search api
- jenkins
- Reactive stream
- 알고리즘다지기프로젝트
- 컴퓨터공학기초
- 다이나믹프로그래밍
Archives
- Today
- Total
쑥로그
[자바] 백준 11053 가장 긴 증가하는 수열 본문
https://www.acmicpc.net/problem/11053
풀이방법은,
{10, 20, 10, 30, 20, 50} 일 때
10
10 20
10 20 30
10 20 50
10 20 30 50
이렇게 이전에 갔던 길을 저장하고 있는 것이다.
처음에 재귀로 풀었다가 시간초과가 났다. 재귀도 결국 이전에 계산 했던 값을 가지고 들어가는 거니까 상관없을 거라 생각했는데 3중 포문이 되었다.
따라서 메모이제이션으로 푸는게 답이고 갔던 길의 수열 수를 저장하고 있는다.
1 | 1 | 1 | 1 | 1 | 1 |
로 시작해서 인덱스 0>1, 0>3, 0>4, 0>5로 갈 수 있으니까 ++한다.
이 때, 기존의 수열 수가 더 많으면 그게 답에 더 가까우니까 ++하지 않는다.
1 | 2 | 1 | 2 | 2 | 2 |
1>3, 1>5로 갈 수 있으므로 ++한다.
이 때도 기존의 수열 수와 비교한다.
1 | 2 | 1 | 3 | 2 | 3 |
2>3, 2>4, 2>5로 갈 수 있다.
이 때, 2>3으로 가려고 했는데 3에는 이미 3이라는 숫자가 있다. 2에는 1이라는 숫자가 있다. 2에 있는 2보다 3이라는 숫자가 더 크므로 그게 더 답에 가깝다.
1 | 2 | 1 | 3 | 2 | 3 |
이런 식으로 for문을 돌면서 계산해준다.
https://github.com/mychum1/shelf/blob/master/com.ksko.algorithm/src.main.java/baekjoon/P_11053.java
'개인 프로젝트 > 72일 알고리즘 다지기 프로젝트' 카테고리의 다른 글
[자바] 백준 1697번 완전탐색 BFS - 숨바꼭질 (0) | 2019.09.30 |
---|---|
[자바] 백준 14501 문제 풀이 - 퇴사 (0) | 2019.09.17 |
[자바] 백준 1912 - 연속합 풀이 (0) | 2019.09.10 |
알고리즘 스터디 2주차 준비 - 동적계획법 #1 (0) | 2019.08.31 |
72일 알고리즘 스터디 커리큘럼 (0) | 2019.08.25 |