11655번: ROT13
첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.
www.acmicpc.net

문제 간단설명)
소문자 대문자를 13칸 밀어서 출력.
풀이)
아스키코드를 참고했다.
>아스키코드는 더보기에..
소문자나 대문자를 입력받으면 +13 을 해주는데,
그 값이 대문자일때 90을 넘기거나, 소문자일때 122를 넘긴다면
26을 빼주고 출력한다.
나머진 그대로 출력.
아스키코드에 의해 컴퓨터에서 문자 'A'는 숫자 65와 같다.
그래서 13칸을 밀려면 65+13 = 78 인데 이를 문자형으로 출력하면 'N'이 나온다.
ROT13문제는 이를 이용하여 푼다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import java.io.*;
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));
String input = br.readLine();
for(int i = 0; i < input.length(); i++){
char ch = input.charAt(i);
if(('a' <= ch && ch <= 'z')){
ch += 13;
if(ch > 122) ch -= 26;
bw.write(ch);
}else if('A' <= ch && ch <= 'Z'){
ch += 13;
if(ch > 90) ch -= 26;
bw.write(ch);
}else{
bw.write(ch);
}
}
bw.flush();
bw.close();
}
}
|
cs |
'알고리즘 > 백준' 카테고리의 다른 글
| 백준 11656 접미사 배열 자바[java] (0) | 2023.01.07 |
|---|---|
| 백준 10824 네 수 자바[java] (4) | 2023.01.07 |
| 백준 2743 단어 길이 재기 자바[java] (0) | 2023.01.07 |
| 백준 10820 문자열 분석 자바[java] (2) | 2023.01.07 |
| 백준 10809 알파벳 찾기 자바[java] (0) | 2023.01.07 |
