반응형
250x250
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
- 조합론
- 연결리스트 정렬
- 실패함수
- KMP알고리즘
- 정렬
- 자료 구조
- 스택
- 해시를 사용한 집합과 맵
- 수학
- 별 찍기
- LeetCode 83번
- Queue
- 문자열
- 큰 수 연산
- 시뮬레이션
- 재귀
- 임의 정밀도 / 큰 수 연산
- 문자열제곱
- 유클리드 호제법
- 프로그래머스
- 사칙연산
- LeetCode 83 c언어
- 연결리스트 중복제거
- 브루트포스 알고리즘
- 큐
- 다이나믹 프로그래밍
- LeetCode Remove Duplicates from Sorted List in c
- 구현
- 이분 탐색
- 정수론
Archives
- Today
- Total
hahn
단계별로 풀어보기(기본 수학2 - 소수 구하기) 본문
728x90
반응형
1929번: 소수 구하기
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
www.acmicpc.net
처음 보고 오 쉽겠네하고 제출했다가
시간 초과 걸린 문제
Scanner에서 BufferedReader으로 바꿔봤다가
다 해봤는데 안 돼서
for(int j = 2; j < i; j++) {
if(i % j == 0) check = false;
}
이 부분을 좀 바꿔볼까 생각이 들었다.
for(int j = 2; j < i; j++) {
if(i % j == 0){
check = false;
break;
}
}
break 추가해봤다.
입력 초과 떴다...
그래서 잘 생각해봤다.
문제의 입력 최댓값이 1,000,000였는데
대충 생각해보니 소수라면 어차피 전부 테스트해볼게 분명하니까
차라리 1부터 1,000,000까지
소인수 분해해서 나오는 가장 큰 소인수를 구하고
얘로 limit을 걸자고 생각했다.
전 문제 조금 수정해서
이클립스로 얘를 돌렸다.
한참 걸리고 max 값은 997였나? 그럴 거임.
그래서 이렇게 바꿨더니 성공했다.
위에 실패한 거는 j < i를
j < 998로 바꿨었는데 제출하자마자
아 저러면 i로 나누게 되니까 몫이 0 되고,
check = false 된다는 걸 깨달았다...
728x90
반응형
'코딩테스트 연습 > 백준(JAVA)' 카테고리의 다른 글
단계별로 풀어보기(기본 수학2 - 골드바흐의 추측) (0) | 2021.08.24 |
---|---|
단계별로 풀어보기(기본 수학2 - 베르트랑 공준) (0) | 2021.08.24 |
단계별로 풀어보기(기본 수학2 - 소인수분해) (0) | 2021.08.24 |
단계별로 풀어보기(기본 수학2 - 소수) (0) | 2021.08.24 |
단계별로 풀어보기(기본 수학2 - 소수 찾기) (0) | 2021.08.24 |