전체 글 354

[Algorithm][MST][Prim's algorithm] boj1922 네트워크 연결

크루스칼 알고리즘과 Prim's 알고리즘으로 해결할 수 있다. 이걸 MST (Minimal Spanning Tree) 알고리즘이라고 한다. 난 Prim's 알고리즘으로 해결했다. 다익스트라 알고리즘과 유사하지만 '정점으로 가는 최단거리'를 계속 갱신해 줄 필요가 없다.그리고 다익스트라 알고리즘은 정점을 연결하는 간선의 방향이 존재하는데, MST는 그저 '연결되었는가?' 이다. pq : 현재 위치에서 갈 수 있는, 혹은 지금까지 갈 수 있었던 정점들을 거리순으로 정렬해 놓는 우선순위 큐dist : 스패닝 트리를 만드는 최소비용을 누적해나갈 변수 1. 큐에서 하나 빼고 이미 갔던 곳인지 검사한다. 이미 갔던 곳이라면 반복.2. 이전 위치로부터 현재 위치로 가는 거리를 dist에 추가함.3. 현재 위치에서 갈..

Algorithm 2016.10.09

[Algorithm][다익스트라][boj]1753 최단경로

다익스트라 알고리즘 나무위키 시작점으로부터 갈 수 있는 모든 경로에 대한 최단거리를 구한다. 필요했던 것- map : 간선정보를 저장할 map- v : 이미 방문했는지를 위한 visit array- d : 시작점으로부터 정점까지의 거리 정보를 가지고 있는 distance array- pq : 현재 갈 수 있는(그리고 갈 수 있었던) 정점들을 담아 둘 priority queue. 정점과 거리 쌍으로 저장. 코드 가독성을 위해 pq에 첫 번째 위치 (시작점)을 미리 입력해 놓고 했음. 1. pq에서 하나 pop하고 이미 방문했던 곳인지 visit array 검사. 이미 방문했으면 다시 1번 반복.2. 주변 경로 확인 후 map을 보면서 [원래 알고 있던 목적지까지의 거리]와 [현재 지점까지의 거리 + 목적지..

Algorithm 2016.10.09

[backjoon oj][Dynamic] 11726 - 2 X N 타일링

문제 - 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 예제 입력 1 : 2 예제 출력 1 : 2 예제 입력 2 : 9 예제 출력 2 : 55 (알고리즘 문제 공부를 처음 시작해 보는데, 유튜브로 백준님의 다이나믹 알고리즘 강의를 듣고 공부를 시작했당) - 어떤 경우의 다음 결과가 정해져 있다면 그것까지 포함해서 하나의 경우로 친다. - 세로가 2, 가로가 N이라면, 주어진 직사각형으로 세로 2를 만들 수 있는 최소 단위를 생각해 보자. 직사각형을 채운다고 했을 때, 마지막에 올 수 있는 경우를..

Algorithm 2016.10.05

[Postgresql][Trigger] volatile, cost 100에 대해

트리거 예제들에 자주 등장하는데 설명은 안 나와 있어서.. 찾다가 누군가 답변한 것을 찾았다. LANGUAGE : 무슨 언어 쓰는지. VOLATILE : 모든 함수가 가지고 있는 속성. default로 적용된다. COST 100 : 각 row를 처리하는 데 드는 기본 비용. default로 적용된다. query planner가 가장 싼 plan을 찾을 때 사용된다.. 둘 다 생략해도 되는데, query optimizer에 function 정보를 주는데 어떤 함수가 volatile 속성인지, language는 뭔지, row당 결과의 비용에 대한 정보를 준다.. 해석이 맞나 ㅎㅎ; 대충 무슨 말 하려는지는 알겠음.. 참고할 수 있도록 주는 정보들이라는 것이겠지!

DB/PostgreSQL 2016.09.29

[Postgresql][linux] 파일로 Trigger 코드 관리하기

참조 URL: https://www.postgresql.org/docs/9.5/static/auth-pg-hba-conf.html psql에서 트리거 코드를 한 줄 한 줄 작성하는 건 불편하다. 코드를 파일에 작성하고, 간단하게 파일을 다시 로딩하는 방식으로 사용하고 싶다면 터미널에서 psql -U username -f codefile.sql -d database 명령을 실행하면 된다. 이 때, peer authentication failed 라는 오류가 날 수 있다. DB서버 접속 방식에 제한을 거는 부분에서 오류가 나는 것이므로 pg_hba.conf 파일을 수정해야 한다. 위의 peer를 trust로 바꾸고 저장하고 나간 후에 db서버를 재시작해 주고, 다시 시도하면 잘 된다. peer와 trust ..

DB/PostgreSQL 2016.09.29

[Llinux] Cron에 대해 알아보자

Cron이라는 건 리눅스에서 백그라운드로 돌며 등록한 작업을 특정 시간에 실행시켜 주는 스케줄링 프로그램이다.리눅스를 설치하면 기본으로 존재하는데, 사용법이 간단하다.윈도우의 작업 스케줄러와 닮았지만... 왜인지 모르게 작업 스케줄러는 불편하다.. 사용법 1. 터미널을 연다. 2. crontab -e를 입력한다. 3. 에디터 선택 화면이 나오는데 원하는 것으로 선택한다. 그러면 이런 내용의 파일이 열린다. (나는 emacs로 열었당.) 파일 가장 에래에 보면 m h dom mon dow command 가 주석표시되어 있다. 순서대로 분, 시, 일, 달, 요일, 작업 이다. 그냥 숫자만 쓰게 되면 그 시간이 될 때마다 수행하는 것이지만, */1 같이 '*/숫자' 형태로 쓰게 되면 그 시간(기간?)이 지날 ..

Linux 2016.09.29

[Postgresql] table의 index정보 확인/생성하기

show index type 이건 ' ' 를 써 줘야 인식을 한다. SELECT * FROM pg_indexes WHERE tablename = 'your_table'; create single or multi index - CREATE INDEX index_name ON table_name USING btree(column_name); CREATE INDEX index_name ON table_name (column_name); CREATE INDEX index_name ON table_name (column1_name, column2_name); create unique indexCREATE UNIQUE INDEX index_name ON table_name (column_name); create c..

DB/PostgreSQL 2016.09.26

[Database][BTree] Clustered index & Non clustered index의 이해

리그오브레전드 랭킹을 보여주는 사이트를 구현한다고 생각해 보자.테이블에 유저이름과 랭점이 하나의 Row를 구성하고, 이렇게 100만 개의 Row가 있다고 치자.물론 아무것도 안 해 놨는데 데이터베이스가 자동으로 정렬을 하진 않았을 것이다. 어떤 이가 사이트에 접속을 했다.이걸 그냥 ORDER BY로 처리할 수도 있을 것이다. 느리겠지만.하지만.... 이렇게 계속 사이트에 접속하는 유저 한명한명 정렬해주다간 더더더 느려질 것이다... 그럼 당연히 생각나는 건 하나다.'데이터를 넣을 때 정렬을 하게 하면 되지!'그게 바로 index 방식에서 하는 일이다. Clustered index : 데이터를 인덱스 + 물리적으로 모두 정렬되어 있음. Non-Clustered index : 데이터를 인덱스로만 정렬해 놓음..

DB 2016.09.25

[Postgresql] DB Server 'windows to linux(ubuntu)' migration - pgsql backup/restore

Windows에서 pgadmin으로 Postgresql을 쓰다가, 리눅스로 갈아타려고 멀티부팅으로 설치했는데, 윈도우에 있는 걸 그대로 복원할 수 있더라. 방법은 pg_dumpall 이나 pg_dump 기능을 이용하는 것이다. pg_dump는 데이터베이스 하나하나 백업이 가능하고, pg_dumpall은 서버 전체를 백업한다. Windows에서 백업 cmd로 작업한다.옵션은 간단하게-h : hostname-p : port-U : username-f : file이렇다. 자세한 옵션은 문서를 참조 : https://www.postgresql.org/docs/current/static/app-pgdump.html pg_dump pg_dumpall암호라고 뜨는 건 Database 수만큼 권한 때문에 비밀번호를 입..

DB/PostgreSQL 2016.09.24
반응형