https://www.acmicpc.net/problem/1543
1543๋ฒ: ๋ฌธ์ ๊ฒ์
์ธ์ค์ด๋ ์์ด๋ก๋ง ์ด๋ฃจ์ด์ง ์ด๋ค ๋ฌธ์๋ฅผ ๊ฒ์ํ๋ ํจ์๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค. ์ด ํจ์๋ ์ด๋ค ๋จ์ด๊ฐ ์ด ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง ์ธ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋, ์ธ์ค์ด์ ํจ์๋ ์ค๋ณต๋์ด ์ธ๋ ๊ฒ์ ๋นผ๊ณ ์ธ์ผ ํ
www.acmicpc.net
import java.io.*;
class Main{
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] doc = br.readLine().toCharArray();
char[] target = br.readLine().toCharArray();
int targetLen = target.length;
int result = 0;
boolean match = false;
for(int i=0; i<doc.length; i++){
if(doc[i] == target[0] && i + targetLen-1 <= doc.length){
for(int j=0; j<targetLen; j++){
match = target[j] == doc[i + j];
}
if(match){
result++;
i += targetLen -1;
}
}
}
System.out.println(result);
}
}
์ค๋ต๋ ธํธ(ํธ๋ ๋์ ์ฌ๊ณ ๊ณผ์ ๋ฐ ๊ฐ์ ์ )
ํ๊ฒ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ํด์, doc ๋ฌธ์์ด์ char ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ ์ด์ค ํฌ๋ฌธ์ ๋๋ฆฐ๋ค. target๊ณผ ๋์ผํ๋ฉด result ๊ฐ์ ํ๋ ๋ํ๊ณ , ์ปค์ ์ญํ ์ ํ๋ i๋ฅผ ํ์ฌ ํ๊ฒ ๋ฌธ์์ด ๊ธธ์ด ๋งํผ ๋ํด์ค๋ค. ์์ ๋ ํ๊ฐ ๋นผ๊ณ ๋ค ํต๊ณผ๋๊ณ , targetLen - 1 ์ i์ ๋ฃ์ด์ฃผ๋ ๋ชจ๋ ์์ ๋ฅผ ํต๊ณผ ํ๋ค.
๋ฌด์์ด ๋ฌธ์ ์์๊น?
์ ๋ต์ฝ๋
import java.io.*;
class Main{
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String doc = br.readLine();
String target = br.readLine();
int startIndex = 0;
int count = 0;
while (true) {
int idx = doc.indexOf(target, startIndex);
if (idx < 0)
break;
startIndex = idx + target.length();
count++;
}
System.out.println(count);
}
}
String์ด ๊ฐ๋ ๋ฉ์๋์ธ indexOf๋ฅผ ์ด์ฉํด์ char ๋ฆฌ์คํธ๋ก ๋ฐ๊พธ์ง ์๊ณ ํ ์ ์์๋ค. indexOf์ ์ฐพ์ ๋ฌธ์์ด์ ๋ฃ๊ณ , ์์์ง์ ์ ์ง์ ํ๋ค. ๋ฌธ์์ด์ ์ฐพ์์ผ๋ฉด ์์์ง์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๊ฒ ์๋๋ผ๋ฉด -1์ ๋ฐํํ๋ค. while์ ์ฌ์ฉํจ์ ๋ฐ๋ผ for๋ฅผ ์ธ ๋ i++๋๋ฌธ์ +1์ ํด์ฃผ๋ ์์ ๋ ํ์๊ฐ ์๊ฒ ๋์๋ค.
๋ก์ง์ ๊ฑฐ์ ๋์ผํ๋ค๋ ์ ์ด ์์์ด ๋๋ค.
๋ค๋ฅธ ํธ๋ฆญ์ผ๋ก๋
String result = doc.replace(target, "x");
์ด๋ ๊ฒ ํ๋ฉด ๋์ ๋จ์ด๊ฐ x๋ก ๋ฐ๋์ด์ x์ ๋น๋๋ง ๋ฐํํ๋ฉด ๋๋ค. ๋ฌธ์์ด ๋ด์ ํน์ ๋ฌธ์ ๋น๋๋ง ๋ฐํํ๋๊ฒ ๋๋ ํด์ ์ฐพ์๋ดค๋๋ฐ Collections.frequency() ๋ฉ์๋๊ฐ ์กด์ฌํ๋ค. ์ด๋ฌ๋ฉด string์ ๋ char array๋ก ๋ฐ๊ฟ์ผํ๋๊น ๋นํจ์จ์ ์ด๋ผ๋ ์๊ฐ์ด ๋ ๋ค.
"๋๊ธ, ๊ณต๊ฐ ๋ฒํผ ํ ๋ฒ์ฉ ๋๋ฅด๊ณ ๊ฐ์ฃผ์๋ฉด ํฐ ํ์ด ๋ฉ๋๋ค"
'OJ๐ผ > ์ค๋ต๋ ธํธ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][JAVA] 1236: ์ฑ์งํค๊ธฐ (0) | 2023.10.16 |
---|---|
[BOJ][JAVA] 10158: ๊ฐ๋ฏธ (0) | 2023.10.08 |
[BOJ][JAVA] 13223: ์๊ธํญํ (0) | 2023.10.05 |
[BOJ][JAVA] 1919: ์ ๋๊ทธ๋จ ๋ง๋ค๊ธฐ (0) | 2023.10.01 |
[BOJ][JAVA]2744: ๋์๋ฌธ์ ๋ฐ๊พธ๊ธฐ (0) | 2023.10.01 |