일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 정보처리기사
- springboot3
- java
- 자바
- PCSQL
- JPAdata
- 정처기
- SQL개발자시험
- Oracle
- JavaPersistenceApi
- DB
- programmers
- python
- JAVA.
- SQL개발
- 코딩테스트
- sql
- 알고리즘
- 코테
- PCCE
- PCCP
- 자바알고리즘
- 프로그래머스자바
- 2024년정보처리기사
- 정보처리기사기출
- 코딩역량인증시험
- 개발자
- 프로그래머스
- 정보처리기사대비
- 2023년회고
Archives
- Today
- Total
똘이의 개발 Life
[ 프로그래머스 JAVA ] 최소 공배수 본문
728x90
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/12953
걸린 시간
18:20 ~ 18:41 // 소요 시간 21분
피드백
최대 공약수 , 최소 공배수 구하는 알고리즘은 기본으로 외워두자.
문제
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.
제한 사항
- arr은 길이 1이상, 15이하인 배열입니다.
- arr의 원소는 100 이하인 자연수입니다.
예시
arr | result |
[2,6,8,14] | 168 |
[1,2,3] | 6 |
수도코드
없음
소스 코드 ( 자세한 내용 주석 참고 )
import java.util.*;
class Solution {
public int solution(int[] arr) {
int answer = 0;
int lcm = 0;
for( int i = 1; i < arr.length ; i++ ){
// 배열 0 , 1 의 최소 공배수 저장
if( i == 1 ){
lcm = LCM(arr[1] , arr[0]);
continue;
}
// 최소 공배수 = ( 직전 최소 공배수 , 새로운 수 ) <- 최소 공배수
lcm = LCM( lcm , arr[i] );
}
answer = lcm;
return answer;
}
// 최대 공배수 구하는 함수
static int GCD ( int M , int N ) {
if( M % N == 0 ) {
return N ;
}
return GCD( N , M % N );
}
// 최소 공약수 구하는 함수
static int LCM ( int M , int N ) {
return M * N / GCD( M , N );
}
}
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[ 프로그래머스 JAVA ] 귤 고르기 (1) | 2024.01.23 |
---|---|
[ 프로그래머스 JAVA ] 멀리 뛰기 (1) | 2024.01.23 |
[ 프로그래머스 JAVA ] 예상 대진표 (0) | 2024.01.22 |
[ 프로그래머스 JAVA ] 구명보트 (0) | 2024.01.18 |
[ 프로그래머스 JAVA ] 점프와 순간 이동 (0) | 2024.01.18 |