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

Yunny J님의 프로필 이미지

작성한 질문수

Do it! 알고리즘 코딩테스트 with JAVA

[구간 합 실전 문제] 구간 합 구하기1 (백준11659)

구간합구하기1 (백준11659)

작성

·

249

·

수정됨

0

선생님이 강의하시는데로 코드쳤는데 마지막 샘플예시처럼

5 5 입력하면 => 1 이 나와야하는데 -14 가 나와버리네요

코드가 동일한데 왜 결과가 다를까요 ㅠ

이래는 작성한 코드입니다

 

public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());

int suNo = Integer.parseInt(stringTokenizer.nextToken());// 숫자의 개수

int quizNo = Integer.parseInt(stringTokenizer.nextToken());//질의개수

long [] s = new long[suNo+1]; //합배열 선언

stringTokenizer = new StringTokenizer(bufferedReader.readLine()); //한줄로 쭉 받아올때 stringTokenizer 사용

for(int i=1; i<=suNo; i++){

s[i] = s[i-1]+Integer.parseInt(stringTokenizer.nextToken());

}

for(int i=0 ; i<s.length;i++) {

System.out.print("s:"+s[i]+" ");

}

for(int q=0; q<quizNo; q++){

stringTokenizer = new StringTokenizer(bufferedReader.readLine());

int i = Integer.parseInt(stringTokenizer.nextToken());

int j = Integer.parseInt(stringTokenizer.nextToken());

System.out.println(s[j] - s[i-1]);

}

}

답변 1

0

일단 첫 번째로

for(int i=0 ; i<s.length;i++) { System.out.print("s:"+s[i]+" "); }

부분은 강사님 코드와 다른 것 같습니다.

그리고 두 번째로 위 코드를 제외한 부분을 인텔리제이에서 실행시켜봤는데 결과가 12 9 1로 잘 나옵니다! 혹시 입력할 때 오타가 있었던 건 아닌가요??

 

Yunny J님의 프로필 이미지

작성한 질문수

질문하기