반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- #백준 #알고리즘 #SWEA #핀볼게임
- 정보처리기사 실기
- #dfs #벽돌깨기 #swea
- #시뮬레이션 #dfs
- #recursion #strcmp #deque
- #시뮬레이션
- #pair배열
- #시뮬레이션 #미생물 격리
- #시뮬레이션 #recursion
- #최단거리 #최소거리
- SW개발 테스트
- BFS
- bruteforce #DFS #완탐
- #주사위 굴리기 #시뮬레이션
- #에라토스테네스의채 #소수판별
- #dfs #완전탐색
- #dfs
- 19년 3회
- #BFS노필요.. #홈방범서비스
- #DFS #BFS #라인
- #bfs
- #DFS #백트래킹
- 2019년10월
- #부분집합 #dfs
- 취업준비생
- 실기
Archives
- Today
- Total
Hokusai
[3] 소수의 합 본문
반응형
Programmers 문제 - 소수의 합
[시간제한]
모든 테스트 케이스를 합쳐 1초
[메모리제한]
512MB
[문제]
2부터 N까지의 모든 소수의 합을 구하세요. N이 7이라면 {2,3,5,7} = 17을 출력 하시면 됩니다.
N의 범위는 2이상 10,000,000이하 입니다. 효율성 테스트의 모든 시간 제한은 1초입니다.
=======================================================================
[Idea]
방법 1) O(n^2)로 다 돌려서 확인하는 경우
: 기존의 소수를 구하는 방법이다. 이 방법은 n^2으로 시간복잡도가 안좋다. 효율성 4개 다 틀림
방법 2) O(n^2)로 다 돌려서 확인하는 경우2
1과 똑같은 원리이지만 시간을 줄이기 위해 이중for문 내 나누는 연산자의 범위를 2~√n 까지만 돌린다.
약수가 있는지 확인하면 되기 때문에 √n 까지만 해주어도 결과는 동일하고 시간은 비교적 줄어든다. 이 방법은 효율성 4개중 1개만 맞았다.
방법 3) 에라토스테네스의 채를 활용하는 방법 ==> O(nloglogn)
생각외로 간단하다. 배열을 만들어 해당 idx의 값이 0이면 소수로 찍어내고, 이후의 배수들은 범위까지 2씩를 곱하여 1로 체크해주는 것이다. 아래 gif를 보면 이해가 편할 것이다.
이 방법이 빠를 까라는 의문이 들었는데 해보니 효율성이 다 맞았다. 코드도 위 2방법보다 짧았다.....ㄷㄷ
반응형
'알고리즘( C++ ) > 3. Etc' 카테고리의 다른 글
[6] 나잡아봐라~ (0) | 2019.03.18 |
---|---|
[5] 최단거리 구하기 - DFS (0) | 2019.01.04 |
[4] 부분집합 구하기 - DFS (0) | 2019.01.04 |
[2] 카드단어 (0) | 2018.12.25 |
[1] 대탈주 (0) | 2018.12.22 |
Comments