문제
설명
괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다.
(())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다.
입력
첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다.
출력
첫 번째 줄에 YES, NO를 출력한다.
내 풀이
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ Stack 클래스 몰랐던 자의 최후이자 발악,,
그래도 N년 전에 배운 자료구조 개념 기억한 나 칭찬해 👏👏 짜려면 어떻게든 짜겠지만 이건 아니다 싶어 강의 들었다..
선생님 풀이
import java.util.Scanner;
import java.util.Stack;
public class Main5_1 {
public String Solution(String str) {
String answer = "YES";
Stack<Character> stack = new Stack<>();
for(char x : str.toCharArray()) {
if(x=='(') stack.push(x);
else {
if(stack.isEmpty()) answer="NO"; // (가 적어 짝이 안맞는 경우
else stack.pop();
}
}
if(!stack.isEmpty()) answer="NO"; // (가 많아 짝이 안맞는 경우
return answer;
}
public static void main(String[] args) {
Main5_1 T = new Main5_1();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(T.Solution(str));
}
}
결과
'Algorithm > Inflearn' 카테고리의 다른 글
[Inflearn] 자바 알고리즘 문제풀이 #05-03 3. 크레인 인형뽑기(카카오) (0) | 2023.01.16 |
---|---|
[Inflearn] 자바 알고리즘 문제풀이 #05-02 2. 괄호문자제거 (0) | 2023.01.15 |
[Inflearn] 자바 알고리즘 문제풀이 #04-05 5. k번째 큰 수 (TreeSet) (0) | 2023.01.14 |
[Inflearn] 자바 알고리즘 문제풀이 #04-04 4. 모든 아나그램 찾기(Hash, sliding window) (0) | 2023.01.13 |
[Inflearn] 영리한 프로그래밍을 위한 알고리즘 - 힙(heap)의 다른 응용: 우선순위 큐 (priority queue) (0) | 2023.01.12 |