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
- floyd-warshall
- 최단 경로
- 플로이드 워셜
- 다익스트라
- 세마포어
- 다익스트라 알고리즘
- 세마포어와 뮤텍스
- 싸피 합격
- 세마포어란?
- 세마포어와 뮤텍스의 차이
- 호스팅이란?
- 프록시
- 프록시서버
- 뮤텍스란?
- 삼성 청년 SW 아카데미
- 동기화
- Proxy
- Synchronization
- 뮤텍스
- Proxy Server
- 싸피 면접 후기
- Dijkstra Algorithm
- 클라우드 서버
- 싸피
- SSAFY
- 플로이드 와샬
- 웹 호스팅
- 서버 호스팅
- 호스팅
Archives
- Today
- Total
어제의 나보다 성장한 오늘의 나
[백준][BOJ-9935][자바] 문자열 폭발 본문
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String boom = br.readLine();
boolean flag = false;
char[] result = new char[str.length()];
int index =0;
for(int i=0; i<str.length(); i++) {
result[index++] = str.charAt(i);
if(index >= boom.length()) {
flag = false;
for(int j=0; j<boom.length(); j++) {
if(boom.charAt(j) != result[index - boom.length() +j]) flag = true;
}
if(!flag) {
index -= boom.length();
}
}
}
StringBuilder sb = new StringBuilder();
for(int i=0; i<index; i++) {
sb.append(result[i]);
}
if(index ==0) System.out.println("FRULA");
else System.out.println(sb.toString());
}
}
정리
먼저 contains와 replace를 생각하게 되었는데 메모리 초과가 떴다. 그래서 다른 방식으로 접근하였다.
- 결괏값을 저장하는 char배열 선언
- result배열에 문자열을 하나씩 저장한다.
- index(result에 들어있는 문자 수)의 값이 폭발 문자열의 길이와 같거나 크면 result배열 끝쪽(폭발 문자열 길이만큼)과 폭발 문자열을 비교한다.
- 정확히 일치하면 index를 폭발 문자열 길이만큼 빼주고 문자열 길이만큼 반복문을 진행한다.
- 마지막으로 남을 문자열을 구할때 result [i]을 String에 계속 더해 줄 건데 이때 String += result [i]을 해주면 메모리 초과가 100프로 난다. 무조건 StringBuilder를 사용해야 된다 ( 20분 동안 헤매었다 )
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준][BOJ-5052][자바] 전화번호 목록 (0) | 2021.04.08 |
---|---|
[백준][BOJ-10026][자바] 적록색약 (0) | 2021.04.07 |
[백준][BOJ-10830][자바] 행렬 제곱 (0) | 2021.04.06 |
[백준][BOJ-1655][자바] 가운데로 말해요 (0) | 2021.04.05 |
[백준][BOJ-1715][자바] 카드 정렬하기 (0) | 2021.04.05 |
Comments