영원히 남는 기록, 재밌게 쓰자

백준 [17413] 단어 뒤집기 2 (JAVA) 본문

Algorithm/백준

백준 [17413] 단어 뒤집기 2 (JAVA)

youngjae-kim 2024. 7. 10. 12:31
728x90
반응형

문제

풀이

  1. <> 안의 단어는 그대로 출력된다.
  2. 단어를 뒤집어도 되는지 검사하는 변수 reverse를 선언
  3. ' '(공백)을 만나면 스택에 있는 문자들을 모두 뽑아 출력 문자열에 더하고 공백도 더해준다.
  4. '<'를 만나면 스택에 있는 문자들을 모두 뽑아 출력 문자열에 더하고 reverse = false로 변경, 출력 문자열에 '<'추가
  5. '>'를 만나면 reverse = true로 변경, 출력 문자열에 '>'추가
  6. 나머지 문자들은 reverse = true인 경우 스택에 push, false인 경우 출력 문자열에 바로 더하기

정답 코드

package com.baekjoon.data_structure.p17413;

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Stack<Character> stack = new Stack<>();
        StringBuilder sb = new StringBuilder();

        String input = sc.nextLine();
        boolean reverse = true;

        for (int i = 0; i < input.length(); i++) {
            char word = input.charAt(i);

            switch (word) {
                case ' ':
                    while (!stack.isEmpty()) {
                        sb.append(stack.pop());
                    }
                    sb.append(word);
                    break;
                case '<':
                    reverse = false;
                    while (!stack.isEmpty()) {
                        sb.append(stack.pop());
                    }
                    sb.append(word);
                    break;
                case '>':
                    reverse = true;
                    sb.append(word);
                    break;
                default:
                    if (reverse) {
                        stack.push(word);
                    } else {
                        sb.append(word);
                    }
                    break;
            }
        }

        while (!stack.isEmpty()) {
            sb.append(stack.pop());
        }

        System.out.println(sb);
        sc.close();
    }
}
728x90
반응형

'Algorithm > 백준' 카테고리의 다른 글

백준 [1976] 여행가자 (JAVA)  (0) 2024.07.12
백준 [2504] 괄호의 값 (JAVA)  (0) 2024.07.11
백준 [1918] 후위 표기식 (JAVA)  (0) 2024.07.10
백준 [9935] 문자열 폭발 (JAVA)  (0) 2024.07.10
백준 [1717] 집합의 표현 (JAVA)  (0) 2024.07.09