Lecture5_2
8703 ワード
public class Lecture5_2 {
public static void main(String[] args) {
// 값 받기
Scanner sc = new Scanner(System.in);
String str = sc.next();
// 출력
String result = effaceBracket(str);
System.out.println(result);
}
private static String effaceBracket(String str) {
// 시작 괄호들의 위치를 담을 스택
Stack<Integer> stack = new Stack<>();
// str을 문자 배열로
char[] cArr = new char[str.length()];
cArr = str.toCharArray();
// 인덱스
int tmp = 0;
// 결과
String result = "";
while (tmp != str.length()) {
// 각 문자들
char c = cArr[tmp];
// 시작 괄호의 인덱스는 스택에 담는다
if (c == '(') {
stack.push(tmp);
// 끝 괄호가 나오면
} else if (c == ')') {
// 가장 최근의 시작 괄호의 인덱스를 빼와서
int p = stack.peek();
// 사이의 문자들을 지운다
for (int i = p; i <= tmp; i++) {
cArr[i] = ' ';
}
// 사용한 시작 괄호는 지운다
stack.pop();
}
// str의 길이만큼 ++
tmp++;
}
// 나머지 문자들을 끌어온다
for (char c : cArr) {
if (c != ' ') {
// 결과에 덧붙인다
result += c;
}
}
return result;
}
}
Reference
この問題について(Lecture5_2), 我々は、より多くの情報をここで見つけました https://velog.io/@ikerbm94/Lecture52テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol