[알고리즘] DFS (깊이 우선탐색)이란
·
프로그래밍/algorithm
깊이 우선탐색 (Depth-Firtst Search) 깊이우선 탐색이란? 루트노드에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법이라고한다. 즉, 깊게 탐색, 완벽탐색 사용하는경우 모든 노드를 방문 하고자 하는 경우에 이방법을 선택한다. 특징 1. 자기자신을 호출하는 순환 알고리즘의 형태를 가지고있다. 2. 어떤 노드를 방문했었는지 여부를 반드시 검사해야한다. 원리 위의 그림을 보면서 아래 설명을 봐보자. 1. 시작 정점을 1로 설정 2. 1번 탐색 시작 1번과 연결되었고 방문 안한 정점이 어디지? 2번이 있네. 2번으로 가자. 3. 2번과 연결되었고, 방문 안한것? 3번이네. 3번으로 가자. 4. 3번은? 4번이 있네. 4번으로 가자. 5. 4번은? 없는데..?? 그러면 3번..
[PCCP 기출문제] 2번 / 석유 시추
·
프로그래밍/코딩테스트
function solution(land) { for(let i =0; i
http란, multipart/form-data
·
네트워크/Http
프로젝트를 진행하면서 파일첨부기능을 구현하던중 multipart/form-data 에대한 사용이 필요했다 오늘은 정리할겸 HTTP, multipart/form-data 키워드에대해서 알아보고 그중에서 multipart/form-data 에 대해서 알아보자 http란 HyperText Transfer Protocal 이다. 문서를 전송하기위한 프로토콜 즉 서버와 클라이언트의 사이에서 어떻게 메시지를 교환할지를 정해 놓은 규칙이다. 우리가하용하는 웹브라우저에서 인터넷 주소 맨 앞에들어가는 http://가 바로 이프로토콜을 사용해서 정보를 교환하겠다는 표시이다. 데이터를 교환할때 타입은 두가지가 있다. 요청과 응답이다. 1. 파일 업로드를 구현할 때, 클라이언트가 웹브라우저라면 폼을 통해서 파일을 등록해서 전..
[회원인증] JWT의 이해
·
Backend/기능구현
사용자의 로그인 상태를 서버에서 처리하는데 사용할수있는 대표적인 두가지 인증방식이있다. 1. 세션을 기반으로 인증 2. 토큰을 기반으로 인증 1. 세션 기반 인증 시스템 세션을 기반으로 인증 시스템을 만든다는것은 서버가 사용자가 로그인중임을 기억하고 있다는 뜻이다. 직접그려서 글씨체가 이상한건 양해.... 세션 기반 인증시스템에서 사용자가 로그인을 하면, 서버는 세션 저장소에 사용자의 정보를 조회하고 세션 id를 발급한다 발급된 id는 주로 브라우저의 쿠키에 저장한다. 그다음에 사용자가 다른 요청을 보낼때마다 서버는 세션 저장소에서 세션을 조회한후 로그인 여부를 결정하여 작업을 처리하고 응답을 한다 세션 기반 인증의 단점은 서버를 확장하기가 번거로워 질 수 있다는 점이다. 만약 서버의 인스턴스가 여러개가..
실행 콘텍스트 (Execution context)
·
프로그래밍/JavaScript
1. 실행 컨텍스트란 실행가능한 자바스크립트 코드 블록이 실행되는 환경이다. 함수가 실행되면 함수 실행에 해당하는 실행 컨텍스트가 생성되고, 자바스크립트 엔진에 있는 콜스택에 차곡차곡 쌓인다. 그리고 가장위에있는 컨텍스트와 관련 있는 코드를 실행하면서, 전체 코드의 환경과 순서를 보장하게 된다. 아래의 예제로 이해보자 let santa = false; // 전역 컨텍스트 var rudolf = false; function christmas() { let santa = true; function givePresent() { let gift = "cat"; console.log(gift); // cat console.log(santa); // false console.log(rudolf); // false ..
[정렬] K번째수
·
프로그래밍/코딩테스트
문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. a..