프로그래머 코드 면접 안내

제목 설명
하나의 스 택 에 있 는 요소 의 유형 은 정형 입 니 다. 지금 은 이 스 택 을 꼭대기 에서 작은 순서 로 정렬 하려 면 하나의 스 택 만 신청 할 수 있 습 니 다.이 밖 에 새로운 변 수 를 신청 할 수 있 지만 추가 데이터 구 조 를 신청 할 수 없다.어떻게 정렬 을 완성 합 니까?
입력 설명:
첫 번 째 줄 에 N 을 입력 하면 스 택 에 있 는 요소 의 개 수 를 나타 내 고 두 번 째 줄 에 N 개의 정수 aa 를 입력 합 니 다.아 이 는 스 택 에서 스 택 밑 까지 의 각 요 소 를 표시 합 니 다.
출력 설명:
한 줄 을 출력 하면 정렬 된 스 택 에서 스 택 밑 까지 의 각 요 소 를 표시 합 니 다.
  1
  
5
5 8 4 3 6

  
8 6 5 4 3

해법 1: oj 좀 슬프다
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 len = Integer.parseInt(br.readLine());
        String[] ss = br.readLine().trim().split(" ");
        Stack<Integer> s = new Stack<>();
        for(int i=len-1;i>=0;i--){
     
            s.push(Integer.parseInt(ss[i]));
        }
        sort(s);
        while(!s.isEmpty()){
     
                System.out.print(s.pop()+" ");
         }
    }
    public static void sort(Stack<Integer> s){
     
        Stack<Integer> help = new Stack<>();
        while(!s.isEmpty()){
     
            int tmp = s.pop();
            while(!help.isEmpty()&&help.peek()<tmp){
     
                s.push(help.pop());
            }
                help.push(tmp);
            }
        while(!help.isEmpty()){
     
            s.push(help.pop());
        }
    }
}

좋은 웹페이지 즐겨찾기