https://programmers.co.kr/learn/courses/30/lessons/42585
์ฝ๋
import java.util.*;
class Solution {
public int solution(String arr) {
int answer = 0;
Stack<Character> s = new Stack<Character>();
for(int i=0; i<arr.length(); i++){
// ํ์ฌ ๊ฐ์ด '(' ์ธ ๊ฒฝ์ฐ -> ์คํ์ ์๊ธฐ
if(arr.charAt(i) == '(')
s.push('(');
// ํ์ฌ ๊ฐ์ด ')' ์ธ ๊ฒฝ์ฐ -> ์ด์ ๊ฐ์ด '('์ธ์ง ')'์ธ์ง ํ๋จ.
else{
s.pop(); // ์คํ์์ '(' ํ๋ ์ ๊ฑฐ
if(i>0 && arr.charAt(i-1) == '(')
answer += s.size(); // '()' ์ธ ๊ฒฝ์ฐ -> ๋ ์ด์
else
answer ++; // '))' ์ธ ๊ฒฝ์ฐ -> ์ ๋ง๋๊ธฐ๊ฐ ํ๋ ๋๋๋๊ฒฝ์ฐ
}
}
return answer;
}
}
ํ์ด
Stack์ ์ด์ฉํด ํด๊ฒฐํ๋ค.
ํ์ฌ ๊ฐ์ด '(' ์ด๋, ')' ์ด๋๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋จํ๋๋ฐ,,
์๋ ์ฌ์ง์์ ๋ณด๋ฏ ๋ ์ด์ ๋ ์ฐ๋ฌ์ ๋์ค๋ '()'์ ์ด๋ค.
๋ ์ด์ ์ ์ํด ์๋ฆฌ๋ ์ ๋ง๋๊ธฐ์ ๊ฐฏ์๋ ๋ ์ด์ '()' ๊ฐ ์ค๊ธฐ ์ '(' ์ ๊ฐฏ์(์ ๋ง๋๊ธฐ ๊ฐฏ์)์ ๊ฐ๋ค.
(์์์ ์๋ฆฐ๊ฒ๋ง ์๊ฐํ๊ณ ๋ท๋ถ๋ถ์ ์๊ฐํ์ง ์๋๋ค.)
์ ๋ง๋๊ธฐ๊ฐ ๋ซํ๋ ๊ตฌ๊ฐ - ')' ๊ฐ ์ค๋ ๊ณณ์, ์๋์์ ํ์ํ ๋ถ๋ถ์ธ๋ฐ ๋ซํ๋๊ตฌ๊ฐ์์๋ ์ ๋ง๋๊ธฐ๊ฐ ํ๊ฐ์ฉ ์ฆ๊ฐํ๋ค.
โ ํ์ฌ ๋ฌธ์๊ฐ '(' ์ธ ๊ฒฝ์ฐ
- ์คํ์ ๊ทธ๋๋ก ์๋๋ค.
โ ํ์ฌ ๋ฌธ์๊ฐ ')' ์ธ ๊ฒฝ์ฐ
- ์คํ์์ '(' ํ๋๋ฅผ ์ ๊ฑฐํ๋ค.
- ์ด์ ๋ฌธ์๊ฐ '(' ์ธ ๊ฒฝ์ฐ -> ์ฐ๋ฌ์ ๋์ค๋ '()'์ ์ด๋ฏ๋ก, ๋ ์ด์ ์ด๋ค.
- ๋ฐ๋ผ์ ์ ๋ง๋๊ธฐ์ ๊ฐฏ์(์ด์ '('์๊ฐฏ์ = ์คํ์ ์ฌ์ด์ฆ) ๋งํผ ๋ํด์ค๋ค.
- ์ด์ ๋ฌธ์๊ฐ ')' ์ธ ๊ฒฝ์ฐ -> ๋ ์ด์ ๊ฐ ์๋ ์ ๋ง๋๊ธฐ๊ฐ ๋๋์ ๋ซํ๋ ๋ถ๋ถ์ด๋ค.
- ๋ฐ๋ผ์ ์ ๋ง๋๊ธฐ์ ๊ฐฏ์๋ฅผ +1 ํด์ค๋ค.
* ๋ฌธ์ ์์ ์ฐ๋ฌ์ ๋์ค๋ ์'()' ์ replace("()", "0"); ๊ณผ ๊ฐ์ด ์นํํด์ ๋ ์ด์ ๋ฅผ ๊ตฌ๋ถํด์ ํด๊ฒฐํ๋ฉด ๋ ๊ฐ๋จํ๋ค.,
import java.util.*;
class Solution {
public int solution(String arrangement) {
int answer = 0;
arrangement = arrangement.replace("()", "1");
Stack<Character> a = new Stack<Character>();
for(int i=0; i<arrangement.length(); i++) {
char cursor = arrangement.charAt(i);
if(cursor == '(') {
a.push(cursor);
}
else if(cursor == '1') {
answer += a.size();
}
else if(cursor == ')') {
answer += 1;
a.pop();
}
}
return answer;
}
}
https://ju-nam2.tistory.com/46
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java ๊ด๋ จ ๋ฉด์ ์ค๋น 2 (0) | 2020.03.26 |
---|---|
Java ๊ด๋ จ ๋ฉด์ ์ค๋น 1 (2) | 2020.03.26 |
[๋ฐฑ์ค] 1966๋ฒ: ํ๋ฆฐํฐ ํ(๊ตฌํ, ํ) (0) | 2020.03.24 |
[Codeforces] 1191A: Tokitsukaze and Enhancement (0) | 2020.03.24 |
[๋ฐฑ์ค] 13904๋ฒ: ๊ณผ์ (๊ทธ๋ฆฌ๋) (0) | 2020.03.22 |
๋๊ธ