전체 글
-
Shortest Path AlgorithmComputer Science/Data Structure and Algorithm 2020. 5. 20. 13:21
✔️ 최단 경로 문제(Shortest Path Problem) ◾️ 가중치 그래프에서 주어진 두 정점을 연결하는 가장 짧은 경로의 길이를 찾는 문제 ◾️ 가중치가 없는 그래프에서의 최단 경로는 BFS로 찾을 수 있다. ✔️ 다익스트라(Dijkstra)의 최단 경로 알고리즘 ◾ 단일 시작점 최단 경로 알고리즘이다. ◾ 시작 정점 s에서부터 다른 정점들까지의 최단 거리를 계산한다. ◾ 다익스트라 알고리즘은 BFS처럼 시작점에서 가까운 순서대로 정점을 방문한다. 1️⃣ 다익스트라 알고리즘 : 우선순위 큐를 사용하는 BFS 📋 우선순위 큐 ◾ 우선순위 큐에 정점의 번호와 지금까지 찾아낸 해당 정점까지의 최단 거리를 쌍으로 넣는다. ◾ 우선순위 큐는 정점까지의 최단 거리를 기준으로 정점을 배열함으로써, 아직 방문..
-
[백준] 1664 소수의 연속합Problem Solving/Baekjoon Online Judge 2020. 5. 19. 00:03
✔️ 문제 링크 https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 문제 하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다. 3 : 3 (한 가지) 41 : 2+3+5+7+11+13 = 11+13+17 = 41 (세 가지) 53 : 5+7+11+13+17 = 53 (두 www.acmicpc.net ✔️ 문제 이해 ◾ 연속된 소수의 합으로 나타낼 수 있는 자연수 N이 주어진다. ◾ 자연수 N을 연속된 소수의 합으로 나타낼 수 있는 경우의 수를 구해야한다. ◾ 연속된 소수란 다음을 말한다. 2, 3, 5, 7, 11, 13 ◾ 다음은 연속된 소수가 아니다. 2, 3, 5, 7, 11, 17 (중간에 13..
-
[Back End] 상태유지기술 - SessionWeb Development/부스트코스 - Back-End(Java) 2020. 5. 18. 15:37
✔️ 웹에서의 상태 유지 기술 ◾ HTTP 프로토콜은 상태 유지가 안되는 프로토콜이다. - 클라이언트가 이전에 무엇을 했고, 지금 무엇을 했는지에 대한 정보를 가지고 있지 않다. - 웹 브라우저(클라이언트)의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다. ◾ 클라이언트의 상태 정보 유지를 위해 Cookie와 Session 기술이 등장했다. ✔️ Session (세션) 📋 정의 ◾ 클라이언트 별로 서버에 저장되는 정보이다. 📋 사용 방법 ◾ 웹 클라이언트가 서버측에 요청을 보내게 되면 서버는 클라이언트를 식별하는 session id를 생성한다. ◾ 서버는 session id를 사용해서 key와 value를 이용한 저장소인 HttpSession을 생성한다. ◾ 클라이언트는 서버측..
-
[백준] 14465번 소가 길을 건너간 이유 5Problem Solving/Baekjoon Online Judge 2020. 5. 16. 23:05
✔️ 문제 링크 https://www.acmicpc.net/problem/14465 14465번: 소가 길을 건너간 이유 5 문제 농부 존의 농장에 원형 길이 있다고 했지만, 길은 그뿐만이 아니다. 그 옆에 일자형 길이 있는데, 1번부터 N번까지의 번호가 붙은 횡단보도 N (1 ≤ N ≤ 100,000)개로 이루어져 있다. 교통사고�� www.acmicpc.net ✔️ 문제 이해 ◾ 일자형 길에 횡단보도 N개가 있다. (1 ≤ N ≤ 100,000) ◾ 뇌우로 인해 몇몇 횡단보도가 고장나있다. ◾ 연속한 K개의 신호등이 존재하도록 신호등을 수리하려고 한다. ◾ 연속한 K개의 신호등이 존재하도록 최소 몇 개의 신호등을 수리해야 하는지 출력한다. ✔️ 설계 ◾ 수리한 신호등의 개수를 이분 탐색을 통해 찾는다..
-
JIT(Just-in-Time Compilation)Development Knowledge/JAVA 2020. 5. 12. 10:50
✅ 인터프리터 ◾ 프로그램을 실행할때 소스 코드를 한 줄씩 기계어로 번역해서 실행하는 프로그램 또는 환경을 말한다. ✅ 정적 컴파일 ◾ 프로그램을 실행하기 전에 모든 소스 코드를 기계어로 번역한다. ◾ 번역 과정이 번거롭고 오래 걸리지만, 한 번 컴파일하면 그 후에는 다시 번역하지 않아도 되므로 실행 속도가 빠르다. ✅ JIT 컴파일 ◾ 프로그램을 실행하는 시점에 기계어로 번역하는 컴파일 기법이다. ◾ 인터프리터 방식과 정적 컴파일 방식을 혼합한 방식이다. ◾ 프로그램을 실행을 하면서 인터프리터 방식으로 기계어 코드를 생성한다. 그 과정에서 기계어를 캐싱한다. ◾ 이후 캐싱된(이전에 이미 번역한적이 있던) 기계어를 사용한다. 이는 인터프리터의 느린 실행속도를 개선할 수 있다. ◾ JIT '컴파일러'보다는..
-
[Back End] 상태유지기술 - CookieWeb Development/부스트코스 - Back-End(Java) 2020. 5. 11. 23:35
✔️ 웹에서의 상태 유지 기술 ◾ HTTP 프로토콜은 상태 유지가 안되는 프로토콜이다. - 클라이언트가 이전에 무엇을 했고, 지금 무엇을 했는지에 대한 정보를 가지고 있지 않다. - 웹 브라우저(클라이언트)의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다. ◾ 클라이언트의 상태 정보 유지를 위해 Cookie와 Session 기술이 등장했다. ✔️ Cookie (쿠키) 📋 정의 ◾ 클라이언트 단에 저장되는 작은 정보의 단위이다. ◾ 클라이언트에서 생성하고 저장될 수 있고, 서버 단에서 전송한 쿠키가 클라이언트에 저장될 수 있다. 📋 사용 방법 ◾ 서버에서 클라이언트의 브라우저로 전송되어 사용자 컴퓨터에 저장한다. ◾ 저장된 쿠키는 다시 해당하는 웹 페이지에 접속할 때, 브라우저에..
-
[Computer Network] UDP & TCPComputer Science/Computer Network 2020. 5. 9. 12:48
✅ UDP (User Datagram Protocol) 1️⃣ UDP는 빠르다. ▪️ UDP는 TCP와 다르게 다중화/역다중화, 간단한 오류 검사 기능만을 제공한다. ▪️ TCP는 신뢰적 전송, 혼잡제어, 흐름제어 등 UDP보다 더 많은 기능을 제공한다. ▪️ 따라서 UDP는 TCP보다 빠르다. UDP하에서 애플리케이션 프로세스가 데이터를 UDP에게 전달하면, 데이터를 UDP 세그먼트로 만들고 즉시 그 세그먼트를 계층으로 전달한다. ▪️ UDP는 실시간 애플리케이션에 적합하다. 실시간 애플리케이션은 최소 전송률을 요구하고, 지연 전송을 원하지 않고, 조금의 데이터 손실은 허용한다. 따라서 TCP보다 UDP가 적합하다. 2️⃣ 신뢰적 데이터 전송을 보장하지 않는다. ▪️ 송신한 세그먼트가 손실될 수 있다...
-
[프로그래머스] 튜플Problem Solving/Programmers 2020. 5. 8. 19:28
✔️ 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✔️ 풀이 - 튜플을 구하려면, 우선 주어진 집합을 크기 순으로 오름차순 정렬한다. - "{{1,2,3},{2,1},{1,2,4,3},{2}}" -- > "{{2},{2,1},{1,2,3},{1,2,4,3}}" - 원소 수가 K인 집합과 K – 1인 집합의 차집합(단, K > 1)의 원소가 튜플의 K번째 원소를 나타낸다. - 위와 같은 방법을 그대로 구현하면 된다. ✔️ 문제 회고 - 문제를 ..