runtime error 가 왜뜰까요...

sodon5 Reply 9 years 10 weeks ago
import java.util.Scanner; public class Main { public static int [] min={0,0,0,0,0,0,0,0,0}; public static int top=0,topnum=0; public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); int num = keyboard.nextInt(); for (int i = 0; i < num; i++) { int a = keyboard.nextInt(); for (int m = 0; m <= 9; m++) { if (m == a) { min[m]++; } } } result(); } public static void result() { for(int i=0;i<9;i++) { if(min[i]>top) { top=min[i]; topnum=i; } } System.out.println(topnum+"\n"+top); } } 출력은제대로되는데..ㅠ
pichulia Reply 9 years 10 weeks ago
런타임 에러의 직접적인 원인은 아래의 코드부분입니다. for (int m = 0; m <= 9; m++) min[m]++; min 배열의 크기가 9인데 min[9]에 값을 넣으려고 하고있네요.. 무엇보다 지금같은 방법으로는 입력으로 들어오는 정수가 0부터 8일 때에만 제대로 된 답을 출력하게 됩니다. 입력으로 들어오는 숫자의 범위를 다시한번 읽어주세요..