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 형태의 비지니스 구축 기 음성 플랫폼...
-
우리는 남들의 비판을 경험하면서 창조적 사고를 포기하게 된다. 비판으로부터 방어논리와 자기 검열에 취중한 나머지 더 이상 사고에 자유롭지 못하게 되니까 그렇다. 남들의 비판을 두려워하지 않는 자세.. 그것이 순수한 창조적 사고를 지속하는 방법이다...
-
“군자는 어울리되 패거리를 짓지 않고, 소인은 패거리를 짓되 어울리지 않는다." 군자는 의(義)를 높이기에 아부하지 않고, 부화뇌동(附和雷同)하지 않는다. 군자는 대의명분을 지키면서 화합하며 협력한다. 하지만 소인은 이익을 높이기에 이해관...
-
네이버, KT, 오라클, 그리고 잠깐의 사업을 거쳐 삼성전자에 입사한지도 2년이 지났습니다. 2016년 병신년을 뒤로하며 이번에는 꽤 색다른 도전에 나섭니다. 무슨 일이야!? 국내 O2O 숙박전문 회사 CTO로 조인합니다! 존! 나 고...
No comments:
Post a Comment