[개발] 지식(214)
-
벨만-포드 알고리즘
# 벨만-포드 최단 경로 알고리즘다익스트라 알고리즘과 같은 단일 시작점 최단 경로 알고리즘이지만, 음수 간선이 있는 그래프에 대해서도 최단 경로를 찾을 수 있으며 그래프에 음수 사이클이 있어 최단거리가 제대로 정의되지 않은 경우도 찾을 수 있다.수행 과정에서 각 정점까지의 최단 거리 상한을 담은 배열 upper[]를 유지한다. 이 값은 알고리즘이 진행됨에 따라 점점 감소하고, 최종적으로 각 정점까지의 최단거리를 담게 된다.# 동작 과정알고리즘이 시작할 때 알 수 있는 사실은 시작점 -> 시작점까지의 최단거리가 0이라는 것 뿐이다. 따라서 upper[s] = 0 으로 초기화하고, 나머지 원소들은 아주 큰 수(무한으로 상정되는) 로 초기화 한다.이 예측 값을 실제 최단 거리에 더 가깝게 갱신하기 위해 아래와..
2017.09.20 -
Path Manipulation - Fortify
File downloadFile = new File(path); path가 "C:/test/test/test.png" 같은 패턴으로 들어오고 있었다. client가 url의 파라미터로 넣어주고 있었기 때문에 서버 내부의 디렉토리에 접근할 수 있는 가능성이 있어, Path Manipulation 에 걸렸다..아래와 같은 방법으로 path를 validation한다. public static String cleanString(String aString) { if (aString == null){ return null; } String cleanString = ""; for (int i = 0; i < aString.length(); ++i) { cleanString += cleanChar(aString.cha..
2017.08.22 -
[DFS] 오일러 서킷
오일러 서킷깊이 우선 탐색을 이용해 풀 수 있는 또 다른 문제로, 그래프르이 모든 간선을 정확히 한 번씩 지나서 시작점으로 돌아오는 경로를 찾는 문제가 있다. 이와 같은 경로를 그래프 이론에서는 오일러 서킷(Eulerian circuit)이라고 부른다.오일러 서킷이 어느 경우에 존재할 수 있는지를 판단하는 단서는 반대로 오일러 서킷이 존재할 수 없는 경우는 무엇인가를 생각해보는 것이다. 일단 한가지 경우 그래프의 간선들이 두 개 이상의 컴포넌트에 나뉘어 있는 경우 존재할 수 없다. ※ 그래프의 정점이 둘 이상의 컴포넌트로 쪼개져 있더라도, 간선들이 한 컴포넌트에 있기만 하면 오일러 서킷은 존재한다. 예를들어 정점 a, b, c를 갖는 방향 그래프에 두 개의 간선 (a, b)와 (b, a)가 있다면 그래프..
2017.08.20 -
Icon Fonts
ZocialFont AwesomeWe Love Icon Fonts!Icon fonts on CSS-TricksARIA
2017.08.08 -
Unicode 검색 사이트
https://unicode-table.com/en/
2017.08.08 -
background-size : cover / contain
background-size : cover비율은 유지한 채, 최대한 부모 엘리먼트에 꽉 채운다. 예를들어 가로 세로가 200px 300px 인 이미지가 가로 세로 300px의 엘리먼트 안에 있을 때, 'cover' 는 가로를 300px까지 늘리고 세로의 일부를 자른다.background-size : contian비율은 유지한 채, 부모 엘리먼트 안에서 가능한 모든 것을 보여준다. 가로 세로가 200px 300px인 이미지가 가로 세로 300px 엘리먼트 안에 있을 때 더 긴 세로 300px 기준으로 이미지를 맞추고 가로는 동일 비율로 200px을 유지한다.
2017.08.08