Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 가상 요소 선택자
- CSS
- 배열의 내림차순
- innerhtml
- 배열과 연결리스트의 차이
- visibility : hidden
- 범용 선택자
- indexOf
- Array.from()
- map()
- display : none
- 양방향 연결리스트
- 등차수열의 항 찾기
- 일반 형제 선택자 결합
- for..of
- 배열의 오름차순
- 백준알고리즘
- 고차함수
- invalid assignment left-hand side
- 객체
- filter()
- nth-child()
- Em
- 단방향 연결리스트
- Link
- 인접 형제 선택자 결합
- disabled
- classList.contains(string)
- 쌍방향 연결리스트
- Sort
Archives
- Today
- Total
프론트엔드 센트럴파크 (☞゚ヮ゚)☞
백준알고리즘_2609 본문
유클리드 호재법
2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘
호재법이라는 말은 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘
자연수 a,b에 대해서 a를 b로 나눈 나머지를 r이라 한다면 a,b의 최대공약수와 b,r의 최대공약수는 같다.
이 성질에 따라 a를 b로 나눈 나머지 r을 구하고, b를 r로 나눈 나머지 r'을 구한다.
나머지가 0이 될때 나눈 수가 a,b의 최대공약수가 된다.
이 때 a 와 b의 최대공약수를 (a, b)라고 할 때 (a, b)의 최대공약수는 (b, r)의 최대공약수와 같다.
GCD(a, b) = GCD(b, r)
유클리드 호제법 사용
// a를 b로 나눈 나머지가 0보다 클 때 까지 반복
static int gcd(int a, int b){ // 최대 공약수
while(b!=0){
int r = a%b;
a= b;
b= r;
}
return a;
}
재귀함수 사용
static int GCD(int a, int b){ // 최대 공약수
if (a%b == 0) {
return b;
}
return GCD(b, a % b);
}
48, 64의 최대공약수
60 % 48 = 12
48 % 12 = 0
=> 최대 공약수는 12
☞ 최소공배수 : (60 X 48) / 12 = 240
최소 공배수 = (a X b) / (최대공약수)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Baek_2609 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int a = Integer.parseInt(st.nextToken()); // String을 int로 변환
int b = Integer.parseInt(st.nextToken());
System.out.println(gcd(a, b));
System.out.println(lcm(a, b));
}
static int gcd(int a, int b) { // 최대 공약수
if (a % b == 0) {
return b;
}
return gcd(b, a % b); //6
}
static int lcm(int a, int b) { // 최소 공배수
return a * b / gcd(a, b); // (24X18) / 6
}
}
'Algorism' 카테고리의 다른 글
백준알고리즘_2742 (0) | 2022.02.09 |
---|---|
백준알고리즘_9316 (0) | 2022.02.09 |
백준알고리즘_10870 (0) | 2022.01.23 |
백준알고리즘_2460 (0) | 2022.01.19 |
백준 알고리즘_1000 (0) | 2022.01.16 |
Comments