개요 이번 글에서는 Java의 Java Collection Framework 중 List, Set, Map에 대해 이야기 해보려고 한다. Java Collection Framework(JCF) 자바에서 기본적인 자료구조들을 한 곳에 모아 관리하고 편하게 사용하기 위해서 제공하는 것을 의미한다. Java Collection Framework의 상속 구조는 크게 Collection(List, Set)과 Map으로 되어있다. 왜 사용할까? 개발을 하면서 많은 데이터를 처리하기 위해 배열과 같은 자료구조로만 개발을 하는 것은 힘들뿐더러 배열의 한계, 즉 크기가 고정되어 있다는 문제점이 큰 원인으로 자리 잡아 자료의 삽입, 삭제 등이 용이해지고 어떠한 자료형이라도 담을 수 있으며 크기가 자유롭게 늘어난다는 강점 ..
문제 https://programmers.co.kr/learn/courses/30/lessons/12914 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2 programmers.co.kr 풀이 DP로 해결할 수 있었다. 이 문제도 2 x n 타일링처럼 점화식만 구해주면 레벨3 치고는 그렇게 어렵지 않다. DP[N]이 N칸을 뛰어야 할 때 나올 수 있는 경우의 수라고 가정하면 점화식은 DP[N] = DP[N - 1] + DP[N - 2]이다. 점화식 도출 과정은 예를들어 N = 5라고 ..
문제 https://programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr 풀이 DP로 해결할 수 있었다. 점화식만 구해주면 레벨3 치고는 그렇게 어렵지 않다. 점화식은 DP(N) = DP(N - 1) + DP(N - 2)이고 그 이유는 DP(5)를 예를들면 DP(5)는 DP(4)에 | 모양 타일을 하나만 넣어주어 만들 수 있고, DP(3)에 -- 모양 타일 두 개를 넣어주면 만들 수 있기 때문이다. 하지만 이런 생각..
문제 https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 풀이 알고리즘이 따로 필요한 문제는 아니었고 그냥 단순 구현 문제로 풀 수 있었다. 우선 매개변수 board를 전역으로 사용하는 것이 편해서 map이라는 변수에 Copy 해줬고, moves의 모든 원소들에 1을 빼주어 인형을 뽑아주었다. (Pick 함수, 인덱스는 0부터 시작하는데 Line의 값들은 1 ~ 5이기 때문) 가장 중요한 Pick 함수를 보면 입력받은 매개변수 Line을 ..