(자바)스 택 시퀀스 의 합 법성

953 단어 자바
제목:
 숫자 n 을 입력 하고 1~n 숫자 를 스 택 에 입력 하여 스 택 에서 나 오 는 순서 에 맞 는 지 여 부 를 판단 합 니 다.출력 Yes 에 맞 으 면 출력 No.
샘플:
5
5 4 1 2 3
No

 
5
5 4 3 2 1
Yes
import java.util.Scanner;
import java.util.Stack;

public class          {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		Stack st = new Stack();
		int[] arry = new int[n + 1];
		for (int i = 1; i <= n; i++) {
			arry[i] = sc.nextInt();
		}
		int A = 1, B = 1;
		int flag = 1;
		while (B <= n) {
			if (arry[B] == A) {
				A++;
				B++;
			} else if (!st.empty() && st.peek() == arry[B]) {
				st.pop();
				B++;
			} else if (A <= n) {
				st.push(A++);
			} else {
				flag = 0;
				break;
			}
		}
		if (flag == 0)
			System.out.println("No");
		else
			System.out.println("Yes");
	}

}

좋은 웹페이지 즐겨찾기