Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- dfs
- level 3
- 파이썬
- DP
- Lv. 3
- Lv. 1
- Dynamic Programming
- 동적계획법
- 오블완
- 소프티어
- 자바스크립트
- 프로그래머스
- programmers
- LEVEL 2
- Baekjoon
- group by
- 너비 우선 탐색
- javascript
- Python
- bfs
- 깊이 우선 탐색
- Lv. 0
- SQL
- 티스토리챌린지
- Java
- 백준
- SQL 고득점 KIT
- join
- Lv. 2
- softeer
Archives
- Today
- Total
몸과 마음이 건전한 SW 개발자
프로그래머스 [Lv. 1] 최대공약수와 최소공배수 {언어 : Java} 본문
728x90
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12940
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답 코드
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을 곱한 뒤 최대공약수로 나누면 최소공배수가 나온다.
느낀점
- 쉽지만 이해하고 외우는 것이 중요하다.
728x90
'알고리즘 > 알고리즘 이론' 카테고리의 다른 글
프로그래머스 [Lv. 1] 소수 찾기 {언어 : Python} (0) | 2024.09.23 |
---|---|
이진수 변환 구현하기 {언어: 자바스크립트} (0) | 2024.05.04 |
최대공약수, 최소공배수, 유클리드 호제법 {언어: 자바스크립트} (0) | 2024.03.28 |
에라토스테네스의 체를 이용해서 소수인지 판별하기 (0) | 2024.03.14 |
[알고리즘 이론] 거품 정렬, 거품 정렬 개선하기 (0) | 2024.02.29 |