본문 바로가기

전체 글

(64)
Spring Web Socket 서버 생성 프로젝트 시작 개요 웹서버를 주로 만지고 채팅은 따로 구현해본 기억이 없고, 개인적으로 하고있는 프로젝트에 사이드 프로젝트로 웹 채팅을 만들어보고자 한다. 주로 우리가 많이사용하고있는 HTTP 웹 서버는 stateless로 소켓을 유지하고있지 않으며, 한번 통신후 연결을 해제 해 버린다. 채팅은 좀 다른 개념으로가야한다 HTTP 통신이 아닌 TCP 소켓 통신을 통하여 연결하여 서로간의 메세지를 교환하다 세션을 종료해주는 방식으로 생각하고있다. STOMP 프로토콜의 pub/sub를 이용한 통신을 통해도 채팅서버 구축이 가능 해보인다. 필자는 일단 간단하게 만들어보는 수준으로 주로 사용하고있는 기술 스프링부트를 이용하여 소켓 통신 채팅서버를 만들어보려한다. 간단하게 의존성 몇개주입하고 만들었다. 웹 소켓 C..
백준 숌 사이 수열(1469) 백트래킹 문제를 풀어보았다 복잡해서 시간이 오래걸렸다. https://www.acmicpc.net/problem/1469 1469번: 숌 사이 수열 첫째 줄에 X의 크기 N이 주어진다. 둘째 줄에 X에 들어가는 수가 빈칸을 사이에 두고 주어진다. X의 크기는 8보다 작거나 같은 자연수이다. X의 원소는 0보다 크거나 같고 16보다 작거나 같은 정수 www.acmicpc.net 초기에는 가능한 종류를 만들어보려고 하였지만 시간초과 발생 할 것같아서 주어진 경우의 수에서 가능한 경우의 수를 찾는 방식으로 처리를 했다. 문제의 핵심은 현재 뽑은 원소의 값이 2개가 위치할 수있는가 예를들어 2라면 현재 위치 2 ? ? 2 해서 마지막 2가 놓일 수 있는가 핵심이다. 나의 로직에서는 depth + element ..
백준 로프(2217) 그리디 문제를 한개 더풀어봤다 생각보다 이 알고리즘이 재미가 있다. https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 로프의 개수가 늘어날수록 (로프 리스트 중 가장 낮은값 * 로프 개수가) 최대 무게가 된다 이러한 방식으로 정렬되어있는 로프를 순서대로 최적해를 찾아가면 된다. package greedy; import java.io.BufferedReader; import java.io.IOException; import java.io...