알고리즘

· Algorithm
문제 numberOfPrime 메소드는 정수 n을 매개변수로 입력받습니다. 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하도록 numberOfPrime 메소드를 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.(1은 소수가 아닙니다.) 10을 입력받았다면, 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환 5를 입력받았다면, 1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환 풀이 소수 관련 문제의 가장 직관적인 형태라 생각한다. 단순하게 소수를 구해서 개수를 리턴하면 된다. 소수를 구하는 알고리즘은 다양한데 그 중 가장 많이 쓰이는 에라토스테네스의 체를 사용하였다. 이 것은 간단하다. 1부터 구하고자 하는 수(n)까지 배열을 생성..
· Algorithm
문제 자연수로 이루어진 길이가 같은 수열 A,B가 있습니다. 최솟값 만들기는 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱한 값을 누적하여 더합니다. 이러한 과정을 수열의 길이만큼 반복하여 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. 예를 들어 A = [1, 2] , B = [3, 4] 라면, A에서 1, B에서 4를 뽑아 곱하여 더합니다. A에서 2, B에서 3을 뽑아 곱하여 더합니다. 수열의 길이만큼 반복하여 최솟값 10을 얻을 수 있으며, 이 10이 최솟값이 됩니다. 수열 A,B가 주어질 때, 최솟값을 반환해주는 getMinSum 함수를 완성하세요. 풀이 두 수열에서 각각 값을 뽑아 곱한 후 그것들을 모두 더하여 최소값을 만들어야 한다. 따라서 접근 방법은 한 수열에서 가장 ..
· Algorithm
문제 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 gcdlcm(3,12) 가 입력되면, [3, 12]를 반환해주면 됩니다. 풀이 단순하게 최대공약수와 최소공배수를 출력하는 문제이다. 최대 공약수와 최소 공배수를 구하는 좋은 알고리즘은 많이 있지만 단순하고 직관적으로 구하도록 코딩하였다(사실 머리를 안쓴....) Level 2에서 GCD와 LCM에 관한 문제가 있는데 거기서는 유클리드 호제법을 사용하였다. 1부터 두 수의 곱까지 반복하며 공통적으로 나뉘는 수를 구한다. 그리고 마지막(a*b)까지 탐색하니까..(당연히 이게 최대공약수..) 최소공배수는 최대공약수와 최대공약..
lasiyan
'알고리즘' 태그의 글 목록 (4 Page)