예시나 다른 것은 잘 나왔는데 어떤게 잘못 되었는지 잘 모르겠습니다.
가르쳐 주시면 감사하겠습니다.
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
PrintStream ps = System.out;
int N = sc.nextInt();
ArrayList<String> arr =new ArrayList<>();
for(int i=0; i<N ; i++){
arr.add(sc.next());
}
if(N==0){
return;
String temp=arr.get(0);
boolean right=true;
String result ="";
for(int k=temp.length(); k>0;k--){
if(!arr.get(i).contains(temp.substring(0, k))){
right=false;
break;
right=true;
if(right){
result=temp.substring(0, k);
for(int i=0; i< temp.length()-k;i++){
result+="?";
ps.print(result);
if(result.length()==0){
for(int i=0; i< temp.length();i++){
sc.close();
ps.close();
댓글을 작성하려면 로그인해야 합니다.
rlxo9529 6년 전
예시나 다른 것은 잘 나왔는데 어떤게 잘못 되었는지 잘 모르겠습니다.
가르쳐 주시면 감사하겠습니다.
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
PrintStream ps = System.out;
int N = sc.nextInt();
ArrayList<String> arr =new ArrayList<>();
for(int i=0; i<N ; i++){
arr.add(sc.next());
}
if(N==0){
return;
}
String temp=arr.get(0);
boolean right=true;
String result ="";
for(int k=temp.length(); k>0;k--){
for(int i=0; i<N ; i++){
if(!arr.get(i).contains(temp.substring(0, k))){
right=false;
break;
}
right=true;
}
if(right){
result=temp.substring(0, k);
for(int i=0; i< temp.length()-k;i++){
result+="?";
}
ps.print(result);
break;
}
}
if(result.length()==0){
for(int i=0; i< temp.length();i++){
result+="?";
}
ps.print(result);
}
sc.close();
ps.close();
}
}