diff --git "a/algorithm-study/src/main/java/week05/boj13417/\354\271\264\353\223\234\353\254\270\354\236\220\354\227\264_\353\260\225\353\202\230\355\230\204.java" "b/algorithm-study/src/main/java/week05/boj13417/\354\271\264\353\223\234\353\254\270\354\236\220\354\227\264_\353\260\225\353\202\230\355\230\204.java" new file mode 100644 index 0000000..f77f840 --- /dev/null +++ "b/algorithm-study/src/main/java/week05/boj13417/\354\271\264\353\223\234\353\254\270\354\236\220\354\227\264_\353\260\225\353\202\230\355\230\204.java" @@ -0,0 +1,44 @@ +package week05.boj13417; + +import java.util.*; +import java.io.*; + +public class 카드문자열_박나현 { + public static void main(String[] args) throws IOException { + StringBuilder sb = new StringBuilder(); + + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + + int count = Integer.parseInt(st.nextToken()); + + while (count-- > 0) { + + Deque deq = new ArrayDeque<>(); + + st = new StringTokenizer(br.readLine()); + int length = Integer.parseInt(st.nextToken()); + + st = new StringTokenizer(br.readLine()); + + while (length-- > 0) { + String c = st.nextToken(); + if (deq.isEmpty()) { + deq.offer(c); + } else { + if (c.compareTo(deq.peekFirst()) > 0) { + deq.offerLast(c); + } else deq.offerFirst(c); + } + } + + while (!deq.isEmpty()) { + sb.append(deq.poll()); + } + + sb.append("\n"); + } + System.out.println(sb); + } +} diff --git "a/algorithm-study/src/main/java/week05/boj20301/\353\260\230\354\240\204\354\232\224\354\204\270\355\221\270\354\212\244_\353\260\225\353\202\230\355\230\204.java" "b/algorithm-study/src/main/java/week05/boj20301/\353\260\230\354\240\204\354\232\224\354\204\270\355\221\270\354\212\244_\353\260\225\353\202\230\355\230\204.java" new file mode 100644 index 0000000..414b262 --- /dev/null +++ "b/algorithm-study/src/main/java/week05/boj20301/\353\260\230\354\240\204\354\232\224\354\204\270\355\221\270\354\212\244_\353\260\225\353\202\230\355\230\204.java" @@ -0,0 +1,53 @@ +package week05.boj20301; + +import java.io.*; +import java.util.*; + +public class 반전요세푸스_박나현 { + static Deque deq = new ArrayDeque<>(); + static StringBuilder sb = new StringBuilder(); + static int count = 0; + static boolean turn = false; + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + int n = Integer.parseInt(st.nextToken()); + int k = Integer.parseInt(st.nextToken()); + int m = Integer.parseInt(st.nextToken()); + + for (int i = 1; i <= n; i++) { + deq.offerLast(i); + } + + while (!deq.isEmpty()) { + if (!turn) { + turnRight(k); + } else { + turnLeft(k); + } + + count++; + if (count == m) { + count = 0; + turn = !turn; + } + } + System.out.println(sb); + } + + private static void turnRight(int k) { + for (int i = 0; i < k-1; i++) { + deq.offerLast(deq.pollFirst()); + } + sb.append(deq.pollFirst()).append("\n"); + } + + private static void turnLeft(int k) { + for (int i = 0; i < k-1; i++) { + deq.offerFirst(deq.pollLast()); + } + sb.append(deq.pollLast()).append("\n"); + } +} diff --git "a/algorithm-study/src/main/java/week05/boj2346/\355\222\215\354\204\240\355\204\260\353\234\250\353\246\254\352\270\260_\353\260\225\353\202\230\355\230\204.java" "b/algorithm-study/src/main/java/week05/boj2346/\355\222\215\354\204\240\355\204\260\353\234\250\353\246\254\352\270\260_\353\260\225\353\202\230\355\230\204.java" new file mode 100644 index 0000000..1b21ebb --- /dev/null +++ "b/algorithm-study/src/main/java/week05/boj2346/\355\222\215\354\204\240\355\204\260\353\234\250\353\246\254\352\270\260_\353\260\225\353\202\230\355\230\204.java" @@ -0,0 +1,47 @@ +package week05.boj2346; + +import java.util.*; +import java.io.*; + +// 메모리: 15564KB | 시간: 164ms +public class 풍선터뜨리기_박나현 { + public static void main(String[] args) throws IOException { + + StringBuilder sb = new StringBuilder(); + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + // index 구하는 메서드가 없어 배열로 저장 + Deque deq = new ArrayDeque<>(); + + // size 만큼 deq에 값 저장 + int size = Integer.parseInt(br.readLine()); + + StringTokenizer st = new StringTokenizer(br.readLine()); + for (int i = 1; i <= size; i++) { + int n = Integer.parseInt(st.nextToken()); + deq.offer(new int[]{i, n}); + } + + int[] first = deq.pollFirst(); + sb.append(first[0]).append(" "); + + int next = first[1]; + + while (!deq.isEmpty()) { + if (next > 0) { + for (int j = 0; j < next-1; j++) { + deq.offerLast(deq.poll()); + } + } else { + for (int j = 0; j < Math.abs(next); j++) { + deq.offerFirst(deq.pollLast()); + } + } + + first = deq.poll(); + sb.append(first[0]).append(" "); + next = first[1]; + } + System.out.println(sb); + } +}