백준 카이사르 암호

KIMYEONGJUN·2025년 3월 5일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

입력은 한 줄로 이루어져 있으며, 그 한 줄에는 대문자 알파벳으로 구성된 단어가 1개 있다.
단어는 최대 1000자 이하이다.

입력받은 카이사르 단어를 원래 단어로 고친 걸 출력하시면 된다.

내가 이 문제를 보고 생각해본 부분

입력 처리: BufferedReader를 사용하여 표준 입력으로부터 카이사르 단어를 읽는다.
복원 로직: 각 문자를 3만큼 감소시키고, 만약 'A'보다 작아지면 'Z'로 감싸준다.
결과 출력: StringBuilder를 통해 최종 결과를 한 번에 출력한다.

코드로 구현

package baekjoon.baekjoon_27;

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

// 백준 5598번 문제
public class Main951 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        // 입력받은 카이사르 단어
        String caesarWord = br.readLine();

        for(char c : caesarWord.toCharArray()) {
            // 카이사르 암호를 복원하기 위해 3을 빼고, 알파벳 범위를 유지
            char originalChar = (char) (c - 3);
            if(originalChar < 'A') {
                originalChar += 26; // 알파벳 A보다 작으면 Z로 감싸기
            }
            sb.append(originalChar);
        }

        // 결과 출력
        System.out.println(sb.toString());
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글