- Today
- Total
목록Category (320)
개발하는 고라니
브라우저에서 댓글을 작성해 서버로 전송하는 과정 중 만난 문제와 그때의 해결방법을 기록하고자 한다. XMLHttpRequest 'POST' JQuery를 이용하지 않고 JS로 XMLHttpRequest를 만들어 서버로 JSON 데이터를 'POST'하는 과정에서 만난 오류는 다음과 같다. var reply = { content: content, bid: bid }; request.open('POST', url, true); request.setRequestHeader("Content-Type", 'application/json; charset=UTF-8'); request.send(JSON.stringify(reply)); 해당 URL로 JSON 형식의 데이터를 보냈는데, 이를 어떻게 받아야 할까? 우리는..
콘솔에 문자열을 입력하고 그 내용을 파일에 저장하는 예제를 해보고자 한다. 자바스크립트는 콘솔 입력이 없기에 Node.js를 사용해야한다. const fs = require('fs'); const readline = require('readline'); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); var data = ''; rl.on('line', (input) => { data += input + '\n'; }); rl.on('close', () => { fs.appendFile('./test.txt', data, 'utf8', (err) => { if(err) throw err; console...
12886번: 돌 그룹 오늘 강호는 돌을 이용해 재미있는 게임을 하려고 한다. 먼저, 돌 세개는 그룹으로 나누어져 있으며 각각의 그룹에는 돌이 A, B, C개가 있다. 강호는 모든 그룹에 있는 돌의 개수를 같게 만들려고 www.acmicpc.net [BFS] 브루트포스로 푼다면 문제 자체의 난이도는 비교적 간단한 편이나, 브루트 포스로 푼다면 메모리 소모가 엄청나므로 최대한 효율적인 방법으로 중복 점을 제거하여야 한다. 여러 방법이 있을 수 있다. 나는 정렬을 사용했다. 브루트 포스를 사용한다면 방문을 체크하는 정점 배열을 [1501][1501][1501] 만큼의 배열을 사용해야하지만, 정렬을 사용하면 [501][1001][1501] 정도의 크기로 줄일 수 있다. 돌의 개수는 최대 1500개를 넘지 않으..
14950번: 정복자 서강 나라는 N개의 도시와 M개의 도로로 이루어졌다. 모든 도시의 쌍에는 그 도시를 연결하는 도로로 구성된 경로가 있다. 각 도로는 양방향 도로이며, 각 도로는 사용하는데 필요한 비용이 존재 www.acmicpc.net [크루스칼] 최소 스패닝 트리를 만드는 문제인데 약간 문제에 낚였다고 해야하나.. "만약 특정 도시 B를 정복하고 싶다면, B와 도로로 연결된 도시들 중에서 적어도 하나를 정복하고 있어야 한다." 라는 문장 때문에 항상 부모가 1번 도시와 연결되어있어야 하는 줄 알고 풀었더니 시간이 2s가 넘게 걸렸다. 아무리 생각해도 이건 아닌 것 같아 일반적인 크루스칼 알고리즘 처럼 풀었더니 정답으로 인정되었다. 코드로 보는 것이 더 이해가 쉬울 듯 하다. int sum = 0;..
2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net [배열] Javascript로 문제풀이를 익히기 위해 풀어본 문제. # Code const readline = require('readline'); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); var arr = []; rl.on('line', (input)=>{ arr.push(input); }).on('close', ()=..
16929번: Two Dots 첫째 줄에 게임판의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에 게임판의 상태가 주어진다. 게임판은 모두 점으로 가득차 있고, 게임판의 상태는 점의 색을 의미한다. 점의 색은 알파벳 대문 www.acmicpc.net [DFS] DFS를 이용해 A ~ Z로 이루어진 격자에서 사이클이 존재하는지 여부만 판단하면 된다. 사이클을 확인하는 알고리즘은 다음과 같이 작성했다. static boolean visit = new boolean[51][51]; static boolean cycle; /* 현재 방문하고 있는 정점이 이미 방문되었고, cnt가 4이상이면 cycle을 찾았다고 판단 */ static void DFS(int y, int x, int bY, int bX, in..
ejs ejs란 템플릿 엔진 중 하나이며, Embedded Javascript의 약자이다. 뭐.. 자바스크립트가 내장된 HTML 파일이라고 할 수 있겠다. 템플릿 엔진이란 만들어놓은 템플릿이 있고, 템플릿에 꽂아넣을 데이터를 템플릿 엔진이 이 둘을 합쳐 결과 페이지를 생성한다. ejs는 HTML 태그처럼 자바스크립트 내용을 삽입할 수 있다. 이를 이용하면 페이지를 동적으로 생성되도록 더 효율적으로 코드를 작성할 수 있다. 일반적인 HTML 파일에서 스크립트 코드는 내부에 작성해야 하는 번거로움이 있었지만, ejs는 지정된 태그를 사용해 스크립트 내용을 하나의 요소처럼 사용할 수 있게 한다. 가장 큰 장점은 서버에서 보낸 변수를 가져와서 사용할 수 있다. ※ 뷰 템플릿 (View Template), 템플릿..
1938번: 통나무 옮기기 첫째 줄에 주어진 평지의 한 변의 길이 N이 주어진다. (4 n || p[1].x-1 n) return false; for(int a=0; a n || map[log.y][log.x] == '1') return false; return true; } static boolean left(Point[] p){ for(Point log:p) if(log.x n || map[log.y][log.x] == '1') return false;..