백준 2581: 소수
자바 소스코드
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
|
package Beak;
import java.util.ArrayList;
import java.util.Scanner;
public class Math_2581 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int cnt = 0, sum = 0;
ArrayList arr = new ArrayList();
for(int i=n; i<=m; i++) {
if(i > 1) {
for(int j=1; j<=i; j++)
if(i%j == 0) cnt++;
}
if(cnt == 2) {
arr.add(i);
sum += i;
}
cnt = 0;
}
if(arr.size() == 0)
System.out.println("-1");
else {
System.out.println(sum);
System.out.println(arr.get(0));
}
}
}
|
cs |
앞의 문제를 풀었다면 쉽게 풀 수 있었지만 이것또한 생각보다 오래걸렸다...
처음 풀이법은 찾은 소수를 배열에 넣어주어 소수들의 합과 최소값을 구해줬다. 그런데 배열의 크기를 지정해줄때 찾은 소수가 몇 개 들어가야 할지 모르기 때문에 임의로 입력값 m - n만큼 크기를 지정해 주었다. 그런데 찾은 수보다 훨씬 큰 크기를 지정해주어서 그런지 계속 런타임 에러가 발생하여 그냥 넣어준만큼 크기가 지정되는 ArrayList로 바꾸어주었더니 바로 정답처리가 되었다.
크기를 예측할 수 없는 저장공간은 ArrayList를 꼭 이용해야겠다!
'BeakJoon' 카테고리의 다른 글
백준 1978: 소수 찾기 (0) | 2020.09.05 |
---|---|
백준 15596 : 정수 N개의 합 (0) | 2020.08.28 |
백준 4673 : 셀프 넘버 (0) | 2020.08.28 |
백준 1193 : 분수 찾기 (0) | 2020.08.28 |
백준 2775 : 부녀회장이 될테야 (0) | 2020.08.28 |
TAGS.