๋ฐฑ์ค 9012 With Stack of JAVA
https://www.acmicpc.net/problem/9012
9012๋ฒ: ๊ดํธ
๊ดํธ ๋ฌธ์์ด(Parenthesis String, PS)์ ๋ ๊ฐ์ ๊ดํธ ๊ธฐํธ์ธ ‘(’ ์ ‘)’ ๋ง์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฌธ์์ด์ด๋ค. ๊ทธ ์ค์์ ๊ดํธ์ ๋ชจ์์ด ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด(Valid PS, VPS)์ด๋ผ๊ณ
www.acmicpc.net
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int T = in.nextInt(); for(int i = 0; i < T; i++) { System.out.println(solve(in.next())); } } public static String solve(String s) { Stack<Character> stack = new Stack<>(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == '(') { stack.push(c); } . else if (stack.empty()) { return "NO"; } else { stack.pop(); } } if (stack.empty()) { return "YES"; } else { return "NO"; } } } | cs |
์ด ๋ฌธ์ ๋ ์คํ์ ์ด์ฉํ ๋ฌธ์ ์ด๋ค. ํ์ด๋ฅผ ํด๋ณด์๋ฉด
๋จผ์ ์ค์บ๋๋ฅผ ํตํด ์ฌ์ฉ์์๊ฒ ๋ช ์ค์ ํ ์คํธ ์ผ์ด์ค๋ก ๋ง๋ค ๊ฑด์ง ์ ๋ ฅ์ ๋ฐ๋๋ค.
๊ทธ ๋ค์ for๋ฌธ์ ํตํด ํ ์คํธ ์ผ์ด์ค ๊ฐฏ์๋งํผ ๋ฐ๋ณต์ ํ๋ค. ๋ฐ๋ณต๋ฌธ์ ํฌํจ๋ ๋ด์ฉ์ solveํจ์๋ฅผ ํธ์ถ ํ, ์ถ๋ ฅํ๋ ๊ฒ์ด๋ค.
solve ํจ์์ ๋ด์ฉ์ ๋จผ์ ์คํ์ ํ๋ ๋ง๋ค์ด์ฃผ๊ณ for๋ฌธ์์ ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ๊ธธ์ด๋งํผ ๋ฐ๋ณตํ๋ค.
๊ทธ ๋ค์ i๋ก ๋ฌธ์์ด์ ๊ฐ๊ฐ์ ๊ดํธ๋ค์ ๊ฒ์ฌํ๋ค. '('์ด๋ฉด pushํ๊ณ ')'์ด๋ฉด pop์ ํ๋ฉด ๋๋ค.
')'์ผ ๋ popํ ์์๊ฐ ์๋ ๊ฒฝ์ฐ , ์ฆ ์คํ์ด ๋น์ด์์ผ๋ฉด ๊ดํธ์ ๊ท ํ์ด ๋ง์ง ์๋ ๊ฒ์ด๊ธฐ์ NO๋ฅผ ๋ฆฌํดํ๊ณ
๊ทธ ์ธ์ ๊ฒฝ์ฐ๋ ํ์ ํด์ฃผ๋ฉด ๋๋ค.
๋ชจ๋ ๊ฒ์ฌ๋ฅผ ๋ง์น ์ํ์์ ์์ ํ ๊ดํธ๋ผ๋ฉด ์คํ์ ์๋ฌด ๊ฒ๋ ์์ด์ผ ํ๋ค. ๊ทธ ์กฐ๊ฑด์ด ๋ง์กฑ์ด ๋๋ฉด yes, ์์ผ๋ฉด NO๋ฅผ ์ถ๋ ฅํ๋ค.
https://st-lab.tistory.com/178
[๋ฐฑ์ค] 9012๋ฒ : ๊ดํธ - JAVA [์๋ฐ]
www.acmicpc.net/problem/9012 9012๋ฒ: ๊ดํธ ๊ดํธ ๋ฌธ์์ด(Parenthesis String, PS)์ ๋ ๊ฐ์ ๊ดํธ ๊ธฐํธ์ธ ‘(’ ์ ‘)’ ๋ง์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฌธ์์ด์ด๋ค. ๊ทธ ์ค์์ ๊ดํธ์ ๋ชจ์์ด ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ฌ
st-lab.tistory.com
์ฐธ๊ณ ๋ธ๋ก๊ทธ