알고리즘 단련장/소프티어
[소프티어] Yeah, but How? 레벨2 자바 풀이 (한양대 HCPC 2023)
dcho
2024. 10. 29. 00:23
SMALL
https://softeer.ai/practice/9498
문제를 제대로 이해가 잘 안되어서 난해한 문제였다.
보통 괄호가 나오는 문제들은 스택을 많이 이용하기에 처음에 스택으로 해결하려고 고민을 많이 했다. 하지만 실패
import java.io.*;
import java.util.Stack;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String s = br.readLine();
// 1차 고민
// 괄호 검사를 위한 스택
//Stack<Character> stackChar = new Stack<>();
//
//for (int i = 0; i < s.length(); i++) {
// char c = s.charAt(i);
// if (c == '(') {
// stackChar.push(c);
// } else {
// if (stackChar.isEmpty()) {
// bw.flush();
// bw.close();
// return;
// } else {
// stackChar.pop();
// }
// }
//}
// 참고한 풀이
for (int i = 0; i < s.length() - 1; i++) {
bw.write(s.charAt(i));
if (s.charAt(i) == '(' && s.charAt(i + 1) == ')') {
bw.write("1");
}
if (s.charAt(i) == ')' && s.charAt(i + 1) == '(') {
bw.write("+");
}
}
bw.write(s.charAt(s.length() - 1) + "\n");
bw.flush();
bw.close();
}
}
경영아 고맙다.
생각보다 풀이는 간단했고 테스트 케이스를 통과하지 않아도 되는 문제도 있다는게 신기했다.
직접 푸는데 생각이 나지 않아 공식 풀이를 참고 했다.
https://u.acmicpc.net/e98182a0-15b3-4a42-bfae-37c4c3b2beb0/Editorial-HCPC-2023.pdf
이런 문제도 있구나 했다.
좀 더 넓은 시야로 바라보는 습관을 가지고 공부를 더 해야겠다는 생각이 든다.