- Today
- Total
목록Category (318)
개발하는 고라니
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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cPrP4j/btq3UGxeRP6/bEQ4XZrWfOULnbjg445gp1/img.png)
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;..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/s7AWm/btq3KRtlO82/4t1SOsTdboROFfB2ikIB01/img.png)
집계 함수 COUNT 컬럼의 개수를 집계해준다. SELECT WRITER_ID, COUNT(ID) FROM NOTICE GROUP BY WRITER_ID //회원별 게시글 수를 조회. 단 게시글 수가 2 미만인 레코드만 출력 SELECT COUNT(WRITER_ID) CNT, WRITER_ID FROM NOTICE GROUP BY WRITER_ID HAVING COUNT(WRITER_ID) < 2; SUM 특정 컬럼의 합계를 집계 MIN 특정 컬럼의 최소값을 반환 MAX 특정 컬럼의 최대값 반환 AVG 특정 컬럼의 평균값 집계 문자열 관련 함수 LOWER (X) : X를 모두 소문자로 변경 LOWER ('GOOD MORNING') : good morning UPPER (X) : X를 모두 대문자로 변경 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pjmBM/btq3JeaCDt1/GEG7MhgCGeHzsL62zwOKmk/img.png)
Ajax Ajax이전의 웹 요청은 문서요청이라서 매 요청마다 문서를 새로 받아왔다. 웹 개발을 하다보면 페이지를 새로고침 없이 데이터를 받아오거나, 데이터를 보내거나 등 작업이 요구될 때가 많은데 이같은 작업을 위해선 비동기적인 방법이 필요하다. Ajax(Asynchronous Javascript and XML)은 Javascript 라이브러리 중 하나이다. 비동기식 요청의 대표적인 라이브러리이다. 브라우저가 갖는 XMLHttpRequest 객체를 이용해 페이지를 다시 요청(Refresh)하지 않아도 데이터를 가져올 수 있는 기술이기도 하다. Javascript를 이용한 비동기 통신, 클라이언트와 서버간 XML 데이터를 주고받는다. 데이터 전송 Ajax를 알아보기 전에 동기식과 비동기식 데이터 전송은 어..