티스토리 뷰
프로그래머스 링크 - https://programmers.co.kr/learn/courses/30/lessons/12953?language=java
하도 귀찮아서 최소공배수 구하는 부분은 가져왔다.
원래대로라면 유클리드 방식으로 로직을 만들어야 하지만.
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 | import java.util.*; class Solution { public int solution(int[] arr) { int answer = 1; for(int i: arr){ answer = lcm(answer, i); } return answer; } public static int lcm(int a, int b) { int gcd_value = gcd((int)a, (int)b); if (gcd_value == 0) return 0; // 인수가 둘다 0일 때의 에러 처리 return Math.abs( (a * b) / gcd_value ); } public static int gcd(int a, int b) { while (b != 0) { int temp = a % b; a = b; b = temp; } return Math.abs(a); } } | cs |
'프로그래밍 > 알고리즘' 카테고리의 다른 글
연습문제 > 피보나치 수 (0) | 2021.11.29 |
---|---|
2021 KAKAO BLIND RECRUITMENT > 신규 아이디 추천 (0) | 2021.11.29 |
[자바] 프로그래머스 -최댓값과 최솟값 (0) | 2019.02.20 |
프로그래머스 - JadenCase 문자열 만들기 (0) | 2019.02.20 |
작은수를 x개 찾아서 없에기 (0) | 2019.02.20 |