Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • Java
  • 백준 15312
  • 백준 1011
  • 백준 2343
  • 백준 16926
  • 백준 6550
  • 백준 1064
  • 백준 7662
  • 백준 1495
  • 백준 1747
  • 백준 3135
  • 백준
  • 자바
  • 백준 2225
  • 백준 14582
  • 백준 15655
  • 백준 10709
  • 백준 1531
  • 백준 12871
  • 백준 24039
  • 백준 8892
  • 백준 7567
  • 백준 2467
  • 백준 1914
  • 백준 12605
  • 백준 15961
  • 백준 2591
  • 백준 4659
  • 백준 3049
  • 백준 16194
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 10973 이전 순열(Java)
백준

백준 10973 이전 순열(Java)

2023. 2. 3. 21:56

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

 

10973번: 이전 순열

첫째 줄에 입력으로 주어진 순열의 이전에 오는 순열을 출력한다. 만약, 사전순으로 가장 처음에 오는 순열인 경우에는 -1을 출력한다.

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 백준 10982 다음 순열 문제와 거의 같은 문제입니다. 차이점은 부등호의 방향과 내림차순으로 정렬해야 한다는 점입니다.

 


 

Java 코드

 


import java.util.Scanner;
import java.util.Arrays;

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

    int index1 = 0;
    int index2 = 0;
    int temp = 0;
    int n = sc.nextInt();
    int arr[] = new int[n];
    boolean check = false;
    

    for(int i = 0; i < n; i++) arr[i] = sc.nextInt();

    for(int i = n - 1; i > 0; i--) {
      if(arr[i-1] > arr[i]) {
        index1 = i - 1;
        check = true;
        break;
      }
    }

    for(int i = n - 1; i > 0; i--) {
      if(arr[index1] > arr[i]) {
        index2 = i;
        break;
      }
    }

    temp = arr[index1];
    arr[index1] = arr[index2];
    arr[index2] = temp;

    Arrays.sort(arr, index1 + 1, n);

    if(check == false) sb.append(-1);
    else {
      for(int i = 0; i < index1 + 1; i++) sb.append(arr[i]+" ");
      for(int i = n - 1; i >= index1 + 1; i--) sb.append(arr[i]+" ");
    }
    
    System.out.println(sb);
  }
}

'백준' 카테고리의 다른 글

백준 1213 팰린드롬 만들기(Java)  (0) 2023.02.04
백준 1072 게임(Java)  (0) 2023.02.03
백준 17626 Four Squares(Java)  (0) 2023.02.03
백준 1735 분수 합(Java)  (0) 2023.02.03
백준 1449 수리공 항승(Java)  (0) 2023.02.03
    '백준' 카테고리의 다른 글
    • 백준 1213 팰린드롬 만들기(Java)
    • 백준 1072 게임(Java)
    • 백준 17626 Four Squares(Java)
    • 백준 1735 분수 합(Java)
    Park DJ
    Park DJ

    티스토리툴바