-
프로그래머스 Lv.2) N개의 최소공배수알고리즘/프로그래머스 2020. 5. 21. 16:15반응형
N개의 최소공배수
풀이
이 문제는 인터넷 검색을 통해 최대 공약수, 최소 공배수를 구하는 알고리즘을 찾았다. 평소같으면 몰라도 푸는 연습을 했겠지만, 이 문제는 찾고 이해하는게 더 좋다고 판단했기 때문이다. 분명 학부생 때는 이 알고리즘을 구현 했었다. 지금은 까먹었다는게 문제지만.. 아무튼 다시 한번 머리에 각인 시키는 계기가 되었으면 한다.
1. for문을 돌면서 최소공배수를 구한다.
2. 최소공배수는 두 숫자의 곱셈 / 두 숫자의 최대공약수 로 만든다.
3. 최대공약수를 구할 때는, 나눌 수 있을 때 까지 나눈 수를 구했다고 보면 된다.
코드
class Solution { public int solution(int[] arr) { int answer = 1; for(int i=0; i<arr.length; i++) { answer = lcm(answer,arr[i]); } return answer; } private int gcd(int left, int right) { while(right !=0) { int mod = left%right; left = right; right = mod; } return left; } private int lcm(int left, int right) { return left*right/gcd(left,right); } }
반응형'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv.2) 피보나치 수 (0) 2020.05.21 프로그래머스 Lv.2) 올바른 괄호 짝지어 제거하기 (0) 2020.05.21 프로그래머스 Lv.2) JadenCase 문자열 만들기 (0) 2020.05.21 프로그래머스 Lv.2) 올바른 괄호 (0) 2020.05.19 프로그래머스 Lv.2) 가장 큰 정사각형 찾기 (0) 2020.05.19