본문 바로가기

Computer Science

(23)
좌표의 크기가 너무 크다면? 좌표 압축 알고리즘 [알고리즘 기본 개념] 위 문제로 예를 들어보자면 x, y의 좌표는 최대 0,0~2^31, 2^31이다. 2^31은 int의 바운더리 안에 가깝게 들어오는 값이다. (int는 최대 2^32 = 20억정도) 만약, (0,0) 과 (2^31, 2^31) 을 비교하라고 하면 n의 범위를 2^31 로 둘 수 있을까? 시간 초과 결과가 나올 것이다. 컴퓨터가 1초에 처리할 수 있는 연산은 1억 정도. 그래서 인덱스를 이용한 좌표 압축 알고리즘이 있다. data = [[0, 0], [1, 1], [0, 2], [2, 0], [0, 3], [3, 2], [1, 4], [4, 4], [100, 50], [150, 30]] 이렇게 비교가 필요한 좌표가 주어진다면 x의 좌표와 y좌표를 따로 구분한다. xpoint = [0..
올림, 내림, 반올림 함수 http://seorenn.blogspot.com/2018/02/ceil-floor-round.html 에서 가져온 글입니다. 이번 글은 굉장히 유명한 수학 함수 3가지를 적어보는 글입니다. 그리고 오랜만에 구어체가 아닌 존대말(?)로 쓰는 글이기도 하겠네요. 이번에 언급하는 함수 세 가지, 즉 ceil(), floor(), round() 함수는 C 언어 시절부터 쓰이던 수학 함수 중 일부입니다. 이 함수 들은 현대의 거의 대부분의 언어에서도 대부분 동일한 이름으로 제공될 정도로 필수 함수이지요. 이 함수들의 용도 및 활용법을 Swift 기준으로 정리해 보겠습니다. 물론 다른 언어에서도 거의 동일하니 언어가 의미가 있는지는 잘 모르겠지만요. ceil() ceil() 함수는 소수점 아래의 숫자가 있으면 소..
c++ 문자열 변환 문자열 -> 정수 stoi(str) 문자열 -> 실수 (double) stod(str) stof(str) 문자열 -> long stol(str) 문자열 -> long double stold 2016-09-15 20:59:57.421 0.351s, 2016-09-15 20:59:58.233 1.181s, 2016-09-15 20:59:58.299 0.8s, 2016-09-15 20:59:58.688 1.041s, 2016-09-15 20:59:59.591 1.412s, 2016-09-15 21:00:00.464 1.466s, 2016-09-15 21:00:00.741 1.581s, 2016-09-15 21:00:00.748 2.31s, 2016-09-15 21:00:00.966 0.381s, 2016-09..
Binary Tree 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 104 105 106 107 108 109 110 111 112 113 114 115 #include using namespace std; int n = 15; type..
Binary Search Tree 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 typedef struct Node { int data; struct Node* left; struct Node* right; }Node; void insertNode(Node* node, int x) { Node* parent; Node* tmp; Node* new..
HashMap 정렬 Collections.sort 를 이용한다. 고유 인덱스를 유지하면서 정렬을 하고 싶을 때 사용한다. DB관리 할 때 사용할 수 있다. HashMap hash= new HashMap(); ...hash.put(0, 1); Iterator it = sortHash(hash) //정렬된 결과를 탐색할 수 있도록 iterator를 반환한다. List sortHash(final Map map) { List list = new ArrayList(); list.addAll(map.keySet()); Collections.sort(list, new Comparator() { @override public int compare(Object o1, Objecct o2) { Object v1 = list.get(o1); ..
Java에서 HexString 값을 int로 변경 Integer클래스가 제공하는 기능 1. hexString to int int n = Integer.parseInt( 'A', 16 ); 2. int to hexString String hex = Integer.toHexString(10); 3. String to hexString String str = "Jay" System.out.println(stringToHex(str)) public static String stringToHex(String s) { String result = ""; for (int i = 0; i < s.length(); i++) { result += String.format("%02X ", (int) s.charAt(i)); } return result; }