오늘 푼 문제
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class 가희와환승역_34670 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int q = Integer.parseInt(br.readLine());
for (int i = 0; i < q; i++) {
int n = Integer.parseInt(br.readLine());
String sub = "";
boolean check = true;
if (n == 1) {
check = false;
br.readLine();
} else {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < n; j++) {
String station = st.nextToken();
if (station.length() > 4) {
check = false;
break;
} else {
String curSub = station.substring(station.length() - 2);
if (j != 0) {
if (!sub.equals(curSub)) {
check = false;
break;
}
}
sub = curSub;
}
}
}
if (check) {
bw.write("YES\n");
} else {
bw.write("NO\n");
}
}
bw.flush();
bw.close();
}
}
풀이 자체는 까다롭지 않았는데, 문제를 이해하는게 까다로웠다..
결과적으로는
1. 환승역이 아닐것
2. 뒤에 붙는 역번호가 같을것
이 2가지를 충족하면 YES, 아니면 NO를 출력하면 됐다.
(그리고 -가 붙어있으면 환승역인데 이걸 -를 찾는게 아니라 길이가 4 초과인 녀석을 찾아주는걸로 대체했다.)
ex - 112 (O) / X112 (O) / 112-1 (X) / X112-1(X)