[BOJ] 11655 - ROT13 (🥉 브론즈 1티어)
사용 언어: Python3, Java
문제
풀이
나의 풀이
파이썬
S = list(input())
for i in range(len(S)):
if S[i].islower():
S[i] = chr(ord('a') + (ord(S[i])+13-ord('a'))%26)
elif S[i].isupper():
S[i] = chr(ord('A') + (ord(S[i])+13-ord('A'))%26)
print(''.join(S))
- 테스트 케이스: 성공
- 제출 결과: 성공
자바
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
Pattern pattern = Pattern.compile("[a-zA-Z]");
String str = in.readLine();
for (int i=0; i<str.length(); i++) {
Matcher matcher = pattern.matcher(String.valueOf(str.charAt(i)));
if (matcher.find()) { // 패턴이 매칭한다면
int n = ((int)(str.charAt(i)) + 13);
if ((int)(str.charAt(i)) >= (int)'A' && (int)(str.charAt(i)) <= (int)'Z') { // 대문자
if (n > (int)'Z') {
n -= 26;
}
} else { // 소문자
if (n > (int)'z') {
n -= 26;
}
}
out.write(String.valueOf((char)n));
} else {
out.write(String.valueOf(str.charAt(i)));
}
}
out.close();
in.close();
}
}
- 테스트 케이스: 성공
- 제출 결과: 성공
다른 풀이
파이썬
S = list(input())
for i in range(len(S)):
if S[i].islower():
S[i] = chr((ord(S[i])+13-ord('a'))%26 + ord('a'))
elif S[i].isupper():
S[i] = chr((ord(S[i])+13-ord('A'))%26 + ord('A'))
print(''.join(S))
- 테스트 케이스: 성공
- 제출 결과: 성공
자바
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
String str = in.readLine();
for (char ch: str.toCharArray()) {
if (ch >= 'A' && ch <= 'Z') {
ch += 13;
if (ch>(int)'Z') ch-=26;
} else if (ch >= 'a' && ch <= 'z') {
ch += 13;
if (ch>(int)'z') ch-=26;
}
sb.append(ch);
}
out.write(sb.toString());
out.close();
in.close();
}
}
- 테스트 케이스: 성공
- 제출 결과: 성공
💛 개인 공부 기록용 블로그입니다. 👻