본문 바로가기
PS/BOJ

백준 14584 자바 - 암호 해독 (boj 14584 java)

by Nahwasa 2022. 4. 10.

문제 : boj14584

 

 

  26번에 걸쳐 각 문자를 하나씩 증가시켜보면서, 입력으로 들어온 N개의 문자가 있는지 판단해보면 된다. 예를들어 처음에 'abcd' 였다면, 하나씩 증가시킨단 말은 'abcd' -> 'bcde' -> 'cdef' -> ... 와 같은걸 의미한다. 'arr[j] = (char)('a'+((arr[j]-'a'+1)%26));' 부분이 해당 역할을 한다.

 

 

코드 : github

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    private void solution() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        char[] arr = br.readLine().toCharArray();
        int n = Integer.parseInt(br.readLine());
        String[] chk = new String[n];
        for (int i = 0; i < n; i++)
            chk[i] = br.readLine();
        for (int i = 0; i < 26; i++) {
            for (int j = 0; j < arr.length; j++) {
                arr[j] = (char)('a'+((arr[j]-'a'+1)%26));
            }
            String s = String.valueOf(arr);
            for (int j = 0; j < n; j++) {
                if (s.contains(chk[j])) {
                    System.out.println(s);
                    return;
                }
            }
        }
    }

    public static void main(String[] args) throws Exception {
        new Main().solution();
    }
}

댓글