반응형
문제
https://www.acmicpc.net/problem/4948
풀이
n보다 크고 2 * n 보다 작거나 같은 소수의 개수를 출력하는 문제입니다.
에라토스테네스의 체 알고리즘을 사용하여 소수들을 구할 수 있습니다.
n이 최대 123,456 이므로,
에라토스테네스의 체 알고리즘을 사용하여 123,456 * 2 만큼의 소수들을 한 번에 구해줍시다.
그 이후, n + 1 부터 2 * n 까지의 소수들의 개수를 출력해주면 됩니다.
고차함수 filter를 사용해서, 소수인 것들의 개수만 세도록 구현하였습니다.
소스코드
후기
소수판별 알고리즘에 대해 알고있다면 쉽게 풀이할 수 있습니다.
에라토스테네스의 체 알고리즘을 사용하는것이 한 번에 소수들을 구하기 때문에, 가장 효율적이라고 생각합니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 1085 직사각형에서 탈출 (Swift) (0) | 2023.03.16 |
---|---|
[BOJ] 백준 17103 골드바흐 파티션 (Swift) (0) | 2023.03.16 |
[BOJ] 백준 1929 소수 구하기 (Swift) (0) | 2023.03.16 |
[BOJ] 백준 4134 다음 소수 (Swift) (0) | 2023.03.16 |
[BOJ] 백준 2485 가로수 (Swift) (0) | 2023.03.16 |