티스토리 뷰
소수를 구하는 문제이다.
문제에서 주어진 범위가 10000이하이므로 100이하의 소수들을 먼저 배열에 집어넣고 시작했다.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
import java.util.List;
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
public class bj_2581 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
int sum = 0;
int [] sosu = new int []{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,
37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};
List<Integer> answer = new ArrayList<Integer>();
List<Integer> out = new ArrayList<Integer>();
for(int i = 0; i<sosu.length; i++)
answer.add(sosu[i]);
boolean flag;
for(int i = 99; i<10000; i+=2) {
flag = true;//10이상 짝수 배제
for(int j = 0; j<sosu.length; j++) {
if (i%sosu[j]== 0 ) {
flag = false;
}
}
if(flag == true)
answer.add(i);
}
answer.add(0); //소수는 총 1229개인데 배열 인덱스 벗어나서 add함.
///////////////////////////////////////////////// m이상인 소수의 인덱스 찾기
int start = 0;
while(start<1229) {
if(answer.get(start)<=m)
start++;
else
break;
}
start--;
////////////////////////////////////////////////
if((m==0)&&(n>1))
start = 0;
else
sum = 0;
if(m==1&&n != 1)
start = 0;
/////////////////////////////////////////////// out배열에 범위내의 소수들 저장
while(start >=0 && start<1229) {
if(answer.get(start)>=m) {
out.add(answer.get(start));
}
start++;
if(answer.get(start)>n)
break;
}
///////////////////////////////////////////////////
for(int i = 0; i<out.size(); i++)
sum += out.get(i);
if(sum == 0) {
System.out.println("-1");
}
else {
System.out.println(sum);
System.out.println(out.get(0));
}
//System.out.println(start + " "+ last);
//System.out.println(answer.get(start) + " "+ answer.get(last));
//System.out.println(answer);
//System.out.println(out);
}
}
|
cs |
첫번째 문제는 while문을 돌리는데 start 변수때문에 배열의 크기를 넘어서도 탐색하는 거였고,
두번째 문제는 48번째 라인때문에 start가 0이되는 경우가 생기는 거였다.
반응형
'알고리즘' 카테고리의 다른 글
[백준] 1654 랜선자르기 - Upper Bound/Lower Bound (0) | 2022.03.10 |
---|---|
[백준]2512번 예산 (0) | 2022.03.09 |
백준 알고리즘 1316번 파이썬 (0) | 2019.11.02 |
백준 알고리즘 5622번 파이썬 (0) | 2019.11.02 |
백준 알고리즘 2908번 파이썬 (0) | 2019.11.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- New Group
- provisioning key
- 백준
- 알고리즘
- xcsharedata
- xcuserdata
- mvvm in swiftui
- 클로저
- 애플 인증서
- 프로퍼티 래퍼
- ios
- main branch
- Xcode
- 파이썬
- Widget
- palera1n
- 애플 인증
- SWiFT
- New Group Without Folder
- 백준 1065번 swift
- 이분탐색
- sileo
- ios mvvm
- readme ignore파일 포함한 repository
- django
- 백준알고리즘
- property wrapper
- 백준 4673 swift
- 장고
- closure
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
글 보관함