본문 바로가기
Problem Solving/Baekjoon

[백준] 14584 암호 해독 - Brute Force / Java

by graycode 2023. 10. 3.

 문제 링크

 

14584번: 암호 해독

로마의 장군 카이사르는 로마군의 작전을 적이 모르게 하기 위하여 암호를 사용했다. 카이사르는 다음과 같이 문장에 있는 모든 알파벳 글자를 몇 칸 뒤의 알파벳으로 바꾸는 방식으로 암호를

www.acmicpc.net

 

 풀이 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringBuilder sb = new StringBuilder(br.readLine());
        int n = Integer.parseInt(br.readLine());

        String[] arr = new String[n];
        while (n-- > 0) arr[n] = br.readLine();

        bw.write(decoding(sb, arr));
        bw.flush();
    }

    private static String decoding(StringBuilder sb, String[] arr) {
        for (int i = 0; i < 26; i++) {
            for (int j = 0; j < sb.length(); j++) sb.setCharAt(j, (char) ('a' + (sb.charAt(j) - 'a' + 1) % 26));
            for (String s : arr) if (sb.indexOf(s) != -1) return sb.toString();
        }

        return sb.toString();
    }

}

댓글