본문 바로가기

전체 글

(154)
DFS(Depth-First Search) 알고리즘 DFS란? 그래프 또는 트리를 탐색하며 깊은 단계를 우선적으로 선택하여 최대한 깊게 탐색하는 알고리즘이다. 주로 재귀와 스택을 이용하여 구현하며 상세한 알고리즘에 따라 다를 수 있지만, 방문한 곳을 표시하지 않으면 무한루프 등에 빠질 수 있는 위험이 있다. 완전탐색의 일종이며, 백트래킹이 없을 시 굉장히 많은 시간을 소모할 수 있다. 대표적 예시로 미로탐색과 경우의 수 문제가 있다. DFS의 작동원리 1. 중복방문을 체크할 visited 배열과 시작 노드를 선정한다. - node = 1, visit = [] 2. 현재 노드와 연결된 노드를 찾고, 연결된 노드 중 하나로 다시 dfs를 실행한다. 이 때, 방문한 노드는 visit 배열에 기록한다.( 이, 때 연결된 남은 노드를 나중에 보고 현재 노드랑 연결..
반성의 대가 나름 열심히 살았다. 공부부분이 많아서, 코드 짜는 능력을 좀 더 길러보자.
[WEB] CORS 에러와 SOP 웹에서 흔히 CORS 에러를 마주치고는 한다. 이 에러가 왜 발생하는 지 이유를 알아보고, 해결책을 찾아보자 출처란? 먼저, 출처(Origin)을 알고 넘어가자. 위 사진에서, Protocol, Host, Port를 합친 것으로, 이 세 가지가 동일하다면 같은 출처라 정의한다. SOP(Same-origin policy)란? SOP는 지난 2011년, RFC 6454에서 처음 등장한 보안 정책으로 같은 출처(Origin)에서만 리소스를 공유할 수 있다는 정책이다. 이런 규제가 생긴 이유는 웹 보안을 강화하기 위해서입니다. 출처가 다른 두 애플리케이션이 쉽게 통신할 수 있다면, CSRF(Cross-Site Request Forgery)나 XSS(Cross-Site Scripting) 등의 공격에 너무나 취약..
[WEB] HTTP vs HTTPS HTTP란? 정의 : HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜입니다. 원리 : HTTP는 OSI(Open Systems Interconnection) 네트워크 통신 모델의 애플리케이션 계층 프로토콜입니다. HTTP는 여러 유형의 요청과 응답을 정의합니다. 문제점 : HTTP는 암호화되지 않은 데이터를 전송합니다. 즉, 브라우저에서 전송된 정보를 제3자가 가로채고 읽을 수 있습니다. HTTPS란? 정의 : HTTPS는 위에서 설명한 보안상 문제점을 극복하기 위한 HTTP입니다. HTTPS 웹 사이트는 독립된 인증 기관(CA)에서 SSL/TLS 인증서(공개 키 구성요소)를 획득하여 이를 바탕으로 공개키와 세션키를 이용하여 ..
[js] Programmers_Lv.2_택배 배달과 수거하기_카카오기출 문제 https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 최대 적재량이 정해진 차량이 있다. 배송할 택배와 수거할 택배량이 담긴 리스트가 존재하는데, 차량이 최소한으로 움직인 거리를 구하시오 아이디어 1. 가장 먼 곳부터 배달이나 회수하는 곳을 찾아가서 최대치 물량을 해결하고 오면 그게 가장 적게 움직이는 경우의 수가 된다. 구현(풀이) function solution(cap, n, deliveries, pickups) { let answer..
[js] Programmers_Lv.1_개인정보 수집 유효기간_카카오기출 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 약관에 따라 일정 기간 후 개인정보가 만료된다. 오늘날짜와 가입정보(날짜, 약관종류)의 배열을 보고 만료된 개인정보를 담은 배열을 반환하시오. 아이디어 1. 객체의 약관에 대한 데이터들을 저장하자. 2. 가입정보 배열을 순회하면서, 가입정보에 약관기간을 더한 후 현재 날짜와 비교한다. 초과한 배열을 모아서 반환한다. 구현(풀이) function solution(today, terms, privacies) { let [sYear,sMonth,sDay] = today.split('.').map(x=> par..
[js] Leetcode 1143. Longest Common Subsequence 문제 https://leetcode.com/problems/longest-common-subsequence/description/ Longest Common Subsequence - LeetCode Can you solve this real interview question? Longest Common Subsequence - Given two strings text1 and text2, return the length of their longest common subsequence. If there is no common subsequence, return 0. A subsequence of a string is a new string genera leetcode.com - 두 문자열에서 공통으로 가장..
[js] Leetcode 300. Longest Increasing Subsequence 문제 Longest Increasing Subsequence - LeetCode Can you solve this real interview question? Longest Increasing Subsequence - Given an integer array nums, return the length of the longest strictly increasing subsequence. Example 1: Input: nums = [10,9,2,5,3,7,101,18] Output: 4 Explanation: The longest leetcode.com 배열에서 (비연속적으로) 가장 긴 증가하는 순차의 길이를 구하시오. ex). [0 1 2 3 6 4 5] => 0 1 2 3 4 5 : 5개 plus). ..