강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

gk95님의 프로필 이미지
gk95

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

5. 소수(에라토스테네스 체)

Run Time Error 원인을 못찾겠습니다.

작성

·

220

0

package matter2_5;

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int num = sc.nextInt();
		
		Main main = new Main();
		System.out.println(main.solution(num));
		
	}
	
	public int solution(int num) {
		int answer = 0;
		int arr[] = new int [20];
		for (int i = 2; i < num; i++) {
			if(arr[i] == 0) answer++;
			for (int j = i; j < num; j+=i) {
				arr[j] = 1;
			}
		}
		return answer; 
	}
}

20을 넣었을 때 return 으로 8이 나오는데 Runtime Error 원인을 못찾겠습니다.

퀴즈

앞에 있는 모든 학생보다 키가 커야 보이는 '보이는 학생' 문제에서, 효율적인 풀이법의 핵심 아이디어는 무엇일까요?

모든 학생의 키를 서로 비교한다.

현재까지 본 학생 중 가장 큰 키를 추적한다.

가장 큰 학생 한 명만 찾는다.

학생들의 키를 오름차순으로 정렬한다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

배열의 크기를 20으로 고정하면 안됩니다.

아래와 같이 잡아보세요

int arr[] = new int [num+1];

 

 

gk95님의 프로필 이미지
gk95

작성한 질문수

질문하기