일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 파이썬
- Spotify Api
- programmers
- MYSQL
- spring boot
- Computer Science
- 스포티파이
- Baekjoon
- SECS/GEM
- modern c++
- SECS
- SW Expert Academy
- 자바
- SECS-II
- Gem
- c
- 백준
- CS
- 프로그래머스
- Spring JPA
- 회귀
- regression
- Spring
- spotify
- 비트겟
- SWEA
- python
- C++
- 회원가입
- java
Archives
- Today
- Total
비버놀로지
[Programmers 프로그래머스] 12953 N개의 최소공배수 (JAVA) 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/12953
문제 설명
두 수의 최소공배수(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 |
BigInteger을 활용해서 최소공배수를 해결했다.
A와 B를 곱해주고, 두 수의 최대공약수를 나눠주면 두 수의 최소공배수가 된다.
이렇게 모든 수를 반복해 주면 답을 구할수 있다.
import java.math.BigInteger;
class Solution {
public int solution(int[] arr) {
BigInteger a = new BigInteger(String.valueOf(arr[0]));
for (int i = 1; i < arr.length; i++) {
BigInteger b = new BigInteger(String.valueOf(arr[i]));
a = a.multiply(b).divide(a.gcd(b));
}
return a.intValue();
}
}
728x90
'ALGORITM > JAVA' 카테고리의 다른 글
[BAEKJOON 백준] 1932 정수 삼각형 (JAVA) (0) | 2021.06.29 |
---|---|
[Programmers 프로그래머스] 12949 행렬의 곱셈 (JAVA) (0) | 2021.06.28 |
[Programmers 프로그래머스] 12985 예상 대진표 (JAVA) (0) | 2021.06.20 |
[Programmers 프로그래머스] 77484 로또의 최고 순위와 최저 순위 (JAVA) (2) | 2021.06.06 |
[Programmers 프로그래머스] 76501 음양 더하기 (JAVA) (0) | 2021.06.06 |
Comments