문제
해커 선빈이는 서버의 로그를 뒤져본 결과 관리자의 암호를 찾을 수 있는 N개의 단서를 발견했다. 선빈이는 서버의 특성상 단서의 길이는 모두 홀수이고, 암호가 로그에 남으면, 그 암호를 뒤집은 암호도 로그에 있다는 것을 알고 있다. 로그에 남은 단서가 주어질 때, 관리자의 암호를 구하는 프로그램을 작성하여라.
입력형식
첫 번째 줄에는 로그에 남은 단서의 수 N(1≤N≤100)이 주어진다. 두 번째 줄부터 N개의 줄에는 각 단서를 나타내는 문자열이 주어진다. 단서는 영어 소문자로만 이루어져 있으며, 길이는 3 이상 13 이하의 홀수이다.
출력형식
관리자의 암호의 길이와 중간 글자를 출력한다. 답은 유일하다고 가정해도 좋다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int N = sc.nextInt(); String[] strArray = new String[N]; for(int i=0 ; i<N ; i++){ strArray[i] = sc.next(); } String[] strReverseArray = new String[N]; for(int i=0 ; i<N ; i++){ strReverseArray[i] = new StringBuilder(strArray[i]).reverse().toString(); } int pWLength = 0; char midCharacter = '0'; for(int i=0 ; i<N ; i++){ for(int j=0; j<N; j++){ if(strArray[i].equals(strReverseArray[j])){ pWLength = strArray[i].length(); int midIdx = pWLength / 2; midCharacter = strArray[i].charAt(midIdx); } } } System.out.println(pWLength+" "+midCharacter); } } |
No comments:
Post a Comment