diff --git "a/\354\235\264\352\270\260\354\247\204/0926week28/\354\225\214\355\214\214\353\262\263\353\270\224\353\241\235.java" "b/\354\235\264\352\270\260\354\247\204/0926week28/\354\225\214\355\214\214\353\262\263\353\270\224\353\241\235.java" new file mode 100644 index 0000000..6412ea1 --- /dev/null +++ "b/\354\235\264\352\270\260\354\247\204/0926week28/\354\225\214\355\214\214\353\262\263\353\270\224\353\241\235.java" @@ -0,0 +1,54 @@ + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayDeque; +import java.util.Deque; +import java.util.Stack; +import java.util.StringTokenizer; + +public class 알파벳블록 { + + public static void main(String[] args) throws IOException { + BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); + int n = Integer.parseInt(bf.readLine()); + StringTokenizer st; + Deque deque = new ArrayDeque<>(); + Stack stack = new Stack<>(); + for(int i = 0; i < n; i++){ + st = new StringTokenizer(bf.readLine()); + if(st.countTokens() == 1){ + if(!stack.empty()) { + if(stack.pop() == 1) { + deque.pollLast(); + } + else { + deque.pollFirst(); + } + } + } + else{ + stack.push(Integer.parseInt(st.nextToken())); + char c = st.nextToken().charAt(0); + if(stack.peek() == 1){ + deque.addLast(c); + } + else{ + deque.addFirst(c); + } + } + } + StringBuilder sb = new StringBuilder(); + + if(deque.size() == 0){ + sb.append(0); + } + else{ + while(!deque.isEmpty()) { + sb.append(deque.pollFirst()); + } + } + System.out.println(sb); + } + +} \ No newline at end of file diff --git "a/\354\235\264\352\270\260\354\247\204/0926week28/\354\226\264\353\223\234\353\262\244\354\263\220\352\262\214\354\236\204.java" "b/\354\235\264\352\270\260\354\247\204/0926week28/\354\226\264\353\223\234\353\262\244\354\263\220\352\262\214\354\236\204.java" new file mode 100644 index 0000000..f7cac2c --- /dev/null +++ "b/\354\235\264\352\270\260\354\247\204/0926week28/\354\226\264\353\223\234\353\262\244\354\263\220\352\262\214\354\236\204.java" @@ -0,0 +1,72 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.StringTokenizer; + +public class 어드벤쳐게임 { + static ArrayList[] linkRoom; + static char[] rType; + static int[] mInfo; + static int N; + static boolean flag; + static boolean[] visited; + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st; + StringBuilder ans = new StringBuilder(); + N = 0; + while((N = Integer.parseInt(br.readLine())) != 0) { + rType = new char[N+1]; + linkRoom = new ArrayList[N+1]; + mInfo = new int[N+1]; + visited = new boolean[N+1]; + for(int i=1; i<=N; i++) { + st = new StringTokenizer(br.readLine()); + rType[i] = st.nextToken().charAt(0); + mInfo[i] = Integer.parseInt(st.nextToken()); + linkRoom[i] = new ArrayList<>(); + int roomNum = 0; + while((roomNum = Integer.parseInt(st.nextToken())) != 0) { + linkRoom[i].add(roomNum); + } + } + flag = false; + goDfs(1, 0); + if(flag) { + System.out.println("Yes"); + } + else + System.out.println("No"); + } + } + + private static void goDfs(int room, int money) { + if(flag) return; + if(room == N) { + flag = true; + return; + } + + for(int i =0; i money) { + money = mInfo[rNum]; + } + } else if(rType[rNum] == 'T') { + if(mInfo[rNum] <= money) { + money -= mInfo[rNum]; + } else { + return; + } + } + visited[rNum] = true; + goDfs(rNum, money); + visited[rNum] = false; + } + return; + } +} \ No newline at end of file