포스택

2023. 3. 13. 23:30·Codding_Test/BaekJoon

* 스택이란

· 메모리의 스택 영역은 함수의 호출과 관계되는 지역변수, 매개변수, 리턴 값등의 임시데이터를 저장한다.

· 스택이란 단어는 ‘차곡 차곡 쌓여진 더미’를 의미한다.

· LIFO(Last In First Out, 후입선출) 구조라고도 한다.

*  스택의 구조 이해하기 

   가장 먼저 저장되는 데이터는 스택의 아래 쪽(높은 주소)부터 쌓이고, 다음 저장되는 데이터가 바로 그 위(낮은 주소)에 쌓인다.

 

import java.util.Scanner;
import java.util.Stack;

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

        int N = sc.nextInt();  // stack의 길이
        int[] arrA = new int[N];  // 길이가 N인 순열 A

        for (int i = 0; i < N; i++) {
            arrA[i] = sc.nextInt(); // N만큼 순열 A에 정수 배치
        }

        Stack<Integer>[] stackA = new Stack[4]; // error prevent
        for(int i = 0; i < 4; i++){
            stackA[i] = new Stack<>();
            stackA[i].push(0);
        }

        boolean can = true;
        for (int num : arrA){ // 4 3 6 7 8 9 10 2 1 5
            boolean cant = false;
            for (int i = 0; i < 4; i++) {
                if(num > stackA[i].peek()){ // 현재 넣으려는 값이 A 가장 윗 값 보다 크다면 배치, 작다면 다음 stack으로
                    stackA[i].push(num); // 배치
                    cant = true; // 성공
                    break;
                }
            }
            if(!cant){
                can = false;
                break;
            }
        }
        if(can == true){
            System.out.println("YES");
        }else {
            System.out.println("NO");
        }
    }
}

요번에 풀어본 알고리즘 문제는 stack 구조에 대해서도 처음이여서 그런지 348분이 소요되었다.(WTF)

'Codding_Test > BaekJoon' 카테고리의 다른 글

백준 1254 팰린드롬 만들기  (1) 2023.04.03
계산기 프로그램 백준5613  (1) 2023.03.27
요세푸스 백준(1158)  (0) 2023.03.17
해시해킹 백준(26008)  (2) 2023.03.16
최소, 최대 백준(10818)  (0) 2023.03.15
'Codding_Test/BaekJoon' 카테고리의 다른 글
  • 계산기 프로그램 백준5613
  • 요세푸스 백준(1158)
  • 해시해킹 백준(26008)
  • 최소, 최대 백준(10818)
JAVALA
JAVALA
워니‘s Diary
  • JAVALA
    정신줄 JAVA라
    JAVALA
  • 전체
    오늘
    어제
    • 분류 전체보기 (87)
      • Codding_Test (11)
        • BaekJoon (7)
        • Programmers (3)
      • Algorithm (11)
      • Daily (4)
        • memoir (4)
      • TroubleShooting (8)
        • InteliJ (1)
        • Server (1)
        • Infra (0)
        • DB (0)
      • Computer Science (1)
      • JAVA (8)
      • Javascript (0)
      • Spring Boot (7)
      • API (2)
      • Server (0)
      • DB (3)
        • ORACLE (1)
      • Infra (2)
      • Refactoring (1)
      • Plugin (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바 메소드
    자바 스프링부트
    개발자 비전공자
    프론트엔드 개발자
    백준
    제로베이스
    자바 알고리즘
    코딩테스트
    트리 자료구조
    spring boot
    스프링부트
    프로그래머스
    개발자
    자바 스프링
    백엔드 개발자
    자바
    springboot
    자바 클래스
    개발자 국비
    개발자 부트캠프
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JAVALA
포스택
상단으로

티스토리툴바