using System.Collections.Generic;
using System.Linq;
public class Solution {
public int[] solution(int n, int m) {
int[] answer = new int[2];
int num;
if(n >= m) {num = n;}
else {num = m;}
List<int> x = new List<int>();
// 최대공약수
for (int i = 1; i <= num; ++i)
{
if(n % i == 0 && m % i == 0)
{
x.Add(i);
}
}
answer[0] = x.Max();
// 최소공배수
int count = 1;
while(true)
{
if (num * count % n == 0 && num * count % m == 0)
{
answer[1] = num * count;
break;
}
count++;
}
return answer;
}
}
* List를 굳이 쓸 필요가 없음
* 더 큰 숫자를 num으로 가져올 필요가 없음 (a % b 를 할 때, a 가 b보다 작으면 무조건 a 값이 나옴)
int 최대공약수;
int 최소공배수;
// 최대공약수
for (int i = 1; i <= num ; i++)
{
if (n % i == 0 && m % i == 0)
{
최대공약수 = i;
}
}
// 최소공배수
int count = 1;
while (true)
{
if ((m * count) % n == 0)
{
최소공배수 = m * j;
break;
}
count++;
}
'C# 알고리즘 코드카타' 카테고리의 다른 글
41. 이상한 문자 만들기 (0) | 2023.11.22 |
---|---|
40. 3진법 뒤집기 (0) | 2023.11.21 |
38. 직사각형 별찍기 (1) | 2023.11.20 |
37. 행렬의 덧셈 (1) | 2023.11.20 |
36. 문자열 다루기 기본 (1) | 2023.11.20 |