01-10 04:27
Recent Posts
Recent Comments
Tags
- ์๋์ด๋ ธ
- ์กํ๊ณ
- ict๊ณต๋ชจ์
- ํ์ด์ฌ
- ํ์ด์๊ณต๋ชจ์
- ์๋ฐ
- DB
- appetizer
- DATABASE
- SQL
- RaspberryPi
- ์คํฝ์ค๋น
- ICT
- linux
- JOBํ๊ณ
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- Spring
- mysql
- python
- ์คํฝ๋ ํ
- API๋ง์ผํ๋ ์ด์ค
- Naver Cloud
- ํ๋ก๋ณด๋ ธ
- TSQL
- ICT๋ฉํ ๋ง
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํ์ด์
- ์ด๋ธ์
- Java
- ์จ์ผ๋ํ
- Today
- Total
miinsun
[BAEKJOON] ๋ฐฑ์ค ์คํ/ํ 9012 :: ๊ดํธ JAVA ๋ณธ๋ฌธ
๐ฌ ๋ฌธ์ ์ค๋ช
๊ดํธ ๋ฌธ์์ด(Parenthesis String, PS)์ ๋ ๊ฐ์ ๊ดํธ ๊ธฐํธ์ธ ‘(’ ์ ‘)’ ๋ง์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฌธ์์ด์ด๋ค.
๊ทธ ์ค์์ ๊ดํธ์ ๋ชจ์์ด ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด(Valid PS, VPS)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ํ ์์ ๊ดํธ ๊ธฐํธ๋ก ๋ “( )” ๋ฌธ์์ด์ ๊ธฐ๋ณธ VPS ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ง์ผ x ๊ฐ VPS ๋ผ๋ฉด ์ด๊ฒ์ ํ๋์ ๊ดํธ์ ๋ฃ์ ์๋ก์ด ๋ฌธ์์ด “(x)”๋ VPS ๊ฐ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ VPS x ์ y๋ฅผ ์ ํฉ(concatenation)์ํจ ์๋ก์ด ๋ฌธ์์ด xy๋ VPS ๊ฐ ๋๋ค.
์๋ฅผ ๋ค์ด “(())()”์ “((()))” ๋ VPS ์ด์ง๋ง “(()(”, “(())()))” , ๊ทธ๋ฆฌ๊ณ “(()” ๋ ๋ชจ๋ VPS ๊ฐ ์๋ ๋ฌธ์์ด์ด๋ค.
์ฌ๋ฌ๋ถ์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๊ดํธ ๋ฌธ์์ด์ด VPS ์ธ์ง ์๋์ง๋ฅผ ํ๋จํด์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ YES ์ NO ๋ก ๋ํ๋ด์ด์ผ ํ๋ค.
๐จ ์ ์ถ๋ ฅ ์
์ ๋ ฅ
- ์ ๋ ฅ ๋ฐ์ดํฐ๋ ํ์ค ์ ๋ ฅ์ ์ฌ์ฉํ๋ค.
- ์ ๋ ฅ์ T๊ฐ์ ํ ์คํธ ๋ฐ์ดํฐ๋ก ์ฃผ์ด์ง๋ค.
- ์ ๋ ฅ์ ์ฒซ ๋ฒ์งธ ์ค์๋ ์ ๋ ฅ ๋ฐ์ดํฐ์ ์๋ฅผ ๋ํ๋ด๋ ์ ์ T๊ฐ ์ฃผ์ด์ง๋ค.
- ๊ฐ ํ ์คํธ ๋ฐ์ดํฐ์ ์ฒซ์งธ ์ค์๋ ๊ดํธ ๋ฌธ์์ด์ด ํ ์ค์ ์ฃผ์ด์ง๋ค.
- ํ๋์ ๊ดํธ ๋ฌธ์์ด์ ๊ธธ์ด๋ 2 ์ด์ 50 ์ดํ์ด๋ค.
์ถ๋ ฅ
- ์ถ๋ ฅ์ ํ์ค ์ถ๋ ฅ์ ์ฌ์ฉํ๋ค.
- ๋ง์ผ ์ ๋ ฅ ๊ดํธ ๋ฌธ์์ด์ด ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด(VPS)์ด๋ฉด “YES”, ์๋๋ฉด “NO”๋ฅผ ํ ์ค์ ํ๋์ฉ ์ฐจ๋ก๋๋ก ์ถ๋ ฅํด์ผ ํ๋ค.
์์ ์ ๋ ฅ 1)
6
(())())
(((()())()
(()())((()))
((()()(()))(((())))()
()()()()(()()())()
(()((())()(
์์ ์ถ๋ ฅ 1)
NO
NO
YES
NO
YES
NO
์์ ์ ๋ ฅ 2)
3
((
))
())(()
์์ ์ถ๋ ฅ 2)
NO
NO
NO
โ
โ
๐ป Main.java
- stack์ '('๊ฐ ์์ผ๋ฉด ')'๊ฐ ์ ๋ ฅ๋๋ฉด ์ฌ๋ฐ๋ฅธ ์ ๋ ฅ์์ผ๋ก popํด์ค๋ค.
- stack์ด ๋น์ด์์ ๋๋ popํ์ง ์๋๋ก isEmpty ์ ๋ฌด๋ฅผ ๊ฒ์ฌํ๋ค.
/* ๋ฐฑ์ค ์คํ/ํ - 9012 :: ๊ดํธ */
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
for(int i = 0; i < t; i++) {
Stack<Character> stack = new Stack<>();
StringTokenizer st = new StringTokenizer(br.readLine());
String s = st.nextToken();
for(char x : s.toCharArray()) {
if(stack.isEmpty()) stack.add(x);
else {
if(x == '(') stack.add('(');
else {
if(stack.peek() == '(') stack.pop();
else stack.add('(');
}
}
}
if(stack.isEmpty()) System.out.println("YES");
else System.out.println("NO");
}
}
}
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] ๋ฐฑ์ค ๋ฌธ์์ด ์ฒ๋ฆฌ 10808 :: ์ํ๋ฒณ ๊ฐ์ JAVA (0) | 2022.03.15 |
---|---|
[BAEKJOON] ๋ฐฑ์ค ์คํ/ํ10845 :: ํ JAVA (0) | 2022.03.14 |
[BAEKJOON] ๋ฐฑ์ค ์คํ/ํ 10828 :: ์คํ JAVA (0) | 2022.03.14 |
[BAEKJOON] ๋ฐฑ์ค ์ ๋ ฌ 11652 :: ์นด๋ JAVA (0) | 2022.03.14 |
[BAEKJOON] ๋ฐฑ์ค ์ ๋ ฌ 10989 :: ์ ์ ๋ ฌํ๊ธฐ 3 JAVA (0) | 2022.03.14 |
Comments