강의로 돌아가기
sallyy1

(6,0,0)이 나오는데 어디가 잘못되었을까요? ㅠㅠ

import java.util.*;

class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
int i, j, k = 0;
int add=0;
int index=0;

    for(int r=0; r< commands.length; r++){
            i= commands[r][0];
            j= commands[r][1];
            k= commands[r][2];   

            int[] temp = new int[j-i+1];
        for(add=0; add<3; add++){
            for(int t= i-1; t<j-1; t++){      // t <j로 하면 배열 인덱싱 에러가 뜹니다ㅜ
             temp[add] = array[t];
            }
        }
        Arrays.sort(temp);
        answer[index++] = temp[k-1];

    }


    return answer;
}

}

1 개의 답변
김대현

i,j,k변수는 의미가 있는 변수인데 이름을 저렇게 지으셔서 가독성이 떨어져 해석하기가 너무 힘드네요...
이런습관은 고쳐주세요...(타인은 둘째치고 나중에 프로그램 수정이 필요할때 본인도 힘들어집니다)

  1. 두번째 for문 조건문 수정이 필요해보입니다. add<3 이라고하셨는데 3이 아닐경우도잇습니다. 2.세번째 for문은................. 결국 add[0],add[1],add[2] 전부 같은 값만 들어갈것같은데요? array[t의 마지막 값]....(System.out.println 으로 확인해보세요)
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.