분류 전체보기 (644) 썸네일형 리스트형 CCW 세 점이 시계방향인지 평행하는지 반시계방향인지 확인할때 쓰는방법 또한 ccw의 크기의 /2 는 세점으로 하는 삼각형의 크기라는 것을 알 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 package algo; import java.util.Scanner; public class B11758 { static class Pair { int y; int x; public Pair(int x, int y) { super(); this.y = y; this.x = x; } } static int ccw(Pair a, Pair b, Pair c) { int.. 백준 : 2113 java 트리의 독립집합 문제는 메모이제이션을 이용해서 풀었다. 기본적으로 1번노드에서 시작해 그래프를 탐색하는데 현재 노드를 선택/비선택 두가지 가지로 나누어서 메오이제이션을 채울 수있다. 그리고 이번 노드에서 선택했다면 인접한 노드는 선택하면 안되고 만약 선택하지 않았다면 선택해도 되고 안해도 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 8.. 아두이노간 비콘구현 1:n 통신 BLE통신의 브로드캐스트모드에서 하나의 ble (hm10)이 마스터슬레이브로서 여러데이터들은 무작위로 수신받는다. 그형태는 소스는 이렇게 공개하겟다 거창할것도 없지만 하드코딩이다. 나중에 소스코드 수정이필요해보인다. AT커맨드를 write를 이용해서 썻을경우 delay를 주는방법으로는 모듈에서 정확한 값을 수신하기 어려웠다. 따라서 나는 lock을 걸어서 문제를 해결할수 있었다. 두번째는 보시다시피 배열에담김값을 적재적소에 찾고 그값이 uuid 1111 인지 2222인지 판단해서 거리값을 반환한다 거리가 가까운 모듈의 불빛을 키는형태로 쉽게 구현 할수있었다. 이제남은과제는 어떻게하면 비콘의 반응속도를 올릴지가 문제이다. 그리고 신호등에 비콘을 설치하여 빨간불일때는 uuid값의 일부를.. 백준 16933: java https://www.acmicpc.net/problem/16933 16933번: 벽 부수고 이동하기 3 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net 벽 부수고 이동하기 3 아이디어 BFS 너비우선 탐색을 활용한다. 이때 현재위치, 내가 뿌순 벽수, 낮과밤 을 이용해서 풀수있다. 낮과밤은 홀수짝수 개념으로 0 : 낮 1 : 밤으로 하고 1을 더하고 %2 한것은 항상 0과 1를 이용해서 풀수있다. visit 배열말 잘선언해주고 조건에 맞게 BFS 탐새을 이용하면 쉽게 풀수있다. BFS 탐색시 q.size 만큼 .. 강한 연결 요소 java 업데이트 예정 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 package algo; import java.io.BufferedReader; import java.io.IOException; import java.i.. 페이징 처리 전체 DB의 수를 가져오는 함수 select count(*) from guestbook; 효율적인 처리를 위해서 limit 과 offset을 이용해서 필요한 페이지 만큼을 불러오겠다. select * from guestbook limit 2 offset 3; 위의 두가지 sql문법을 활용해서 효율적인 페이징 처리를 하려고한다. 기본적인 페이징 처리 원리 int totalCount = /*DB접속후 쿼리를 통해 얻은 값*/; int listCount = 10; int totalPage = (totalCount-1) / listCount + 1; if (totalCount % listCount > 0) { totalPage++; } listCount 한페이지에 불러올 리스트의 양이다. totalPage는 전.. 트라이(Trie) : JAVA / 백준 5052 트라이 알고리즘 일반 적인 정수들은 O(1) 시간내에 비교가 가능합니다 . 1==1 ,123>4 처럼 단순연산으로 접근 할 수 있습니다. 하지만 String 같은경우에는 "ABC" == "ABCD" 를 고려하기 위해서는 최대 문자열의 길이 O(M) 시간이 걸립니다. (첫 번째 인덱스부터 계속 비교해 나가야 되기 때문입니다.) 따라서 기존 이진 트리로 정수형 데이터를 찾는데 걸리는 시간이 O(logN) 이라고한다면 문자열의 경우에는 O(MlongN) 시간이 걸리게 됩니다. 하지만 트라이 알고리즘을 사용한다면 O(M) 시간내에 자료를 찾을 수 가 있습니다. 문자열 집합 S={"BE","BET","BUS","TEA","TEN"} 을 트라이 자료구조로 표현하면 다음과 같습니다. 여기서 주황색으로 표시된 Node.. 이분 매칭 알고리즘 ( JAVA),열혈강호1,2,3 문제 이분 매칭 알고리즘이란 용량이 1인 이분 그래프에서 최대로 매칭 할수 있는 수를 구하는 알고리즘이다. 기본적으로 DFS알고리즘을 사용한다. 알고리즘 매커니즘 기본 적으로 1~N 노드 까지 DFS 탐색을한다. 이때 각각의 노드마다 Dfs탐색을 한다. 1. 현재 here 노드에서 연결된 there 노드가 방문하지않았으면 there은 here과 이어젔다고 표시한후 true를 반환 2. 만약 there이 누군가와 연결되었다면 there과 연결한 간선을 다시 Dfs탐색하여 다른것과 매칭 할수 있는지 탐색 만약 할수 있다면 here과 there을 이어준다. 그리고 true를 반환한다. 3. 위에 1, 2 번으로 이을수 없다면 false를 반환한다. 4. 1 2 3 을 1~N 번 노드 까지 반복한다. 그때마다 Dfs.. 이전 1 ··· 60 61 62 63 64 65 66 ··· 81 다음