[백준] 1213 - 팰린드롬 만들기 (JAVA)

leeng·2024년 6월 12일
0

휴 또 간만에 어렵지 않게 풀었다... 스택이랑 큐 사용하는 문제들이 대체로 풀기 재밌는 것 같당
그리고 처음에 String[]으로 풀었는데 채점 결과를 보니 메모리 사용량이 꽤 커서 char array로 바꿔서 다시 제출해봤지만 큰 차이가 나지는 않았다! (위에 제출한 게 char array)

import java.io.*;
import java.util.Arrays;
import java.util.Stack;

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));
        char[] inputs = br.readLine().toCharArray();
        char[] result = new char[inputs.length];
        String answer;
        br.close();

        Arrays.sort(inputs);
        Stack<Character> stack = new Stack<>();
        int j = 0;
        for (int i = 0; i < inputs.length; i++) {
            if (!stack.empty() && inputs[i] == stack.peek()) {
                char pop = stack.pop();
                result[j] = result[result.length - 1 - j] = pop;
                j++;
            } else {
                stack.push(inputs[i]);
            }
        }

        if (stack.empty()) {
            answer = new String(result);
        } else if (stack.size() == 1) {
            result[j] = stack.pop();
            answer = new String(result);
        } else {
            answer = "I'm Sorry Hansoo";
        }

        bw.write(answer);
        bw.flush();
        bw.close();
    }
}
profile
기술블로그보다는 기록블로그

0개의 댓글