목록2024/10 (8)
미소를뿌리는감자의 코딩
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://f-lab.kr/insight/real-time-chat-system-20240707 메시지 큐와 웹소켓을 활용한 실시간 채팅 시스템 구축이 블로그 포스트는 메시지 큐와 웹소켓을 활용하여 실시간 채팅 시스템을 구축하는 방법에 대해 설명합니다. 메시지 큐와 웹소켓의 역할과 사용법, 그리고 이 두 기술을 결합하여 실시간 채팅f-lab.kr또한 아래 블로그의 메시지 큐에 대한 그림을 통해 이해를 더할 수 있었다.https://velog.io/@noteasymin/%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EB%94%94%EC%9E%90%EC%9D..