사다리3061

LJM·2023년 9월 26일
0

백준풀기

목록 보기
248/259

https://www.acmicpc.net/problem/3061

1부터 차례대로 목적지까지 swap 한 횟수 반환

import java.io.*;
import java.util.*;

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

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

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {

            int N = Integer.parseInt(br.readLine());

            String[] input = br.readLine().split(" ");
            int[] start = new int[N+1];
            for (int j = 0; j < N; j++) {
                start[j+1] = Integer.parseInt(input[j]);
            }

            int answer = 0;
            for (int j = 1; j <= N; j++) {

                int dest = j;
                for ( ; dest <= N; dest++) {
                    if(j == start[dest])
                    {
                        break;
                    }
                }

                int st = start[dest];

                int diff = dest-st;

                while(diff > 0){

                    int temp = start[dest];
                    start[dest] = start[dest-1];
                    start[dest-1] = temp;
                    dest--;
                    diff--;
                    answer++;
                }
            }

            System.out.println(answer);
        }
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글