스택 4

[JAVA/백준9012] 괄호 - 스택

문제 풀이 테스트케이스만큼 문자열을 입력받는데, 이때 한번 입력받을때 괄호검사를 하는 함수를 호출한다. 괄호검사를 하는 함수 isCorrect()는 호출될때마다 스택을 새로 생성한다. 문자열의 길이만큼 검사를 해주는데, 이때 스택이 비었을 경우에는 문자열의 i번째 문자를 스택에 넣어준다. 스택이 비어있지 않으면 스택의 가장 위(peek())와 i번째 문자를 비교해준다. 이때 주의할점은 처음에 단순히 (와 ), 또는 )와 (처럼 괄호가 같지 않으면 pop이 되도록 해주었는데 괄호가 닫히는 모양은 스택의 top은 항상 '('이어야 하고 스택에 넣을 문자는 항상 ')'이어야 한다. 이점만 유의하고, 스택클래스를 사용한적이 있다면 삽질하지 않고 빠르게 풀 수 있을 문제였다 ㅠㅠ 소스코드 import java.u..

[JAVA/자료구조] List컬렉션 클래스 - ArrayList, LinkedList, Vector, Stack

List 인터페이스 List인터페이스는 중복을 허용하면서 저장 순서가 유지되는 컬렉션을 구현하는데 사용된다. 대표적인 List컬렉션 클래스에 속하는 클래스 4가지는 다음과 같다. List인터페이스에 정의된 메서드 1. Vector클래스 Vector클래스는 JDK1.0부터 사용해 온 ArrayList와 같은 동작을 수행하는 클래스이다. 하지만 기존 코드와의 호환성을 위해서만 남아있으므로 Vector클래스보다는 ArrayList클래스를 사용하는것이 좋다. 2. ArrayList클래스 ArrayList는 기존의 Vector을 개선한 것으로 Vector의 구현원리와 기능적인 측면에서 동일하다고 할 수 있다. ArrayList는 Obeject배열을 이용해서 구현하여 인덱스를 이용해서 데이터에 접근한다. 데이터를 ..

자료구조 2019.06.08

[JAVA/백준10828] 스택

1. 문제 2. 풀이 자바 Collections클래스를 사용하여 스택을 구현하였다. 명령어 push 3은 문자열 push,공백,숫자 로 이루어진 문자열이므로 명령을 입력했을때 공백이 있을 경우, push명령을 처리하도록 해주었고 다른 명령어들은 switch문을 사용하였다. 이 때, stack.empty()에서 기본으로 제공하는 것은 true, false인데 문제에서 요구하는 것은 1,0이므로 함수를 수정해주었다. 스택의 기본 개념만 이해한다면 쉽게 풀 수 있는 문제였다. 3. 소스코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Stack; public class Main { public static v..

[JAVA 자료구조] 스택(Stack)

스택이란? 스택은 물건을 쌓아올리는 자료를 쌓아 올린 형태의 자료구조이다. 가장 먼저 입력된 데이터가 맨 아래에 쌓이고 가장 최근에 입력된 데이터가 가장 위에 쌓이는 구조를 가지고 있다. 스택의 마지막에 삽입한 자료가 가장 먼저 꺼내어지므로 후입선출(LIFO:Last-In First-OUT)이며, 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형구조이다. ※참고※ 선형구조와 비선형구조 - 선형구조: 자료간의 관계가 1대 1의 관계를 가짐 - 비선형구조: 자료간의 관계가 1대 N의 관계를 가짐(ex.트리 자료구조) 스택의 구조 - 스택 상단(top): 스택에서 입출력이 이루어지는 부분 - 스택 하단(bottom): 바닥 부분 - 요소(element): 스택에 저장되는 것 - 공백(empty)상태: 요소가 하나..

자료구조 2019.05.22