전체 글

공부한 내용을 정리하는 블로그 입니다.
알고리즘

[프로그래머스 - Level 2] N개의 최소공배수

문제 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. 입출력 예 설명 접근 두수의 최대공약수는 두수를 곱하고 최대 공약수로 나눠주는 식으로 구할수 있다 이때 파이썬의 math모듈의 gcd를 사용하면 최대공약수를 구할수 있다. math모듈의 gcd의 사..

알고리즘

에라토스테네스의 체

소수를 찾는 방법으로 하나 외우고 있으면 좋을것 같다 소수를 찾는 코테 문제하나를 풀어봤는데 기존에 모든 경우의 수(2와 3부터 시작하는 모든 홀수) 를 넣어서 찾는 방법은 시간초과가 되어버렸다.(소수탐색 자체만 해도 O(n)이고 만약 두 소수의 곱으로 이뤄진 숫자에서 두 소수를 찾아라 하는 문제일 경우 반복문을 이용해야 되므로 O(n^2)의 경우가 되는 문제가 있었다.) 에라토스테네스의 체를 사용한다면 O(N^1/2)의 시간복잡도로 계산할수 있다 주로 대량의 소수를 한꺼번에 판별해야할 경우에 사용한다 방식(파이썬) 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다 2부터 시작해서 나열된 수에서 지워지지 않은 수 중 가장 작은 2를 소수로 선택하고 2의 배수를 지운다. 3도 지워지지 않았기 때문에 ..

hyeonta
개발 일지