-
백준 17413 단어 뒤집기2 문제 풀이 Stack 활용 ( Java )Problem Solving/Java 2019. 10. 19. 11:33반응형123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.Stack;public class Main {private static void printStack(BufferedWriter bw, Stack<Character> stack) throws IOException {// 스택에 쌓인 단어를 모두 출력하는 함수. 여러번 필요해서 함수로 분리while (!stack.isEmpty()) {}}public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));// 문자열이 주어진다.// 이는 < 로 시작해서 단어 혹윽 공백이 적혀있고 >로 끝나는 태그와 단어로 구성되어있다.// 태그는 뒤집지 말고 단어만 뒤집어라.String s = br.readLine();// Line 입력 받고 s 에 저장boolean tag = false;// tag 안인지 밖인지 확인할 flag 생성Stack<Character> stack = new Stack<Character>();// 단어들 뒤집을 Stack 생성for (int i = 0; i < s.length(); i++) {// 단어를 처음부터 끝까지 검사if (s.charAt(i) == '<') {// 태그 시작일 때tag = true;// tag 안인지 확인하는 flag를 true로 바꾸고printStack(bw,stack);// 그동안 stack에 쌓인 단어들을 스택이 빌 때 까지 비워준다bw.write(s.charAt(i));// 태그 출력} else if (s.charAt(i) == '>') {// 태그 종료일 때tag = false;// tag 안인지 확인하는 flag를 false로 바꾸고bw.write(s.charAt(i));// 그 단어 그대로 출력} else if (tag) {// 태그 안일 경우bw.write(s.charAt(i));// 그 단어 그대로 출력} else {// 태그 바깥일 경우if(s.charAt(i)==' ') {//공백이면printStack(bw,stack);// 그동안 stack에 쌓인 단어들을 스택이 빌 때 까지 비워준다bw.write(s.charAt(i));// 공백 출력}else {//공백이 아니면stack.push(s.charAt(i));// stack에 넣어준다}}}// 반복이 끝나고 마지막일 경우printStack(bw,stack);// 그동안 stack에 쌓인 단어들을 스택이 빌 때 까지 비워준다// BufferedWriter 비움// reader, writer 종료}}
처음엔 split 해서 stack과 queue를 번갈아 활용하는 방식으로 접근했다가
결국 Stack만 활용해서 해결하는 방식으로 풀었다
반응형'Problem Solving > Java' 카테고리의 다른 글
백준 17298번 오큰수 문제 스택 활용 풀이 ( Java ) (2) 2019.10.20 백준 10799 쇠막대기 문제 풀이 Stack 활용 ( Java ) (0) 2019.10.20 백준 1158번 조세퍼스 문제 큐 활용 풀이 ( Java ) (0) 2019.09.05 백준 1406번 에디터 문제 Stack 활용 풀이 ( Java ) (0) 2019.09.05 백준 1874번 스택 수열 문제 풀이 Stack 활용 ( Java ) (0) 2019.09.05