정보
정렬만을 사용했다.
처음부터 정렬 카테고리를 들어가서 문제를 풀었기 때문에 정렬 문제인 것을 알 수 있었다.
우선 처음에 실패한 코드는 이렇게 풀었었다.
=> 70% 쯤에서 틀렸습니다 출력. 만약에 아예 처음부터 틀렸습니다 라고 나왔으면 내가 문제를 잘못풀었나 ?? 하고 생각했겠지만 70% 쯤에서 틀렸으므로 전체적인 맥락은 맞을 것으로 추정함. 예외가 무엇일지 생각해봤음. 2분 고민하다가 답 찾음. 접두어만을 보므로 만약 12345 와 234 가 있다고 하면 234 는 12345의 접두어가 아니나 contains 메소드가 true 를 출력함. 즉, 접두어 인것만을 봐야함.
따라서 다음과 같이 다시 풀었음.
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb=new StringBuilder();
int t=Integer.parseInt(br.readLine());
while(t-->0) {
int n=Integer.parseInt(br.readLine());
String arr[]=new String[n];
for(int i=0;i<arr.length;i++) {
arr[i]=br.readLine();
}
Arrays.sort(arr);
boolean status=true;
for(int i=1;i<arr.length;i++) {
int size=Math.min(arr[i].length(), arr[i-1].length());
int cnt=0;
for(int j=0;j<size;j++) {
if(arr[i].charAt(j)==arr[i-1].charAt(j)) {
cnt++;
}
}
if(cnt==size) {
status=false;
break;
}
}
if(status) System.out.println("YES");
else System.out.println("NO");
}
}
}
정렬문제는 가장 자신있는 것중 하나이기 때문에 쉽게 풀었다 !
하루에 백준 1문제 이상 푸는 것을 목표로 하고 있다.