• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

[장난꾸러기]채점시 어디가 잘못된건가요 ?

22.10.25 22:32 작성 조회수 157

0

테스트케이스는 통과하는데, 채점하면

틀렸다고 나오네요 ..

로직은

  1. 처음에 정렬이 잘못돼있는 값의 위치(순서)를 answer[0]에 넣고, 해당 요소값을 temp에 넣음.

  2. 배열을 정렬 ( 바뀐 두 값이 서로 바뀜 )

  3. 정렬된 배열을 돌면서 temp와 값이 같은 요소의 위치값 반환..

 

import java.util.*;
import java.util.Arrays;
class Main {
    public int[] solution(int n, int[] arr) {
        int[] answer=new int[2];
        int temp=0;
        for(int i=1; i<arr.length; i++){
            if(arr[i]<arr[i-1]) {
                answer[0] = i;
                temp=arr[i-1];
                Arrays.sort(arr);
                break;
            }
        }
        for(int i=0; i<arr.length; i++){
            if(arr[i]==temp)
                answer[1]=i+1;
        }
        return answer;
    }

    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        Main T = new Main();
        int n=kb.nextInt();
        int[] arr=new int[n];
        for(int i=0; i<arr.length; i++){
            arr[i]=kb.nextInt();
        }
        for(int x:T.solution(n,arr)) System.out.print(x+" ");
    }
}

 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

30

122 123 125 125 128 130 133 137 138 138 140 141 142 143 145 147 149 149 154 154 155 157 161 167 167 167 161 170 173 173

 

정답은 24 27 입니다. 디버그해보세요.