Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- jquery dom 계층 선택자
- java lambda
- 자바 순열 코드
- 순열 재귀
- 순열코드
- 자바스크립트 이벤트처리
- str to char array
- jquery 필터선택자
- java Collections.sort()
- 알고리즘
- 자바스크립트 이벤트중지
- 후위표기
- inner class
- Interface
- 상속
- 재귀함수
- 서로소
- java 내부 클래스
- 자바 재귀 조합
- Java
- jquery 속성선택자
- char to str
- parseInt()
- jquery 이벤트 처리
- 자바
- 재귀
- 알고리즘 그래프
- 자바 조합 재귀
- 자바입출력
- 조합 재귀
Archives
- Today
- Total
유블로그
[Java] BOJ 9935 문자열 폭발 본문
[Java] BOJ 9935 문자열 폭발
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class BOJ_9935_문자열폭발 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader((System.in)));
String s = br.readLine();
String bomb = br.readLine();
int bombLen = bomb.length();
char[] ans = new char[s.length()];
int ansIdx = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
ans[ansIdx++] = c;
if(c != bomb.charAt(bombLen-1)) continue;
boolean isSame = true;
int idx = ansIdx-2;
for (int j = bombLen-2; j >= 0; j--) {
if(idx < 0) {
isSame = false;
break;
}
if(ans[idx--] != bomb.charAt(j)) {
isSame = false;
break;
}
}
if(isSame) {
ansIdx -= bombLen;
}
}
if(ansIdx == 0) System.out.println("FRULA");
else System.out.println(String.valueOf(ans, 0, ansIdx));
} // main
}
처음에 stringbuilder indexOf 로 했다가 시간초과가 너무 많이 나서
string replaceAll 로 했는데도 시간초과가 계속 나서
결국 다른 사람의 코드를 참고했다...
char[] 배열에 받은 문자열을 한 문자씩 넣다가 폭발 문자열 마지막 글자와 같은 것을 발견하면 그 글자부터 거꾸로 폭발 문자열이 맞는 지 검사한다.
폭발 문자열이 맞다면 char[] 배열 인덱스를 폭발 문자열 길이만큼 줄여서 덮어쓴다.! (이 부분이 매우 똑똑한 듯)
혹은
폭발 문자열이 아니라면 그냥 계속 char[] 배열에 문자를 하나씩 넣는다.
받은 문자열을 끝까지 순회했다면 종료하고
char 배열의 길이가 0이면 FRULA
아니면 String.valueOf(char[], 시작인덱스, 끝인덱스) 로 char 배열을 출력한다.
(그냥 char 순회하며 출력하면 또 시간초과 난다...)
String.valueOf 는 문자열배열을 순회하지 않고 바로 문자열로 변환해주는 함수다.
'알고리즘' 카테고리의 다른 글
BOJ 1022 소용돌이예쁘게출력하기 Java (0) | 2021.06.06 |
---|---|
[Java] BOJ 17609 회문 (0) | 2021.05.05 |
[Java] BOJ 4949 균형 잡힌 세상 백준 (0) | 2021.05.03 |
[Java] BOJ 5430 AC 백준 (0) | 2021.05.02 |
[Java] BOJ 1541 잃어버린 괄호 (0) | 2021.04.30 |