diff --git a/0510/BOJ/P1764/P1764_noh.java b/0510/BOJ/P1764/P1764_noh.java new file mode 100644 index 0000000..8d31a3a --- /dev/null +++ b/0510/BOJ/P1764/P1764_noh.java @@ -0,0 +1,28 @@ +import java.util.Map; +import java.util.Scanner; +import java.util.TreeMap; + +public class Main { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + Map mapp = new TreeMap(); + int n = sc.nextInt(); + int m = sc.nextInt(); + for (int i = 0; i < n; ++i) { + String name = sc.next(); + mapp.put(name, 1); + } + int cnt = 0; + for (int i = 0; i < m; ++i) { + String name = sc.next(); + if (mapp.get(name) != null) { + mapp.put(name, 2); + ++cnt; + } + } + System.out.println(cnt); + for (String name : mapp.keySet()) + if (mapp.get(name) == 2) + System.out.println(name); + } +} \ No newline at end of file diff --git a/0510/BOJ/P1780/P1780_noh.java b/0510/BOJ/P1780/P1780_noh.java new file mode 100644 index 0000000..c53a772 --- /dev/null +++ b/0510/BOJ/P1780/P1780_noh.java @@ -0,0 +1,52 @@ +import java.util.Scanner; + +public class Main { + static int[][] board; + static int[] ans = new int[3]; + + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int n = sc.nextInt(); + board = new int[n][n]; + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + board[i][j] = sc.nextInt(); + + solve(0, 0, n); + + for (int i = 0; i < 3; ++i) + System.out.println(ans[i]); + } + + static void solve(int y, int x, int size) { + if (size == 1) { + ++ans[board[y][x] + 1]; + return; + } + int ck = check(y, x, size); + if (ck == -1) { + int nSize = size / 3; + solve(y, x, nSize); + solve(y, x + nSize, nSize); + solve(y, x + 2 * nSize, nSize); + solve(y + nSize, x, nSize); + solve(y + nSize, x + nSize, nSize); + solve(y + nSize, x + 2 * nSize, nSize); + solve(y + 2 * nSize, x, nSize); + solve(y + 2 * nSize, x + nSize, nSize); + solve(y + 2 * nSize, x + 2 * nSize, nSize); + } else { + ++ans[ck]; + } + } + + // 다른게 있으면 -1 반환, 전부 같으면 그 숫자 + 1 반환 + static int check(int y, int x, int size) { + int num = board[y][x]; + for (int i = 0; i < size; ++i) + for (int j = 0; j < size; ++j) + if (board[y + i][x + j] != num) + return -1; + return num + 1; + } +} \ No newline at end of file diff --git a/0510/BOJ/P1927/P1927_noh.java b/0510/BOJ/P1927/P1927_noh.java new file mode 100644 index 0000000..50802c8 --- /dev/null +++ b/0510/BOJ/P1927/P1927_noh.java @@ -0,0 +1,23 @@ +import java.util.PriorityQueue; +import java.util.Scanner; + +public class Main { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + StringBuilder sb = new StringBuilder(); + PriorityQueue pq = new PriorityQueue<>(); + int n = sc.nextInt(); + for (int i = 0; i < n; ++i) { + int oper = sc.nextInt(); + if (oper == 0) { + if (pq.isEmpty()) + sb.append("0\n"); + else + sb.append(pq.poll() + "\n"); + } else { + pq.add(oper); + } + } + System.out.println(sb); + } +} \ No newline at end of file diff --git "a/0510/Programmers/Lv1/\354\227\206\353\212\224\354\210\253\354\236\220\353\215\224\355\225\230\352\270\260_noh.java" "b/0510/Programmers/Lv1/\354\227\206\353\212\224\354\210\253\354\236\220\353\215\224\355\225\230\352\270\260_noh.java" new file mode 100644 index 0000000..add1f59 --- /dev/null +++ "b/0510/Programmers/Lv1/\354\227\206\353\212\224\354\210\253\354\236\220\353\215\224\355\225\230\352\270\260_noh.java" @@ -0,0 +1,10 @@ +class Solution { + public int solution(int[] numbers) { + int answer = 45; + + for (int i = 0; i < numbers.length; ++i) + answer -= numbers[i]; + + return answer; + } +} \ No newline at end of file diff --git "a/0510/Programmers/Lv2/\354\225\225\354\266\225_noh.java" "b/0510/Programmers/Lv2/\354\225\225\354\266\225_noh.java" new file mode 100644 index 0000000..6bd26b0 --- /dev/null +++ "b/0510/Programmers/Lv2/\354\225\225\354\266\225_noh.java" @@ -0,0 +1,38 @@ +import java.util.HashMap; +import java.util.Map; + +class Solution { + public int[] solution(String msg) { + msg += "0"; + int[] answer = {}; + + int[] temp = new int[1000]; + int ansIdx = 0; + + Map mapp = new HashMap(); + int idx = 1; + for (int i = 0; i < 26; ++i) + mapp.put(Character.toString((char) ('A' + i)), idx++); + + StringBuilder input = new StringBuilder(); + for (int i = 0; i < msg.length() - 1; ++i) { + input.append(msg.substring(i, i + 1)); + // 다음 문자까지 합친게 사전에 있으면 + if (mapp.get(input + msg.substring(i + 1, i + 2)) != null) { + continue; + } + // 색인번호 출력 + temp[ansIdx++] = mapp.get(input.toString()); + // 사전 추가 + mapp.put(input + msg.substring(i + 1, i + 2), idx++); + // 입력에서 제거 + input = new StringBuilder(); + } + + answer = new int[ansIdx]; + for (int i = 0; i < ansIdx; ++i) + answer[i] = temp[i]; + + return answer; + } +} \ No newline at end of file