반응형

2018/10 9

백준 10971 문제. (TSP문제를 수열을 이용해 해결)

백준 문제 10971백준 문제 10971 문제는 외판원 순회 문제로, TSP(Traveling Salesman Problem) 문제이다.위와 같은 문제는 순열을 이용해 문제를 해결 할 수 있는데, 그 이유는 (2 w[i][q]; } } std::vector a(n); for (int i = 0; i < n; ++i) { a[i] = i; } int result = 999999999; do { int sum = 0; bool isOk = true; for (int i = 0; i < n - 1; ++i) { // 여기서 vector a 는 수열이라서 n+1 로 해도 모두 돈다. if (w[a[i]][a[i + 1]] == 0) { // [i][j] 가 0일 때 못 가기 때문 isOk = false; } e..

CS/알고리즘 2018.10.29

백준 2609 문제 - 유클리드 호제법을 이용

백준 2609 문제이다 최소 공배수와 최대 공약수를 구하는 문제이다. 우리는 여기서 유클리드 호제법을 사용할 수 있다. 얼마 전 내가 유클리드 호제법 증명하는 것을올렸으니 한 번 찾아보자. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); int g = gcb(a, b); System.out.println(g); System.out.println((a*b) / g); } public static int gcb(int a, int b..

CS/알고리즘 2018.10.24

백준 2309 : 일곱 난쟁이

일곱 난쟁이 문제다. [https://www.acmicpc.net/problem/2309] 문제를 읽고 나면 알 수 있듯이, 아홉 명의 난쟁이 중에 일곱 난쟁이를 찾으면 된다. 이 말인 즉슨, 2명을 찾아서 제외를 하면 되는 것이다. 그러면 2명이면 n제곱으로 찾을 것이다. 3명이면 n 세제곱 , ...... 한 번에 모든 난쟁이 키를 더한 뒤에 한 명, 한 명 빼주면 언젠간 100 이 딱 떨어지면 그 수를 제외하고 출력을 하면 된다. for ( int i = 0; i < 9; ++i ) { for ( int q = i + 1; q < n; ++q ) { if (sum - arr[i] - [arr- q] == 100 ) { // arr[i], arr[q] 를 제외하고 출력 } } }

CS/알고리즘 2018.10.23

[Spring] Spring JPA Specification

Spring JPA SpecificationSpring JPA Specification 에 알아보려고 한다.다음의 사이트에서 Spring JPA Specification 에 대해서 그마나 쉽게 이해가 되도록 이야기하는 것 같다.https://dzone.com/articles/using-spring-data-jpa-specificationSpring JPA Specification 은 매우 짧게 이야기 한다면 기존에 인터페이스에 JpaRepository 같이 상속받아서 CRUD 메소드를 제공 받았으나, 동적인 쿼리를 작성할 때 JPA Specification 이 도움이 된다.예를 들어, 다음과 같은 기능이 있다고 생각하자.유저를 검색하는 게시판에, 각각 필터가 달려있다. userId, userName, c..

개발/Spring 2018.10.22

[수학] 최대공약수를 구할 수 있는 유클리드 호제법 증명하기

최대공약수를 구하는 유클리드 호제법 증명하기.유클리드 호제법으로 최대 공약수를 쉽게 구할 수 있다.예를 들어, (16, 12) 란 값이 있을 때 이 두 수의 최대공약수를 구하려면(A, B) (B. (A%B)) .. .. .. (R, 0) 이 된다. 그러면 여기서의 R 이 최대공약수가 된다. 이해를 못 하시겠다구요? 그러면 숫자를 사용해봅시담(16, 12) (12, 4) (4, 0) 즉 (16, 12) 의 최대공약수는 4가 됩니다. 정말 쉽죠?그래서 직접 코드 유클리드 호제법을 사용하면 O(log N) 이 나올 것이다.이제 유클리드 호제법을 한 번 증명해보자. 증명은 고등학교 이후로 처음하는 것 같다.자연수 A, B 가 있다. A % B = q A / B = r 라고 하자. G(A, B) 가 있을 때 G ..

etc/수학 2018.10.18

[Infra] 주키퍼를 설치해봅시다.

주키퍼를 설치해봅시다. 큰 목차는 다음과 같습니다.주키퍼 설치주키퍼 설정주키퍼 start셋팅 됐는지 확인 stable 버전은 3.4.13 인 것 같습니다. 해당 릴리즈 노트를 확인해보면 수정된 사항이 굉장히 많습니다. https://zookeeper.apache.org/doc/r3.4.13/releasenotes.html 3.4.13 버전의 주키퍼 다운로드 링크는 다음과 같습니다. http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz 그리고 이제 서버에 접속하도록 하겠습니다.저는 "AAA", "BBB", "CCC" 에서 작업을 하였습니다. dev 에선 서버 1개만 만들었고, stg 와 prd 에서는 각각..

개발/Infra 2018.10.11

[Spring] Spring boot multi source transaction

Spring Boot JPA MultiSource TransactionSpring boot : 2.0.5 버전을 사용 중이다.Spring boot 에서 JPA 를 사용할 때 2개 이상의 DB 를 사용할 때가 있다. 그럴 때 이제 트랜잭션 문제가 생길 수 있는데, Spring boot 에서 제공하는 @Transaction 어노테이션에 대한 주석을 살펴보면 다음과 같이 주석이 달려있다./** * A qualifier value for the specified transaction. * May be used to determine the target transaction manager, * matching the qualifier value (or the bean name) of a specific * {@l..

개발/Spring 2018.10.06
반응형