본문 바로가기
알고리즘/백준

백준 11365 !밀비 급일 (자바 & 파이썬 풀이)

by Renechoi 2023. 1. 19.

백준 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])

 

 

 

 

 


반응형