오늘은 정답률 높은 걸 풀면서 머리를 식히겠어요.
라고 생각했는데 이것은 코딩테스트 처음 봤던 때에 나온 유클리드 호제법...
프로그래머스의 추천이란 알 수 없는 것★
package programmers;
public class N개의최소공배수_221220 {
public static void main(String[] args) {
int [] arr = {2,6,8,14};
System.out.println(solution(arr));
}
public static int solution(int[] arr) {
int answer = arr[0]; //1개짜리 배열이면 그냥 answer 에서 끝남!
for(int i = 1; i<arr.length; i++){
int gcd = gcd(answer,arr[i]); //최대공약수
answer = answer * arr[i] / gcd; //최소공배수
}
return answer;
}
public static int gcd(int num1, int num2){
int max = Math.max(num1, num2);
int min = Math.min(num1, num2);
int temp = 0;
while(max % min != 0){
temp = max % min;
max = min;
min = temp;
}
return min;
}
}
이렇게 짜도 시간복잡도 통과 되긴 하는데 보통 gcd는 그냥 재귀로 짤 듯...
(내가 좋아하니까)
↓ 이렇게 짜면 됩니당.
https://blockdmask.tistory.com/53
오늘은 공부 좀 하다가 12시 근처라서 빠르게 짜고 패스하는 날!
댓글
댓글 쓰기