목록분류 전체보기 (265)
SW
0. 제목 백준 11726 2xn 타일링 2 BOJ 11726 2xn 타일링 2 C++ 2xn 타일링 2 1. 문제 https://www.acmicpc.net/problem/11727 2. 풀이 DP 방식을 이용하였다. 초기값 2개(dp[1], dp[2])를 먼저 설정하고 가로의 길이가 1씩 증가할 때 어떻게 변할지 생각해보았다. 가로의 길이가 1 증가했을 때 dp[i]라고 놓으면 1칸이 남았을때 채우는 방법 dp[i-1] 과 2칸이 남았을때 채우는 방법(2x2타일로 채우는 방법, 1x2타일 2개로 채우는 방법) 2xdp[i-2] 의 합으로 구할 수 있다. 따라서, dp[i] = dp[i-1] + 2*dp[i-2] 로 정리할 수 있다. 반복문을 다 돌고 10007로 나누려면 수가 너무 커지기 때문에 dp..
0. 계기 지금껏 한 프로젝트에서는 서버를 다룬적이 없어서 서버에 대한 개념이 부족하였다. 또한 AWS를 공부해보고 싶었고 서버부터 클라이언트까지 개발해보고 싶었다. 서버, 웹, 안드로이드, 크롤링에 대한 지식을 얻을 수 있을 것같다. 학식앱을 만들고 앱스토어에 올리는 것까지가 이 프로젝트의 목표이다. 1. 계획 [Client ---> Server] Http Request [Server --> Database] SQL Query [Database --> Server] Data [Server --> Client] Http Response(JSON) 중간중간 필요한 것이 달라질 수 있지만 사용할 것들을 살짝 정해보자면 다음과 같다. 이렇게 방식을 미리 정해놓고 하는 것보다 다양한 방법(더 좋은 효율을 가질수..
0. 제목 백준 11726 2xn 타일링 BOJ 11726 2xn 타일링 C++ 2xn 타일링 1. 문제 https://www.acmicpc.net/problem/11726 2. 풀이 DP 방식을 이용하였다. 초기값 2개(dp[1], dp[2])를 먼저 설정하고 가로의 길이가 1씩 증가할 때 어떻게 변할지 생각해보았다. 가로의 길이가 1 증가했을 때의 답은 마지막에 세로로 타일 한개를 놓는 방법(dp[i-1])과 마지막전까지 해서 가로로 타일 두개를 놓는 방법(dp[i-2])를 합한 값이 방법의 수가 된다. 반복문을 다 돌고 10007로 나누려면 수가 너무 커지기 때문에 dp[i]를 구할때 마다 10007로 나눈 나머지를 구해준다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1..
0. 제목 백준 1463 1로 만들기 BOJ 1463 1로 만들기 C++ 1로 만들기 1. 문제 https://www.acmicpc.net/problem/1463 2. 풀이 DP 방식을 이용하였다. Top-down방식과 Bottom-up방식 중에 Top-down방식을 사용하였다. Top-down방식을 이용할 땐 dp 배열을 10^6 보다 큰 수로 채워놓으면 된다. 먼저 초기값을 설정한 후, dp[i] = 1 + dp[i-1], dp[i] = min(dp[i], 1 + dp[i/3]), dp[i] = min(dp[i], 1 + dp[i/2]) 와 같은 방법으로 연산횟수의 최솟값을 구한다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #inclu..