목록미뿌감의 코딩 (348)
미소를뿌리는감자의 코딩
1. 문제https://www.acmicpc.net/problem/11727 2. 접근 방법f(n) = f(n-1) + f(n-2) * 2라는 점화식을 생각해 낼 수 있었다.n-1에서는 1*2 타일 하나만 선택되어서 나올 수 있으며 f(n-2)에서는 2*1과 2*2를 선택함을 통해 f(n)에 도달할 수 있다. 이를 이용해서 코드를 작성하게 되었다. 3. 코드def get_poss(n): dp = [1] * 1001 dp[2] = 3 for i in range(3, n+1, 1): dp[i] = (dp[i-1])%10007 + (2 * dp[i-2])%10007 return dp[n] % 10007if __name__ == "__main__": n = int(inpu..
1. 개요프로젝트에서 채팅의 기능을 확장하면서, JWT 토큰 인증. 인가를 통한 이용이 필요로 하게 되었다.또한, 메인 서버의 Mysql DB 연결을 통해서, 채팅 내역과 기록들 또한 넘겨 주어야 할 필요성이 있었다. 특히, 새로 추가된 기능 중 : "채팅방 목록 반환시, 최근에 보낸 메시지와 읽음 여부를 반환" 해주어야 했다.따라서 이를 해결할 방법으로 MongoDB 동시에 접근 - 동시성 제어 정합성 필요MongoDB Replica Set 및 Sharding 사용메인 서버에서 채팅 서버로 API 요청이벤트 기반 메시징 시스템 (Kafka, RabbitMQ)메인 서버의 MySQL 연결 후 사용. - 동시성 제어 정합성 필요 를 생각해 보았다. 우선 메인 서버에서 채팅 서버로 API를 요청하는 것은, ..

1. 문제https://www.acmicpc.net/problem/14501 2. 접근 방법이번 문제는 dp를 이용한 문제이다.이는 해당 Ti로부터 뒤에 값이 이용 불가해 지기 때문에, 뒤에서 부터 계산을 하는 것이 편리할 것이라는 생각이 들었다. 즉, 6일 -> 5일 -> 4일 ... 순으로 탐색을 진행할 것이다. dp에 저장되는 값들은 해당 일에서의 최대 이익을 뜻하게 된다. 1. 현재 값 추가 현재 값을 추가할 때보다 이전 값을 적용시켰을 때, 더 이득일 때가 있다.1일을 예로 들어보자. 1일의 상담을 받게 된다면, 1일에서 5일 뒤부터 상담이 가능해 진다. 즉, 6일부터 상담이 가능해 진다.하지만 6일 일 때의 최대 이익인 dp[i + counsle[i][0]] 은 0이다. 6일을 선택해서 얻을 ..
1. 문제https://www.acmicpc.net/problem/10844 2. 접근 방법이번 문제의 경우, 처음에 dfs와 memoization으로 접근하였다.하지만, 약점인 dp를 극복하기 위해 고른 문제인 만큼 다시 dp로 접근하려고 노력 하였다.dfs의 길이 보이니, 역으로 dp를 생각하는 것이 까다로웠다. 점화식을 세워보았다.f(i-1, n) + f(i+1, n) = f(i, n+1) 1 -> 0, 2가 올 수 있고, 2 -> 1, 33 -> 2, 44 -> 3, 55 -> 4, 66 -> 5, 77 -> 6, 8 즉 앞 뒤로 값이 올 수 있으므로, 위와 같은 점화식을 세워주었다. 이제 n이 1일 때의 식을 세워주었다.2차원 배열로 보았을 때, 아래와 같은 모양을 나타낸다. 0 1 ..