import java.io.BufferedReader; import java.io.InputStreamReader; /* * 9935번 문자열 폭발 */ public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input = br.readLine(); String bomb = br.readLine(); Stack s = new Stack(); for (int i = 0; i < input.length(); i++) { s.push(input.charAt(i)); if (input.charAt(i) == bomb.charAt(bomb.length() - 1)) { s.checkAndRemove(bomb); } } s.printCurrent(); br.close(); } public static class Stack { private int top = 0; private char[] stack = new char[1000003]; public void push(char x) { stack[top++] = x; } public boolean checkAndRemove(String bomb) { if (top < bomb.length()) return false; int c = 0; boolean isTrue = true; for (int i = bomb.length() - 1; i >= 0; i--) { if (bomb.charAt(i) != stack[top - 1 - c]) { isTrue = false; } c++; } if (isTrue) { top = top - bomb.length(); return true; } else { return false; } } public void printCurrent() { if(top == 0) System.out.println("FRULA"); else { StringBuilder out = new StringBuilder(); for (int i = 0; i < top; i++) { out.append(stack[i]); } System.out.println(out.toString()); } } } }
[백준 알고리즘 풀이] 9935번 문자열 폭발
기본 아이디어는 문자열을 쌓다가 대상 비교 문자열 꼬다리 캐릭터와 현재의 캐릭터가 일치할 경우 뒤에서 부터 검사한 (backwarding) 후 제거하는거다. 애니팡 연속으로 터지는걸 생각하면 쉽다. 코드에서는 Stack을 하나 구현했는데 poll 대신에 그냥 index position만 변경해주는걸로 구현했다.
Subscribe to:
Post Comments (Atom)
-
음성 인공지능 분야에서 스타트업이 생각해볼 수 있는 전략은 아마 다음과 같이 3가지 정도가 있을 것이다: 독자적 Vertical 음성 인공지능 Application 구축 기 음성 플랫폼을 활용한 B2B2C 형태의 비지니스 구축 기 음성 플랫폼...
-
개발자 컨퍼런스같은 것도 방문한게 언제인지 까마득합니다. 코로나로 왠지 교류가 많이 없어졌습니다. 패스트캠퍼스로부터 좋은 기회를 얻어 강연을 하나 오픈하였습니다. 제가 강연에서 주로 다룰 내용은, 인터넷 역사 이래 발전해온 서버 사이드 기술들에 대해 ...
-
패밀리 세단으로 새차 구입은 좀 무리일 것 같아서, 중고로 하나 얻어왔습니다. 중고차라고 티 내는건지 :-) 시거잭에 전원이 안들어오더군요. 요즘 참 세상 좋아졌다고 생각드는게, 유튜브에서 시거잭 전원 불량에 대한 단서를 얻었습니다. 바로 퓨즈가 나가...
-
무한 집합의 크기 Cardinality , 즉 원소의 개수를 수학에서는 '농도'라고 말한다. 유한 집합의 크기는 그대로 원소의 개수 이지만, 무한 집합의 경우는 원소의 개수를 낱낱이 셈하는 것은 불가능하기 때문에 '농도'라...
No comments:
Post a Comment