목록Algorithm (7)
DNF LOVE
DP알고리즘의 또 다른 문제 2xn타일 구하기 문제이다. 이 문제도 어제 풀었던 1, 2, 3 더하기와 똑같은 원리로 이루어져 있다. 우선, 타일은 2x1 과 1x2 이 두가지가 주어진다. 그러다면 우리가 바로 알 수 있는 경우의 수는 1일떄와 2일때이다. tile[1] 일때, 2x1 하나밖에 쓰이지 못하니 경우의 수는 1이다. 또, tile[2] 일때, 2x1 타일을 두개 겹친 것과 1x2 타일을 가로로 두 개 겹친 것해서 경우의 수는 2가지가 나온다. 그렇다면 3일때는 어떨까? 2x1타일을 앞에 세울 때, 2가지 경우와 1x2타일을 두개로 겹쳐서 2x2로 만들때 1가지 경우의 수를 더하면 3가지의 경우의 가지가 나온다. 그렇다. 2x1타일을 맨 앞에 세웠을 때의 경우의 수와 1x2타일을 가로로 겹쳐 ..
백준 9095번 DP의 기본 문제 1, 2, 3번 더하기 문제를 풀어봤다. 게임 개발을 해봤으면서 주 언어가 JAVA인 나는 자바로 풀이를 하겠다. 이 문제의 원리는 매우 간단하다. 이 문제는 하나의 자연수를 1, 2, 3 으로만 조합하여 더해서 해당 자연수가 나오는 경우의 수를 구하는 문제이다. 그렇다면 먼저 1, 2, 3의 경우의 수를 찾아 봐야 한다. d[0]은 0 d[1] = 1밖에 없으니 경우의 수는 1 d[2] = (1 + 1), (2) 즉 경우의 수는 2 d[3] = (1 + 1 + 1), (1 + 2), (2 + 1), (3) 즉 경우의 수는 3 이렇게 되어 있을 때 d[4]는 (1+1+1+1), (1+1+2), (1+2+1), (2+1+1), (2+2), (1+3), (3+1) 으로 7개..
오늘도 가볍게 정렬 문제로! 백준 알고리즘 11650번, 좌표 정렬하기1을 풀어보았다. 사실 알고리즘과 함께 c++ 공부를 하고자 c++ 로 알고리즘을 풀려고 했지만,STL을 쓸 줄 모르는 c++초보자이기에 그냥 편한 java로 다시 했다. 11650번 좌표 정렬하기는 이렇게 생겨먹은 간단한 문제이다. 이것도 역시 가볍게 풀었다. (자바를 약 2달 동안 안했더니 문법 조금 까먹은걸 제외하곤...) 1. 우선 점의 개수 정수형 num을 입력 받는다. 2. x, y값을 저장할 2차원 배열 co를 선언하고 크기 만큼의 값을 입력 받는다. 3. Arrays.Sort(배열명, new Comparator(){@Override 하기}-> 먼저 배열을 Sort를 사용해서 정렬을 하고, comparator를 사용하여 만..