알고리즘/백준
백준 11365 !밀비 급일 (자바 & 파이썬 풀이)
Renechoi
2023. 1. 19. 14:42
백준 11365 !밀비 급일 (자바 & 파이썬 풀이)
📌 문제
당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면 해독된다는 것을 발견했다.이 암호를 해독하는 프로그램을 작성하시오.
⚔ 입력
한 줄에 하나의 암호가 주어진다. 암호의 길이는 500을 넘지 않는다.
마지막 줄에는 "END"가 주어진다. (END는 해독하지 않는다.)
📣 출력
각 암호가 해독된 것을 한 줄에 하나씩 출력한다.
💎 문제 분석
파이썬과 자바의 길이를 비교하고자 했다.
파이썬에서는 [::-1]로 별다른 구현 없이 바로 정답 출력이 가능했지만 자바에서는 전부 구현을 해주어야 했다. (메서드를 못 찾은 것일 수도...)
길이 차이는 6배
시간 차이는 3배
자바가 정말 긴 언어이긴 하다..
💡 코드 구현
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.stream.IntStream;
public class Main {
private static BufferedReader bufferedReader;
public static void main(String[] args) throws IOException {
bufferedReader = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String input = getInput();
if (input.equals("END")) {
break;
}
char[] dataReversed = dataReversed(input);
String answer = convertToString(dataReversed);
System.out.println(formatAnswer(answer));
}
}
private static String formatAnswer(String answer) {
return answer.toCharArray()[0] == ' ' ? answer.replaceFirst(" ", "") : answer;
}
private static char[] dataReversed(String input) {
char[] chars = input.toCharArray();
char[] newChars = new char[chars.length];
IntStream.range(0, chars.length).forEach(i -> newChars[i] = chars[chars.length - 1 - i]);
return newChars;
}
private static String convertToString(char[] chars) {
StringBuilder stringBuilder = new StringBuilder();
IntStream.range(0, chars.length).forEach(i -> stringBuilder.append(chars[i]));
return stringBuilder.toString();
}
private static String getInput() throws IOException {
return bufferedReader.readLine();
}
}
import sys
def get_input():
return sys.stdin.readline()
if __name__ == "__main__":
while True:
string = str(input())
if string == "END" :
break
print(string[::-1])
반응형