https://www.acmicpc.net/problem/6550
s
, t
의 문자를 가리키는 2개의 포인터 사용String s
, String t
: 입력 문자열int sPtr
, int tPtr
: s
와 t
의 문자를 가리키는 포인터O(문자열 t의 길이)
import java.io.*;
import java.util.StringTokenizer;
public class Main {
static String s, t; // 입력 문자열
static int sPtr, tPtr; // s, t의 문자를 가리키는 포인터: 0 ~ (len-1)
static StringBuilder sb = new StringBuilder(); // 출력
static void solution() {
sPtr = 0;
tPtr = 0;
while (sPtr < s.length() && tPtr < t.length()) {
// 문자 일치하는 경우, s와 t의 다음 문자 일치 비교
if (s.charAt(sPtr) == t.charAt(tPtr)) {
sPtr++;
tPtr++;
}
// 문자 일치하지 않는 경우, 일치할 때까지 t의 다음 문자 확인
else {
tPtr++;
}
}
if (sPtr == s.length()) {
sb.append("Yes").append("\n");
}
else {
sb.append("No").append("\n");
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in)
);
StringTokenizer st;
while (true) {
String inputStr = br.readLine();
if (inputStr == null || inputStr.isEmpty()) {
break;
}
st = new StringTokenizer(inputStr);
s = st.nextToken();
t = st.nextToken();
solution();
}
System.out.println(sb);
}
}