From 1456536a540b5f73404200b9e968ec88705bd87c Mon Sep 17 00:00:00 2001 From: lkhyun <102892446+lkhyun@users.noreply.github.com> Date: Mon, 22 Sep 2025 21:50:37 +0900 Subject: [PATCH] =?UTF-8?q?[20250922]=20BOJ=20/=20G4=20/=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=EC=B6=94=EC=B2=9C=20=EC=8B=9C=EC=8A=A4=ED=85=9C=20?= =?UTF-8?q?Version=201=20/=20=EC=9D=B4=EA=B0=95=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\234\354\212\244\355\205\234 Version 1.md" | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 "lkhyun/202509/22 BOJ G4 \353\254\270\354\240\234 \354\266\224\354\262\234 \354\213\234\354\212\244\355\205\234 Version 1.md" diff --git "a/lkhyun/202509/22 BOJ G4 \353\254\270\354\240\234 \354\266\224\354\262\234 \354\213\234\354\212\244\355\205\234 Version 1.md" "b/lkhyun/202509/22 BOJ G4 \353\254\270\354\240\234 \354\266\224\354\262\234 \354\213\234\354\212\244\355\205\234 Version 1.md" new file mode 100644 index 00000000..3dc4b82d --- /dev/null +++ "b/lkhyun/202509/22 BOJ G4 \353\254\270\354\240\234 \354\266\224\354\262\234 \354\213\234\354\212\244\355\205\234 Version 1.md" @@ -0,0 +1,71 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + static class Node{ + int key,difficulty; + + Node(int key, int difficulty){ + this.key = key; + this.difficulty = difficulty; + } + } + + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + static StringTokenizer st; + static int N,M; + static Map problems = new HashMap<>(); + static TreeSet s = new TreeSet<>((a,b) -> { + if(a.difficulty == b.difficulty){ + return Integer.compare(a.key,b.key); + }else{ + return Integer.compare(a.difficulty,b.difficulty); + } + }); + + public static void main(String[] args) throws IOException { + N = Integer.parseInt(br.readLine()); + for (int i = 0; i < N; i++) { + st = new StringTokenizer(br.readLine()); + int p = Integer.parseInt(st.nextToken()); + int l = Integer.parseInt(st.nextToken()); + problems.put(p,l); + s.add(new Node(p,l)); + } + + M = Integer.parseInt(br.readLine()); + for (int i = 0; i < M; i++) { + st = new StringTokenizer(br.readLine()); + String cmd = st.nextToken(); + + if(cmd.equals("add")){ + int p = Integer.parseInt(st.nextToken()); + int l = Integer.parseInt(st.nextToken()); + problems.put(p,l); + s.add(new Node(p,l)); + } + else if(cmd.equals("recommend")){ + int x = Integer.parseInt(st.nextToken()); + if(x == 1){ + Node hard = s.last(); + bw.write(hard.key + "\n"); + } + else{ + Node easy = s.first(); + bw.write(easy.key + "\n"); + } + } + else if(cmd.equals("solved")){ + int p = Integer.parseInt(st.nextToken()); + int difficulty = problems.get(p); + problems.remove(p); + s.remove(new Node(p, difficulty)); + } + } + + bw.close(); + } +} +```