https://programmers.co.kr/learn/courses/30/lessons/12909
์๊ฐ ์ด๊ณผ ์ฝ๋
import java.util.*;
class Solution {
boolean solution(String s) {
boolean answer = true;
Stack<Character> stack = new Stack<Character>();
if(s.charAt(0) == ')')
return false;
for(int i=0; i<s.length(); i++){
if(!stack.isEmpty() && s.charAt(i) == ')'){
stack.pop();
}
else{
stack.push(s.charAt(i));
}
}
// ์คํ์ด ๋น์ด์์ผ๋ฉด ๋ชจ๋ ๊ดํธ๊ฐ ์ง์ง์ด ์ก์ผ๋ฏ๋ก true, ์๋๊ฒฝ์ฐ false
answer = (stack.isEmpty()) ? true : false;
return answer;
}
}
ํ์ด
์คํ์ ์ด์ฉํด์ ํ์๋๋ฐ ๊ณ์ ํจ์จ์ฑ ํ ์คํธ์์ ์คํจํ๋ค.(์๊ฐ ์ด๊ณผ)
๋ง์ฝ ๋ฌธ์์ด์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ๋ฌธ์๊ฐ ')' ์ด๋ฉด ๋ค๋ ๋ณผ ํ์๋ ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ด๋ฏ๋ก false๋ฅผ returnํด์ค๋ค.
๊ทธ ์ดํ์๋ '(' ์ ')'์ ๊ฐ์ง๊ณ push๋ pop๋ง ํด์ค๋ค.
์คํ์๋ ํญ์ '(' ๋ง ๋ฃ๊ณ , ')' ๊ฐ ์ฌ๊ฒฝ์ฐ ์คํ์ ๊ฐ์ด ์กด์ฌํ๋์ง ์๋์ง๋ฅผ ๊ฐ์ง๊ณ ํ๋จํ๋๋ฐ,
๋ง์ฝ ํ์ฌ ์คํ์ ๊ฐ์ด ๋น์ด์์ง ์๊ณ , ')' ๊ฐ ์์๊ฒฝ์ฐ -> pop()์ ํด์ฃผ๊ณ ,
๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ '(' ๊ฐ ์์๊ฒฝ์ฐ ์คํ์ ๋ฃ์ด์ค๋ค -> push()
๋ง์ง๋ง์ผ๋ก, ์คํ์ ๋น์ด์๋ ๊ฒฝ์ฐ๋ ๋ชจ๋ ๊ดํธ๊ฐ ์๋ง๊ฒ ์ง์ง์ด์ ์ ๊ฑฐ๋ ์ฌ๋ฐ๋ฅธ๊ดํธ์ด๋ฏ๋ก true,
์คํ์ ๊ฐ์ด ์๋๊ฒฝ์ฐ ์ ๊ฑฐ๋์ง ์์ ๊ดํธ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ฏ๋ก false๋ฅผ ๋ฆฌํดํด์ค๋ค.
ํต๊ณผ๋ ์ฝ๋
import java.util.*;
class Solution {
boolean solution(String s) {
boolean answer = true;
Stack<Character> stack = new Stack<Character>();
for(int i=0; i<s.length(); i++){
if(s.charAt(i) == '(') // ํ์ฌ (๊ฐ ๋ค์ด๊ฐ ์๋ฆฌ๋ฉด ์คํ์ ๋ฃ๋๋ค.
stack.push('(');
else{
if(stack.isEmpty()) // ํ์ฌ )๊ฐ ๋ค์ด๊ฐ ์๋ฆฌ์ธ๋ฐ ์คํ์ด ๋น์ด์์๊ฒฝ์ฐ -> false
return false;
else
stack.pop(); // ํ์ฌ )๊ฐ ๋ค์ด๊ฐ ์ํ์์ ์คํ์ ๊ดํธ('(')๊ฐ ์๋๊ฒฝ์ฐ -> pop
}
}
answer = (stack.isEmpty()) ? true : false;
return answer;
}
}
for๋ฌธ ์์ ์กฐ๊ฑด์ ์ด๊ฒ์ ๊ฒ ๋ฐ๊พธ๋ฉด์ ์ ์ถํ๋๋ ์ด ์ฝ๋๋ ํต๊ณผ๊ฐ ๋๋ค.
์ฒ์ ๊ธฐ์ค์ stack์ด ๋น์ด์๋์ง๊ฐ ์๋ '(' ์ ')'๋ก ์ก์์ ํต๊ณผ๊ฐ ๋ ๊ฒ ๊ฐ๋ค.. (์ฌ์ค ์ ๋ชจ๋ฅด๊ฒ ๋ฐ)
์ ์ฌ ๋ฌธ์
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Codeforces] 1257A: Two Rival Students (0) | 2020.03.18 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level2)์์ด ๋๋ง์๊ธฐ (0) | 2020.03.18 |
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level2)์ ํ์ ์๊ฐ ์ด๋ (0) | 2020.03.17 |
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level3)์ต๊ณ ์ ์งํฉ (1) | 2020.03.17 |
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level3)ํ๋ ธ์ด์ ํ (0) | 2020.03.17 |
๋๊ธ