문제
가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였습니다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건너뛰어 적었다고 합니다.
26개의 대문자 알파벳으로 이루어진 단어를 카이사르 암호 형식으로 3문자를 옮겨 겹치지 않게 나열하여 얻은 카이사르 단어가 있습니다. 이 카이사르 단어를 원래 단어로 돌려놓는 프로그램을 작성하세요.
각 문자별로 변환 전과 변환 후를 나타낸 건 아래와 같습니다.
예를 들어서, 이 방법대로 단어 'JOI'를 카이사르 단어 형식으로 변환한다면 'MRL'을 얻을 수 있고, 앞의 예와 같은 방법으로 얻은 카이사르 단어 'FURDWLD'를 원래 단어로 고치면 'CROATIA'가 됩니다.
입력
입력은 한 줄로 이루어져 있으며, 그 한 줄엔 대문자 알파벳으로 구성된 단어가 1개 있습니다.
입력받는 단어는 최대 1000자 이하입니다.
출력
출력은 입력받은 카이사르 단어를 원래 단어로 고친 걸 출력하시면 됩니다.
풀이
아스키코드에 대한 이해가 있다면 간단히 풀 수 있는 문제. ABC일 경우에는 -3의 자리이동이 안되기 때문에 따로 설정해준다.ㅇㅅㅇ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
char [] ar =new char[input.length()];
for(int i=0;i<input.length();i++) {
if(input.charAt(i)-3<'A') {
ar[i]= (char)(input.charAt(i)+23);
}
else {
ar[i]=(char)(input.charAt(i)-3);
}
}
for(int i=0;i<input.length();i++) {
System.out.print(ar[i]);
}
}
}
|
https://www.acmicpc.net/problem/5598
반응형
'Algorithms > BOJ[Java]' 카테고리의 다른 글
[백준/5586번] JOI와 IOI(JOI 2008)[Java] (0) | 2019.12.12 |
---|---|
[백준/5597번] 과제 안 내신 분?(JOI 2007) [Java] (0) | 2019.12.12 |
[백준/5613번] 계산기 프로그램(JOI 2006) [Java] (0) | 2019.12.10 |
[백준/5612번] 터널의 입구와 출구(JOI 2006 모의고사 2)[Java] (0) | 2019.12.10 |
[백준/5585번] 거스름돈 (JOI 2008 예선)[Java] (0) | 2019.12.10 |