목록분류 전체보기 (252)
Joonas' Note
기존의 node.js + express 서버에서 Mongo DB와 연결하는 코드는 아래와 같았다. mongoose.connect('mongodb://localhost/' + config.database);이후 배포를 위해서 각 서비스를 컨테이너화 하는 과정에서 Mongo DB 역시 도커라이징했고, docker-compose up을 했으나.. MongoDB Error(connection failed)라며 연결할 수 없다고 나왔다.MongoDB 접속 시 도메인을 컨테이너의 이름으로 아래와 같이 변경했더니 해결되었다.mongoose.connect('mongodb://mongodb/' + config.database); 참고한 링크: https://stackoverflow.com/a/34711892
https://gist.github.com/IamAdiSri/a379c36b70044725a85a1216e7ee9a46
2018년 제13회 전북대학교 프로그래밍 경진대회 포스터 대회 진행 시 나눠준 사은품(스티커) 실제 사진 http://acm.jbnu.ac.kr/
링크: https://www.acmicpc.net/problem/11058출력 결과에 영향을 미치는 연산이 A를 그냥 누르는 거랑(+1), Ctrl-V (+복사했던 크기) 인데 클립보드에 복사해놓은 크기때문에 재귀로 짜는데 애를 먹었다. 복사한 크기만큼 늘어나기 때문에, Ctrl-V 를 하기 위해서는 이전에 Ctrl-A, Ctrl-C 가 꼭 필요하다. 문제에 적힌 연산을 순서대로 A, S, C, V 라고 한다면 \(N=6\)인 경우는 아래와 같이 가능하다. AAAAAAAAASCVAASCVVASCVVV 이 정도가 의미있는 타이핑인거같다. 타이핑을 \(n\)번한 것을 \(f(n)\)이라 하자. 그럼 위 4줄은 각각 \(f(5)+1\), \(f(3)∗2\), \(f(2)∗3\), \(f(1)∗4\) 이다. $..
node.js + socket.io로 간단하게 실시간 이벤트 서버를 만들려고 했다.약 3~4년 전에 비슷한 개발을 해봤기에 무리없이 될거라고 생각했으나, 하루종일 삽질했다. 서버단과 클라이언트단의 코드 모두 공식 도큐먼트로 작성하였으니 틀릴리가 없었다. 첨부하자면 아래와 같다.페이지가 로드되면 서버에 연결을 시도하고, 연결되면 test 후 종료하는 테스트 코드이다. 근데 서버쪽에서는 엄청나게 많은 연결이 시도되고 있었다. (서버쪽 화면이 connected!로 도배되고 있었다.) 하지만 이게 웬, 정작 클라이언트쪽 socket 변수의 connected 속성은 false였다.참고로 express는 v4.16.3, socket.io는 v2.1.1, node.js는 v10.6.0 이었다.결론은, 아래 한 줄로 ..
링크: https://www.acmicpc.net/problem/1509문제\(dp[i]\) = \(i\)번째 위치에서 가능한 팰린드롬 분할의 최소 개수\(isPaline[i][j]\) = \(i~j\) 가 팰린드롬인지 여부 예제에도 끼워져있지만 AABDBADD 와 같은 경우의 처리때문에 여러 경우를 탐색해야한다. 이것을 분할하는 경우는 아래와 같다.A - A - B - D - B - A - D - D A - A - B - D - B - A - DD A - A - BDB - A - D - D A - A - BDB - A - DD A - ABDBA - D - D A - ABDBA - DD AA - B - D - B - A - D - D AA - B - D - B - A - DD AA - BDB - A - ..
링크: https://www.acmicpc.net/problem/3079코드
[이전 블로그]에서 글 옮김 링크: https://www.acmicpc.net/problem/1766풀이처음에는 문제의 접근 방향을 후위순회처럼 생각했다. 어떤 x번째를 하기 위해서 그 이전것을 무조건 해결해야하는 방식. 틀리고 나서 문제를 다시 이해했는데, 깨달은 테스트 케이스부터 말하자면 아래와 같다.5 3 4 1 2 3 5 3 내가 생각한 이 입력의 정답은 아래와 같다.2 4 1 5 3 1번보다 4번을 먼저 풀어야하고, 3번보다 2, 5번을 먼저 풀어야한다. 1번을 풀기 위해서 4번을 풀어야하는데, 같은 우선순위에서 4번보다는 2번이 쉽다. (둘 다 1개의 문제 앞에 있음)2번을 풀고 4번을 풀면, 1번이 풀리고 남은 5번을 풀면 3번이 풀린다. 처음에 생각한 대로라면 4 1 2 5 3 이 나와야하..