KingBini
KingBini_Note
KingBini
전체 방문자
오늘
어제
  • 분류 전체보기 (68)
    • Prgraming Error (13)
      • jsp,servlet (11)
    • Programing (30)
      • JavaScript (5)
      • java (10)
      • jsp (2)
      • study (9)
      • spring (4)
    • CS (2)
      • 자료구조 (1)
      • 알고리즘 (1)
    • Book (0)
    • 강의 (11)
      • 스프링_핵심원리_기본 (4)
      • 스프링부트 JPA활용 1 (7)
    • algorithm문제 풀이 (3)
      • 백준 (3)
    • Network (1)
    • cloud (2)
      • AWS Cloud (2)
    • DB (3)
      • PostgreSQL (2)
    • OS (1)
      • LINUX (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바
  • JS
  • JSP
  • 스프링 핵심원리
  • java
  • 스프링핵심원리
  • JPA
  • 인프런
  • 집합 레벨
  • Spring
  • 자바스크립트
  • 스프링
  • PostgreSQL
  • 모각코 스터디
  • 김영한
  • CS
  • 스프링 부트와 JPA 활용1
  • 집합 레벨 변화
  • servlet
  • 미니홈피 만들기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
KingBini

KingBini_Note

Programing/java

스택(Stack)이란, 스택활용

2022. 1. 17. 16:06

스택 : LIFO(Last in First out)구조.

마지막에 저장된 것을 제일 먼저 꺼내게 된다.

저장(Push)  ,  추출(Pop)

 

스택(Stack)활용 예 - 수식계산, 수식괄호 검사, 워드프로세서undo/redo, 웹브라우저 뒤로/ 앞으로

 

예제 실습))

import java.util.*;

public class TTest {
	static String  iq;
	public static void main(String[] args) {
		
		
		Scanner sc = new Scanner(System.in); //괄호식 입력할 스캐너 생성
		
		Stack st = new Stack();  //괄호식이 한지 확인할 스택 생성
		System.out.println("괄호식 입력 : "); //(5+5) 입력
		iq = sc.next(); //iq에 값 저장
		 String expression = iq; //expression에 iq 값 대입
		
		
		System.out.println("expression : " + expression); 
		try {   //try-catch문으로 괄호가 일치하지 않는 경우 예외생성
			//반복문을 이용해서 expression의인덱스 0부터문자 끝까지 반복
			for (int i = 0; i < expression.length(); i++) { 
				char ch = expression.charAt(i);
				
				//if문으로 문자가 괄호와같은지 확인한다
				if (ch =='(') {
					//맞다면 스택에 괄호를 넣준다.
					st.push(ch +"");
					//닫는괄호가나오면 다시 괄호를 꺼내준다.
				}else if (ch == ')') {
					st.pop();
				}
				}
			//그래서 약 스택이 비어있으면 "괄호가 일치한다고 출력"
			if(st.isEmpty()) {
				System.out.println("괄호가 일치합니다.");
			} else {  //스택에 괄호가 남아있으면 
				System.out.println("괄호가 일치하지 않습니다.");
			}
		}catch (EmptyStackException e) {
			System.out.println("괄호가 일치하지 않습니다.");
		}
	}

}

/*
*console
*식 입력 : 
*(5+5)
*expression : (5+5)
*괄호가 일치합니다.
*/

 

'Programing > java' 카테고리의 다른 글

Java 자바 메모리 구조  (0) 2022.02.14
Java JVM과 JDK 이해하기  (0) 2022.02.10
메서드 Math.pow() ,Math.sqrt()로 두 점의 거리 구하기  (0) 2022.01.10
#Java 문자열 다루기  (0) 2021.09.10
#Java 문자열의 표현-Character and string  (0) 2021.09.10
    'Programing/java' 카테고리의 다른 글
    • Java 자바 메모리 구조
    • Java JVM과 JDK 이해하기
    • 메서드 Math.pow() ,Math.sqrt()로 두 점의 거리 구하기
    • #Java 문자열 다루기
    KingBini
    KingBini
    github : https://github.com/kkssbbb

    티스토리툴바