https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr 해설 : N명의 사람들이 토너먼트 대회를 진행하는데 A라는 사람과 B라는 사람이 있고, 모든 경기를 이긴다고 가정했을 때, 몇 번의 경기를 거쳐야 서로 만날 수 있는지 찾는 문제이다. 풀이 : 우선, 둘은 모든 경기에 이긴다고 가정했으므로 반드시 만나는 것이 보장되어있다. 따러서 while문을 사용해도 무한루프가 돌일은 없고, while..
https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 해설 : NxN의 2차원 배열의 (0,0) 지점에서 시작하는 사람이 벽으로 막히지 않은 길을 따라 최종 목적지인 (N-1,N-1)까지 도달하려 할 때, 최단거리로 도착할 수 있는 거리를 출력하는 문제이다. 풀이 : BFS나 DFS를 사용하는 문제이다. 나는 BFS가 더 익숙해서 BFS로 해결하였다. 시작점에서..
https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 해설 : 컴퓨터의 개수 n과 컴퓨터 사이의 연결관계인 computers배열이 주어질 때, 컴퓨터들 사이에 몇 개에 독립적인 그래프가 있는지 찾는 문제이다. 풀이 : BFS 또는 DFS로 구현할 수 있는 문제이다. 그래프의 탐색을 구현할 수 있는지 묻는 문제인데 나는 BFS로 풀었다. 우선, 노드 사이의 연결관계인 computers 배열에서 탐색하지 않은 노..
AJAX란? 로그인 화면을 구현하는데 ajax를 통해 화면을 새로고침하지 않고 데이터를 디스플레이하는 방법을 사용하였다. 예전에 프로젝트를 진행하면서 django 프레임워크를 사용할 때 ajax를 한번 사용했었는데 이번 기회에 개념을 정리하고 알아두면 좋을 것 같았다. Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능이다. 브라우저가 가지고있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법이다. 비동기 방식이란? 일반적으로, 프로그램의 코드는 순차적으로 진행된다. 한 번에 한 가지 사건만 발생..
프로토타입(Prototype) 프로토타입은 상품/서비스가 출시되기 전 만들어진 원형(archetype)을 의미한다. 프로 토타이핑(prototyping)은 사용자의 요구사항, 사용자리서치를 통해서 도출된 니즈, 아이디어 등의 개념(Concept)을 담은 모형을 만들어 이후 사용자와 상품/서비스가 제공하는 기능의 추가, 변경 및 삭제 등을 요구사항에 대해 소통하는 도구, 개발이 진행되는 동안 개발 참여자간에 개념을 공유하는 도구를 만드는 설계과정이다. 프로토타이핑의 형태 프로토타이핑은 그 목적에 따라 크게 ‘실험적(experimental) 프로토타입’과 ‘진화적(evolutionary) 프로토타입’으로 구분된다. 1. 실험적 프로토타이핑 실제 개발될 상품/서비스를 직접 개발해 요구사항을 검증하는 목적으로 ..
CORS란 node.js와 express를 사용하여 개발을 진행하던 도중 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://~~ 이란 에러를 접하게 되었다. 처음엔 무슨 에러인가 싶었지만 조금 찾아보니 cors정책에 걸려서 그런 것이었다. cors란 특정 헤더를 통해서 브라우저에게 한 출처(origin) 에서 실행되고 있는 웹 애플리케이션이 다른 출처(cross-origin)에 원하는 리소스에 접근할 수 있는 권한이 있는지 없는지를 알려주는 매커니즘이다. Scheme(프로토콜), host(도메인), 포트중 하나라도 다르다면 cross-origin으로 분류되어 http접근에 ..
ejs란? 강의를 통해 node.js를 공부하고 있는데 html 문서를 ejs라는 확장자에 담아 사용하더라. ejs가 뭔지도 모르고 html이랑 비슷한 역할을 하나보다~ 하고 넘어갔었는데 이번 기회에 정리를 해 보려고 한다. ejs는 embedded javascript template의 약자로 (왜 ejt가 아닌 ejs인지는 모르겠다.) node.js에서 사용하는 템플릿 뷰 엔진이다. 가장 큰 특징은 쉬운 문법으로 html내에서 인자로 넘겨받은 변수를 사용할 수 있다는 것인데, 지금 보니 예전에 사용해보았던 Django의 {% ~ %}로 사용되는 Django Template랑 똑같은 기능을 하는 엔진이었다. 일단 사용해본 적이 있으니 이해하기는 쉬울 것 같다. ejs는 기존의 HTML 문법에 를 사용하여..
express.js 란? express.js의 정의는 'Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크'이다. 쉽게 말하면 node.js를 사용해서 어떤 기능을 구현할 때, 이를 쉽게 구현할 수 있도록 해준다는 말이다. express.js는 node.js를 사용하기 위한 클래스와 라이브러리들의 집합으로 구성된다. express.js 설치방법 express.js 를 설치하기 위해선 node.js와 npm init을 통한 npm의 실행이 요구조건이다. 이 상황이 갖추어졌다면 다음의 명령어로 express.js를 설치해보자. npm install express express.js 사용방법 express.js의 공식 홈페이지(http://expressjs.com/)에 접속하면 아주 친절하게 설명되어 ..
https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 해설 : 숫자로 이루어진 문자열이 주어질 때, 각 자릿수들을 조합해서 만들 수 있는 모든 수들 중 소수만 찾아서 개수를 출력하면 된다. 풀이 : numbers에 담겨있는 숫자의 각 자릿수들을 1부터 numbers의 길이만큼 개수만큼 조합한 모든 수들에 대해 isPrime함수를 통해 소수인지 판별한다. 소수일 경우 answer에 1을 추가해주었고 s..