백준 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])
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준/자바] 10158 개미 (0) | 2023.06.07 |
---|---|
백준 1543 문서 검색 자바 풀이 (0) | 2023.06.06 |
백준 10773 제로 (JAVA 자바 풀이) (0) | 2022.12.23 |
백준 1966 프린터큐 (JAVA 자바 풀이) (0) | 2022.12.23 |
백준 11866 요세푸스 문제 0 (JAVA 자바 풀이) (0) | 2022.12.22 |