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
- Python
- programmers
- Lv. 0
- javascript
- LEVEL 2
- 동적계획법
- join
- 티스토리챌린지
- SQL 고득점 KIT
- dfs
- 자바스크립트
- DP
- bfs
- 깊이 우선 탐색
- Lv. 3
- C언어
- level 3
- 소프티어
- softeer
- Lv. 2
- SQL
- 파이썬
- 프로그래머스
- Java
- 너비 우선 탐색
- group by
- Lv. 1
- 오블완
- select
- Dynamic Programming
Archives
- Today
- Total
몸과 마음이 건전한 SW 개발자
프로그래머스 [Lv. 1] 최대공약수와 최소공배수 {언어 : Java} 본문
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12940
정답 코드
class Solution {
public int gcd(int n, int m) {
// m이 크다고 전제하고 게산
int tmp = m;
if (n > m) {
m = n;
n = tmp;
}
while (n > 0) {
int o = m;
m = n;
n = o % n;
}
return m;
}
public int[] solution(int n, int m) {
int[] answer = new int[2];
int v = gcd(n, m);
answer[0] = v;
answer[1] = n * m / v;
return answer;
}
}
풀이 방법
- m이 크다는 전제하에 n이 0이 될 때까지 계산을 반복해서 최대공약수를 구한다.
- n과 m을 곱한 뒤 최대공약수로 나누면 최소공배수가 나온다.
느낀점
- 쉽지만 이해하고 외우는 것이 중요하다.
'알고리즘 > 알고리즘 이론' 카테고리의 다른 글
프로그래머스 [Lv. 1] 소수 찾기 {언어 : Python} (0) | 2024.09.23 |
---|---|
이진수 변환 구현하기 {언어: 자바스크립트} (0) | 2024.05.04 |
최대공약수, 최소공배수, 유클리드 호제법 {언어: 자바스크립트} (0) | 2024.03.28 |
에라토스테네스의 체를 이용해서 소수인지 판별하기 (0) | 2024.03.14 |
[알고리즘 이론] 거품 정렬, 거품 정렬 개선하기 (0) | 2024.02.29 |