티스토리 뷰
반응형
문제 링크
programmers.co.kr/learn/courses/30/lessons/12953
코딩테스트 연습 - N개의 최소공배수
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배
programmers.co.kr
문제 풀이
최대공약수를 구하는 유클리드 호제법만 알고 있다면 어렵지 않게 풀수 있는 문제다.
유클리드 호제법이란?
두 수 A,B가 있을때 그 중 큰수를 A로 두고 작은수를 B로 두자.
A % B를 했을때 나머지가 0 이된다면 B가 최대공약수이고 그게 아니라면
B를 A위치로 두고, A%B를 B위치로 두고 나머지가 될 때까지 반복한다.
1. 두 수중 큰수를 A, 작은수를 B로 둔다.
2-1. A % B 가 0이 나오면 B를 최대 공약수로 return한다.
2-2. A % B 가 0이 아니라면 B를 A로 두고 A%B를 B로 둔다.
3. 2번을 반복한다.
최대 공약수를 구한다면 어렵지 않으므로 나머지 내용은 소스코드를 보면서 이해 해보면 되겠다.
소스 코드
public class Sol {
public int solution(int[] arr) {
int answer = 1;
for (int i : arr)
answer = answer * i /GCD(answer, i);
return answer;
}
public static int GCD(int a, int b) {
int max = Math.max(a, b);
int min = Math.min(a, b);
if(max % min == 0) return min;
else return GCD(min, max%min);
}
}
반응형
'Problem Solving' 카테고리의 다른 글
[ 프로그래머스 / Java] 신규 아이디 추천 (1) | 2021.03.31 |
---|---|
[ 프로그래머스 ] 주식 가격 (0) | 2021.03.30 |
[ 프로그래머스] 가장 큰 수 - Java (1) | 2021.03.10 |
[ 백준 19236] 청소년 상어 - Java (0) | 2021.02.25 |
[ 백준 14503 ] 로봇 청소기 - Java (0) | 2021.02.05 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프로그래머스
- RGB거리
- 오버로딩
- 날짜 유효성
- 백준
- 01타일
- java
- 문자열 압축
- javascript
- vaild
- DP
- 1629
- 청소년상어
- 커링
- 반례
- 삼성 코테
- for of
- 삼각달팽이
- 19236
- 카카오 코딩 테스트
- 카카오 인턴십
- 삼성기출
- 키패드 누르기
- 제네릭(Generic)
- local cache
- spring cache
- 가장 큰 수
- 39회차
- 제네릭 타입
- yyyy-MM-dd
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함