백준 156

BOJ#2609 최대공약수 최소공배수

BOJ#2609 최대공약수 최소공배수 * 문제https://www.acmicpc.net/problem/2609 * 풀이 두 자연수 a, b가 주어졌을 때 (a>b), 두 자연수의 최대공약수를 구하는 알고리즘 : 유클리드 호제법두 자연수의 최소공배수를 구하는 알고리즘 : a*b/최대공약수 유클리드 호제법유클리드 호제법(Euclidean algorithm)은 2개의 자연수의 최대공약수를 구하는 알고리즘 중 하나이다.호제법이란, 두 수가 서로 상대방 수를 나누어 결국 원하는 수를 얻는 알고리즘을 말한다. m >= n일 때,① m을 n으로 나눈다. 나머지를 r이라고 한다.② 나머지 r이 0이면 n이 최대공약수이다. 나머지가 0이 아니라면 m의 값을 n으로 설정하고, n의 값은 r로 설정한 다음 ①로 되돌아가서 ..

Algorithm/수학 2016.11.08

BOJ#11403 경로찾기

BOJ#11403 경로찾기* 문제https://www.acmicpc.net/problem/11403 * 풀이 가중치 없는 방향 그래프가 행렬로 주어졌을 때, i에서 j로 가는 경로 유무를 행렬로 표현하라. bfs(Breadth First Search)를 이용하였다. 1. bfs(i, j) : i를 시작점으로 해서 연결된 모든 노드를 탐색한다. j를 찾을 경우 return.2. 위 과정에서 탐색한 노드는 중복해서 탐색하지 않도록 한다. * 나의 코드https://github.com/stack07142/BOJ/blob/master/BOJ%2311403_BFS_FindPath/src/Main.java Java (17.08.29)import java.io.*; import java.util.LinkedList;..

BOJ#1007 Vector Matching

* 문제 https://www.acmicpc.net/problem/1007 * 풀이 평면 상에 N개의 점이 찍혀있다. (N은 짝수) N개의 점을 이용해서 벡터를 만든다. 벡터는 당연히 N/2개 나올 것이다. 문제를 자세히 보니, N개 점들의 좌표가 주어지고 평면벡터이다. 평면 상에 2개의 점 A(x1, y1), B(x2, y2), C(x3, y3), D(x4, y4)가 주어졌고 임의의 벡터를 구성했다고 가정해보자. 2개의 임의의 벡터이다. AB = (x1-x2, y1-y2) CD = (x3-x4, y3-y4) 위 2개의 벡터의 합은 아래와 같다. AD+CD = (x1+x3-(x2+x4), y1+y3-(y2+y4)) 위 벡터의 크기는 Math.sqrt((x1+x3-(x2+x4))^2, (y1+y3-(y2+..

Algorithm/수학 2016.11.04

BOJ#1004_어린 왕자

* 문제https://www.acmicpc.net/problem/1004 * 풀이 (생각의 흐름)주어진 예제 그림에서 힌트를 얻었다.→ 출발점을 감싸고 있는 원의 수 + 도착점을 감싸고 있는 원의 수 : 주어진 예제에서는 OK→ 그러나 한 원이 출발점과 도착점을 모두 포함하는 경우 : NG→ 따라서 위 경우의 수를 제외해야 함 ※ 출발점을 감싸고 있는 원의 수 + 도착점을 감싸고 있는 원의 수 - 두 점을 모두 포함하는 원의 수 = 출발점이나 도착점 1개만 포함하고 있는 원의 수 * 코드 for (int j = 0; j < n; j++) { st = new StringTokenizer(br.readLine()); Circle c = new Circle(Integer.parseInt(st.nextToken..

Algorithm/수학 2016.11.04