문제 출처:
https://school.programmers.co.kr/learn/courses/30/lessons/12953
코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int gcd(int a,int b){
if (b==0) return a;
else{
return gcd(b, a%b);
}
}
int lcm(int a, int b){
return a*(b/gcd(a,b));
}
// arr_len은 배열 arr의 길이입니다.
int solution(int arr[], size_t arr_len) {
int answer = 0;
int save=arr[0]; // 최소공배수 저장값
for(int i=1;i<arr_len;i++){
save = lcm(save,arr[i]);
}
printf("%d",save);
return save;
}
해결한 뒤, 사이트에 괜찮은 솔루션이 있어 공유해본다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// arr_len은 배열 arr의 길이입니다.
int solution(int arr[], size_t arr_len) {
long answer = 1;
int sw = 0;
while(sw != 1){
for(int j=0; j<arr_len; j++){
if(answer % arr[j] != 0) sw = 1;
}
if(sw == 0){
break;
}
else{
answer++;
}
sw = 0;
}
return answer;
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[python][프로그래머스 level1] 삼총사 (0) | 2022.10.30 |
---|---|
[c][프로그래머스 level 2] 주식가격 (1) | 2022.10.07 |
[프로그래머스 level2][C언어] 피보나치 수열 (0) | 2022.10.06 |
[프로그래머스 level 2][C언어] 올바른 괄호 (0) | 2022.10.06 |
[프로그래머스 level2][C언어] 최솟값 만들기 (0) | 2022.10.05 |