알고리즘 문제(Swift) 22

알고리즘 문제(Swift) - 백준 17103 (골드바흐 파티션)

www.acmicpc.net​  우선 최대 1,000,000까지의 정수 N을 입력 받기 때문에에라토스테네스의 체 알고리즘을 이용하여 1,000,000까지의 소수를 판별하고각 테스트케이스 별로 2부터 N/2까지 돌면서 합으로 이루어진 두 수가 소수인지 확인 example)N = 6일 때, (3, 3)으로 이루어진 조합 1개N = 8일 때, (3, 5)로 이루어진 조합 1개N = 10일 때, (3, 7), (5, 5)로 이루어진 조합 2개N = 12일 때 (5, 7)로 이루어진 조합 1개  let maxNum = 1000000 // N의 최대 값var isPrime = Array(repeating: true, count: maxNum + 1)isPrime[0] = falseisPrime[1] = falsef..

알고리즘 문제(Swift) - 백준 6658 (골드바흐의 추측)

www.acmicpc.net​ 에라토스테네스의 체 알고리즘을 이용하여 범위 내 소수를 판별하고 입력 값을 두 홀수 소수의 합으로 나타내는 문제이다시간 제한이 0.5초라 여러 시도 끝에 성공했다  첫 번째 방법 → 재귀 함수 사용우선 에라토스테네스의 체 알고리즘을 이용하여 n의 최대 값을 1,000,000으로 두고 소수 판별을 진행함인덱스가 숫자가 되고 값이 true, false로 소수 판별되기 때문에 소수인 값만 필터링 후 인덱스 값을 primeNums 배열에 담아 소수로 이루어진 숫자 배열을 만듦입력으로 들어온 값 num 보다 작은 수로만 이루어진 배열을 만듦재귀함수를 이용하여 두 소수의 합이 num과 같은 모든 조합을 확인 후 소수의 차가 가장 큰 값을 출력let maxNum = 1000000var ..