전체 글
-
[nodejs] Request모듈을 이용해서 html을 불러올 때 깨지는 문제 해결(cheerio, iconv-lite, request, charset)프로그래밍 2019. 11. 27. 10:58
const cheerio = require('cheerio') const request = require('request') const iconvlite = require('iconv-lite') const charset = require('charset') // 해당 사이트의 charset값을 알 수 있게 해준다. request( { url: 'http://nikon-lenswear.co.kr/assets/store-search-daum/com_list.php?sno=2500&location=default&tmptitle=&title_like=&isee=', encoding: null }, function (error, res, body) { const enc = charset(res.headers, ..
-
[Network] TCP Socket Programming - File Download [Server - Client]프로그래밍 2019. 11. 13. 20:36
서버-클라이언트간 TCP Socket을 사용해 파일을 다운로드하는 예제입니다. Client_Server/Server/files에 있는 test.pdf파일을 Client_Server/Client/files에 다운로드 받습니다. 구현환경 / 언어 : Mac / Java 사용법 : 맥을 기준으로 설명하겠습니다. 1. 2개의 터미널을 켜줍니다. 2. 하나의 터미널에서는 Client_Server폴더 내의 Client 폴더로 이동합니다. 다른 하나의 터미널에서는 Client_Server폴더 내의 Server폴더로 이동합니다. 3. 먼저, Server 폴더에서 Server_Peer.java 파일을 컴파일하고, java Server_Peer 8000 test.pdf 를 통해 파일을 실행시킵니다. 이후, Client 폴..
-
[Docker] Docker(도커)+NodeJs(Sequelize)+Mysql 연동하기 / Docker-Compose 구성 및 Docker-Compose 순서 설정.프로그래밍 2019. 11. 11. 17:06
최근 학교 데이터베이스 과제를 진행하면서 간단한 연락처를 구성하는 웹페이지를 짜게 되었다. 나는 기술 스택을 NodeJS + Mysql 로 사용하고싶은데, 조교님이 기술 스택을 Python(flask) + Postgresql을 사용하셔서 다른 기술스택을 도커에 올려서 제출해도 되냐고 여쭤보니 흔쾌히 OK하셨다. 원래 조교님이 쓰시는 기술스택을 사용하면, 그냥 코드를 알집파일로 압축해서 제출해도 되고 (조교님의 컴퓨터에 파이썬이랑 flask가 다 깔려있다) docker를 통해 제출하고싶으면 조교님이 만들어주신 docker-compose 파일을 사용해, 내부 코드만 짜면 되는데 내가 스스로 다른 기술스택을 위해(왜그랬을까...ㅠㅠ) Dockerfile.dev부터 .dockerignore, docker-com..
-
[알고리즘-JAVA] 백준 알고리즘 2579번 - 계단 오르기알고리즘 2019. 8. 16. 03:23
처음 실패했던 코드. import java.util.Scanner; import java.lang.Math; public class Main { public static int d[]; public static int arr[]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int count = sc.nextInt(); d = new int[count]; arr = new int[count]; for (int i = 0; i < count; i++) { arr[i] = sc.nextInt(); } if (count == 1) { System.out.println(arr[0]); } else if (count =..
-
[알고리즘-JAVA] 백준 알고리즘 1912번 - 연속합알고리즘 2019. 8. 15. 17:48
접근 과정 1. 어떤 문제로 이해 했는가? 그리고 문제의 제약 조건은? 주어진 임의의 수열에서 연속합의 최대값 구하기 2. 나의 방식대로 문제를 재정의 하자. d[i] = i번째 수를 마지막으로 했을 때의 최대 연속합 3. 어떤 알고리즘과 자료구조를 사용할 것인가? bottom-up을 이용한 dp 4. 어떻게 계산할 것인가? 1) 입력 Scanner사용 2) 시간 복잡도 계산 n만큼만 돌면 되고 하나의 n을 구할때의 연산은 O(1)이므로 O(N)이다. 5. 주의할 점은 무엇인가? 최대값을 구할때 마이너스가 나올수도 있다는 점. 6. 풀이 과정 a[i]로 끝나는 최대 연속합 경우 1. A[i-1]로 끝나는 연속합을 포함하는 경우 = D[i-1]+A[i] 경우 2. 새로운 연속합 A[i] [전체 소스 코드]..
-
[알고리즘-JAVA] 백준 알고리즘 11053번 - 가장 긴 증가하는 부분수열알고리즘 2019. 8. 15. 17:04
접근 과정 1. 어떤 문제로 이해 했는가? 그리고 문제의 제약 조건은? 수열 A가 주어지면, 가장 긴 증가하는 부분 수열(LIS)를 구하는 문제 2. 나의 방식대로 문제를 재정의 하자. d[i] = a[i]를 마지막으로 하는 가장 긴 증가하는 수열의 개수. 3. 어떤 알고리즘과 자료구조를 사용할 것인가? Bottom-up, dp 4. 어떻게 계산할 것인가? 1) 입력 Scanner 2) 시간 복잡도 계산 N개 탐색 * N번째 값을 구할때 N만큼의 비교가 필요하므로 O(N^2) 5. 주의할 점은 무엇인가? d[i]를 채우기 위한 d[j]를 찾는 과정, 그리고 마지막 답은 d[]배열 중 가장 큰 값을 출력하는 것. 6. 풀이 과정 d[i] = a[i]를 마지막으로 하는 가장 긴 증가하는 부분수열의 수 d[i..
-
[알고리즘-JAVA] 백준 알고리즘 2156번 - 포도주 시식알고리즘 2019. 8. 15. 16:03
접근 과정 1. 어떤 문제로 이해 했는가? 그리고 문제의 제약 조건은? 조건에 따라 최대로 마실 수 있는 포도주의 양을 구하는 문제이다. 2. 나의 방식대로 문제를 재정의 하자. d[n][k] = n번째 포도주가 k연속일 경우의 최대값. 3. 어떤 알고리즘과 자료구조를 사용할 것인가? 배열, Bottom-up 4. 어떻게 계산할 것인가? 1) 입력 Scanner이용 2) 시간 복잡도 계산 O(N) - n번째 배열까지 만들고 탐색 5. 주의할 점은 무엇인가? count가 1일때를 고려하지 않아서 에러가 났다. 6. 풀이 과정 d[n][k] = n번째 포도주잔을 마실 때 연속 k인 경우 d[n][0] = n번째 포도잔이 연속 0번째인 경우 = max(d[n-1][0], d[n-1][1], d[n-1][2] ..