일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- bytecode
- 버킷리스트
- abstract
- javap
- 심리여행
- ㅇ
- Shared Elements
- Interface
- IMPLEMENT
- 취약점
- jvm
- 여행계획
- 치유
- extends
- HelloWorld
- Navigation Component
- Transition
- 여행
- 심리학
- static
- Recylcer
- opcode
- Android
- 회피
- 일상회피
- bytecode 분석
- 일상탈출
- throws
- 보안취약점
- 보안
Archives
- Today
- Total
패스트터틀
(Baekjoon) GreedyAlgorithm - (22) 문서 검색 본문
https://www.acmicpc.net/problem/1543
최대 2500개의 문자를 50번 확인해야된다.
for( ){
for( ){
}
}
최대 105000번을 검색해야한다. 이렇게 무식하게 검색하라고 준 알고리즘은 아닐것이라고 생각한다.
근데 그게 맞았다.
근데 split쓰면 바로 끝나는거 아닌가? 엥?
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String document = br.readLine();
String search = br.readLine();
String O[] = document.split(search);
System.out.println(O.length-1);
}
}
당연히 답은 틀렸다.
1) 공백을 포함하여 문자를 받는다. (bufferedReader 또는 nextLine() 사용)
2) 전부다 char로 쪼갠다.
3) 앞에서부터 차례차례비교하여서 문자열을 찾는다.
4) 문자열을 찾으면 문자열찾은행 다음만큼부터 계속 검색한다.
package GreedyAlgorithm;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class _1543 {
static char a[];
static char n[];
static int compare(int k){
int count = 0;
for (int i = k; i < a.length; i++) {
if(a[i]==n[count]){
count++;
if(count==n.length){
return i;
}
continue;
}
else
break;
}
return -1;
}
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String document = br.readLine();
String search = br.readLine();
a = document.toCharArray();
n = search.toCharArray();
int c;
int num=0;
for (int i = 0; i < a.length ; i++) {
if((c = compare(i))!=-1){
i = c;
num++;
}
}
System.out.println(num);
}
}
특이하게 문제의 정답률이 29%이다.
나는 생각해보니까 이거 답 맞는데? 하면서 우격다짐식으로 제출을 겁나게 했다.
아마 나처럼 계속 제출해서 틀린사람이 많아서 29%가 아닐까 싶다.
백준문제풀이Github :
https://github.com/sdk0213/baekjoon-study
'Algorithm > baekjoon' 카테고리의 다른 글
(Baekjoon) GreedyAlgorithm - (24) 빵집 (0) | 2020.02.04 |
---|---|
(Baekjoon) GreedyAlgorithm - (23) 보석 도둑 (0) | 2020.01.28 |
(Baekjoon) GreedyAlgorithm - (21) DNA (0) | 2020.01.15 |
(Baekjoon) GreedyAlgorithm - (20) 궁금한 민호 (0) | 2020.01.09 |
(Baekjoon) GreedyAlgorithm - (19) 멀티탭 스케줄링 (0) | 2019.12.30 |
Comments