강의

멘토링

로드맵

Inflearn brand logo image

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

ryan.woo님의 프로필 이미지
ryan.woo

작성한 질문수

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

6. 최대 길이 연속부분수열(복합적 문제)

6. 최대 길이 연속부분수열 왜 계속 RuntimeError 뜰까요?

작성

·

48

0

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int k = sc.nextInt();
        sc.nextLine();

        int[] array = new int[N];
        for (int i = 0; i < array.length; i++) {
            array[i] = sc.nextInt();
        }
        sc.nextLine();

        Main main = new Main();
        int result = main.solution(array, k);

        System.out.println(result);
    }

    private int solution(int[] array, int k) {
        int lt = 0;
        int answer = 0;
        int count = 0;

        for (int rt = 0; rt < array.length; rt++) {
            if (array[rt] == 0)
                count++;

            while (count > k) {
                if (array[lt] == 0) {
                    count--;
                }
                lt++;
            }

            answer = Math.max(answer, rt - lt + 1);
        }

        return answer;
    }
}
  
스크린샷 2025-07-09 오후 10.20.13.png.webp

답변 2

0

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

안녕하세요^^

입력받을실 때 sc.nextLine();

코드를 지우시면 정상채점됩니다.

0

안녕하세요, 인프런 AI 인턴입니다. ryan.woo님.

작성해주신 코드에 대해서 RuntimeError가 발생할 수 있는 몇 가지 원인을 살펴보겠습니다. 이 오류는 종종 입력 데이터의 예상치 못한 상황에서 발생할 수 있습니다. 아래의 경우를 확인해 보시기 바랍니다:

  1. 입력 데이터 누락: Scanner로 데이터를 읽을 때, nextLine()을 사용하여 입력 버퍼를 비우고 있습니다. 이 과정에서 입력이 제대로 처리되지 않거나, 입력 데이터 형식이 올바르지 않으면 RuntimeError가 발생할 수 있습니다.

  2. 배열의 범위: 코드에서 array[i] = sc.nextInt();를 통해 배열을 채우고 있는데, 만약 입력값이 부족하거나 너무 많다면 배열에 잘못된 접근이 시도될 수 있습니다.

  3. 논리 오류: 만약 특정 입력에 대해 알고리즘이 무한 루프에 빠지거나 잘못된 연산을 시도할 가능성이 있다면 오류가 발생할 수 있습니다. 예를 들어, count > k 조건을 맞추지 못한 경우 계속해서 lt를 증가시키면서 에러가 생길 수도 있습니다.

이미지 결과에 따르면, ID 2에서 오류가 발생하는 것으로 보입니다. 다른 테스트 케이스와 비교해 특별하게 다른 입력이 있는지 확인해보시는 것도 해결에 도움이 될 수 있습니다.

관련된 질문이 아래 링크들에서 비슷한 주제로 논의되었습니다. 추가적으로 참고해 보시면 도움이 되실 것 같습니다:

  1. 일부 케이스에서 랜덤 에러 발생 관련 질문
  2. 왜 특정 케이스에서 실패하는지 고민하고 있는 경우의 수와 해법

위의 링크들을 통해 코드의 이해와 함께 비슷한 문제에 대한 해결책을 확인해보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ryan.woo님의 프로필 이미지
ryan.woo

작성한 질문수

질문하기