본문 바로가기
Beakjoon&프로그래머스/Java

[백준/Java] 34364번 MIR Cipher

by 현장 2025. 10. 16.

-Code

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class BOJ34364 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        String s = st.nextToken();
        int shift = 1;
        StringBuffer sb = new StringBuffer();

        for (char c : s.toCharArray()) {
            int decode = (c - 'A' + shift) % 26 + 'A';
            sb.append((char) decode);
            shift = (shift * 2) % 26;
        }

        System.out.println(sb);
    }
}

shift도 너무 커지면 int의 범위를 넘어서기 때문에 틀렸어서 해당 부분을 26의 나머지로 지정해야 했습니다.