JAVA

BAEKJOON(백준) Stack - 1874번 JAVA CODE

violetisme 2023. 1. 26. 19:41

실패한 코드

import java.io.*;
import java.util.Stack;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
    	 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	 Scanner in = new Scanner(System.in);
    	 
    	 Stack<Integer> s = new Stack<>();
    	 Stack<Integer> number = new Stack<>();
    	 
    	 
    	 int T = in.nextInt();

    	 int[] arr = new int[T];
    	 char[] ans = new char[100];
    	 boolean res = true;
    	 
    	 for (int i=T; i>0; i--) 
    		 number.push(i);
    	 
    	 
    	 for (int i=0; i<T; i++)
    		 arr[i] = in.nextInt();
    	 
    	 int num = 0;
    	 int h = 0;
    	 int p_count = 0;
    	 int m_count = 0;
    	 
    	 
    	 s.push(0);
    	 
    	 
    	// while (true) {
    		 
    		 while(true) { 
    			 if(s.peek() == arr[num] || number.size() == 0) {
    				 if (s.peek() == 0)
    					 s.pop();
    				 else {
    				 s.pop();
    				 ans[h] = '-';
    				 m_count += 1;
    				 h+=1;
    				 if (number.size() !=0)
    					 num += 1;
    				 }
    			 }
    			 
    			 else {
    				 s.push(number.pop());
    				 ans[h] = '+';
    				 p_count += 1;
        			 h+=1;
    			 }
    			 
    			 if (m_count >= p_count && m_count >= T)
    				 break;
    		 }
    		 
    		// if (s.size() == 0)
    		//	 break;
    	// }
    	 
    		 /*
    	for (int i=0; i<s.size(); i++) {
    		System.out.print(s.get(i));
    	}
    	*/
    		 
    	for(int i=0; i<number.size(); i++)
    		System.out.println(number.get(i));
    	
    	if (number.empty()) {
    		for(int i=0; i<ans.length; i++)
       		 	System.out.print(ans[i] + "\n");	
    	}   
    	
    	else
    		System.out.println("No");
    }
}