이번주는 DP 공부와 함께 코딩테스트에서 자주 사용하는 자료구조 몇가지 함수들에 대해 정리해 보았다.
import java.io.*;
import java.util.*;
public class Main {
//dp[0] = 1 , dp[1] = 2, dp[2] = 3, dp[3] = 2, dp[4] = 2
static int N;
static long[] dp;
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
dp = new long[1000+1];
dp[0] = 1;
dp[1] = 2;
for(int i = 2; i <= N; i++){
dp[i] = (dp[i-1] * 2 + dp[i-2] * 3)%1000000007;
for(int j = i - 3; j >= 0; j--)
dp[i] = (dp[i] + dp[j] * 2) % 1000000007;
}
System.out.println(dp[N]);
}
}
https://www.codetree.ai/missions/2/problems/rectangle-fill-3?&utm_source=clipboard&utm_medium=text
// HashMap
HashMap<K,V> map = new HashMap<>();
map.put(K,V);
map.remove(K);
map.getOrDefault(K);
map.get(K);
Set<K> keys = map.keySet();
List<K> keyList = new ArrayList<>(keys);
- 시간 복잡도 O(1)
// HashSet<V>
HashSet<E> set = new HashSet<>();
set.add(E);
set.remove(E);
set.contains(E);
비교대상 > List였지만, Set으로 바꾸고,
비교대상.contains(E); 로 List의 아이템인 E가 비교대상에 포함되어 있는지 확인할 수 있다.
PriorityQueue<E> pq = new PriorityQueue<>();
pq.add(E);
pq.size();
pq.isEmpty();
pq.peek();
pq.poll();
[BJ] 1965: 상자넣기 (0) | 2023.12.12 |
---|---|
[BJ] 16987 : 계란으로 계란치기 (0) | 2023.12.12 |
[코드트리 챌린지] 블로그 챌린지 : 4회차(9월27일 ~ 10월 2일) / 뿌요뿌요 (0) | 2023.10.02 |
[코드트리 챌린지] 문자열 - 문자열 선언하고 사용하기 (0) | 2023.09.18 |
[코드트리 챌린지] 실력체크 + 적절한 문제집 추천 (0) | 2023.09.01 |
댓글 영역