From 78feef241fc954e0441afaf61c50ddd43d4d43d6 Mon Sep 17 00:00:00 2001 From: sanghwa <85687130+aga1215@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:56:49 +0900 Subject: [PATCH 01/45] Update README with new challenge details Removed outdated sections and added new challenge information. --- README.md | 114 +----------------------------------------------------- 1 file changed, 1 insertion(+), 113 deletions(-) diff --git a/README.md b/README.md index 2fd9b63e7..1e30812ea 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,5 @@ -### 종료되었습니다!! -
- -[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fellynhan%2FChallenge100_Code_Test_Study&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com) -[![All Contributors](https://img.shields.io/badge/All_contributors-68-orange.svg?style=flat-square)](#) -[![Forks Welcome](https://img.shields.io/badge/Fork-welcome!!-brightgreen.svg?style=flat-square)](https://github.com/ellynhan/Challenge100_Code_Test_Study/fork) - -
- -![img](./.Readme/logo.png) ---- -# 💯 알고리즘 및 코딩 테스트 문제 풀이 챌린지 100 📝 -`누구나` 참여 가능한 알고리즘 및 코테 문제 풀이 스터디입니다. - -3개월 이상 참여 안하신 분들은 알아서 중도포기 처리할게요! - -참여 방법 설명글: -
-
- -## ✅ 참여 방법 -1. 이 저장소를 `fork` 한다. -2. 생성된 원격 저장소에 `이름` 혹은 `github ID`로 폴더를 생성한다. -3. 생성된 폴더에 자신의 소스코드를 업로드 한다. (폴더명에 콜론":" 안됩니다!) -4. 이때 `commit 규칙`을 지키도록한다! -5. 원본 저장소로 `Pull Request`를 한다. (매주 3문제 이상, 매주 **토요일**에 Merge예정) -6. 다른 사람들의 PR을 보고 자유롭게 코드리뷰를 한다. -7. ***주의!! 기존 폴더를 지우면 안됩니다!!*** 개인 폴더 내부만 수정해주세요 :) -8. 오픈톡방 들어오시면 매주 토요일 PR알림 + 모르는거 물어보세요 - -
-
+# 💯 알고리즘 및 코딩 테스트 문제 풀이 📝 ## ✅ 소스코드 파일 이름 규칙 - 자유롭게 작성 @@ -76,84 +45,3 @@ git commit -m "[BOJ] Hello World / 브론즈5 / 1분" -m "https://www.acmicpc.ne - 또 다른 풀이 방식 제시 - 코드의 일부분에다 코드리뷰를 해도 되고 전체 코드 밑 or PR 하나 밑에다 코멘트 작성으로 리뷰를 해도 됩니다. -
-
- -## ✅ 참여자와 진행도 -### 🎉 챌린지 달성 🎉 - - - - - - - - - - - - - -

🎉wi-seong-cheol


🎉gusah009


🎉wlwl1011


🎉kdh2996


🎉seunggil1


🎉c0np4nn4


🎉ellynhan


🎉Splanky0314


🎉llddang


🎉Ga-ng


🎉nhee-dev


🎉Ernstjunger-1914


🎉lysuk96


- -### 🔥 챌린지 도전 🔥 - - - - - - - - - - - - - - - - - - - - - - - - - -

minsuhan1


ahma0


EunjiShin


jaepyo-Lee


hwanyb


suyeonsu


kangdy25


jiyoon0701


stopkite


ise-yen


lee-yun-pyo


djdongjae


cocorig


Sjaize


JeongheonHa


chaeryeon823


yangchang-n


HamsterStudent


Glsme


watertree34


SeungjaeLim


ehddud1006


woohyun-jeong


yuminn-k


rhdrlqkftk


- -### 💀 챌린지 포기 💀 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

JeonghakLee2
중도포기


maeve1109
중도포기


weaver9651
중도포기


wldsbs
중도포기


seokho-lee
중도포기


peppersora
중도포기


beomukim
중도포기


jasper200207
중도포기


cokemania2
중도포기


junbo9
중도포기


dydnrn12
중도포기


jopemachine
중도포기


yongjunleeme
중도포기


qkoo0833
중도포기


jokercsi
중도포기


Yerin99
중도포기


Dongyeon-k
중도포기


shasuri
중도포기


songmody
중도포기


shkisme
중도포기


mia2583
중도포기


HyeGyoungPark
중도포기


dmstj920
중도포기


eodudrepublic
중도포기


siren16
중도포기


CodeSik
중도포기


lcy8047
중도포기


thkang727
중도포기


JeonghakLee
중도포기


son-daehyeon
중도포기


- From d04c0a0e2789aa8ad02f89d8c8161fe6ff0037ab Mon Sep 17 00:00:00 2001 From: sanghwa <85687130+aga1215@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:59:28 +0900 Subject: [PATCH 02/45] Delete EunjiShin directory --- EunjiShin/.gitignore | 1 - ...236\220\353\245\264\352\270\260_1654.java" | 40 ------- ...203\225\352\262\214\354\236\204_3085.java" | 79 ------------- ...236\220\354\225\274\352\265\254_2503.java" | 110 ------------------ ...71\264\354\235\264\353\241\240_10448.java" | 43 ------- ...271\240\355\225\230\352\270\260_1018.java" | 61 ---------- ...215\224\355\225\230\352\270\260_9095.java" | 29 ----- ...247\214\353\223\244\352\270\260_1463.java" | 32 ----- ...47\214\353\223\244\352\270\260_11727.java" | 24 ---- ...03\200\354\235\274\353\247\201_11726.java" | 25 ---- ...BOJ]RGB\352\261\260\353\246\254_1149.java" | 52 --------- ...6\204 \354\210\230\354\227\264_11053.java" | 36 ------ ...230\244\353\245\264\352\270\260_2579.java" | 30 ----- .../[BOJ]\352\264\204\355\230\270_9012.java" | 36 ------ ...30\270\354\235\230 \352\260\222_2504.java" | 65 ----------- ...47\211\353\214\200\352\270\260_10799.java" | 28 ----- .../[BOJ]\354\212\244\355\203\235_10828.java" | 45 ------- ...203\235\354\210\230\354\227\264_1874.java" | 37 ------ ...352\263\274 \353\260\233\352\270\260.java" | 59 ---------- ...\355\217\260\354\274\223\353\252\254.java" | 38 ------ ...63\265 \355\225\255\354\212\271_1449.java" | 36 ------ ...13\244 \353\260\260\354\240\225_1931.java" | 49 -------- EunjiShin/Greedy/[BOJ]30_10610.java | 34 ------ EunjiShin/Greedy/[BOJ]ATM_11399.java | 36 ------ ...[BOJ]\353\217\231\354\240\2040_11047.java" | 36 ------ ...10\230 \353\254\266\352\270\260_1744.java" | 58 --------- ...46\260 \352\264\204\355\230\270_1541.java" | 34 ------ ...[BOJ] \353\271\227\353\254\274_14719.java" | 56 --------- ...5\214 \354\210\234\354\227\264_10972.java" | 75 ------------ ...\244\354\247\221\352\270\260 2_17413.java" | 51 -------- ...3\240 \354\210\234\354\227\264_10974.java" | 74 ------------ ...0\204 \354\210\234\354\227\264_10973.java" | 74 ------------ .../[BOJ]\354\247\221\355\225\251_11723.java" | 58 --------- ...6\255 \355\230\270\354\204\235_20164.java" | 63 ---------- ...355\232\250 \352\270\260\352\260\204.java" | 49 -------- ...352\270\210 \352\263\204\354\202\260.java" | 85 -------------- EunjiShin/LeetCode/1.two-sum.java | 30 ----- EunjiShin/LeetCode/100.same-tree.java | 36 ------ EunjiShin/LeetCode/101.symmetric-tree.java | 38 ------ ...102.binary-tree-level-order-traversal.java | 52 --------- .../104.maximum-depth-of-binary-tree.java | 40 ------- .../121.best-time-to-buy-and-sell-stock.java | 29 ----- EunjiShin/LeetCode/13.roman-to-integer.java | 57 --------- .../LeetCode/14.longest-common-prefix.java | 30 ----- .../LeetCode/142.linked-list-cycle-ii.java | 40 ------- .../1480.running-sum-of-1-d-array.java | 23 ---- EunjiShin/LeetCode/20.valid-parentheses.java | 41 ------- .../LeetCode/205.isomorphic-strings.java | 32 ----- .../LeetCode/206.reverse-linked-list.java | 35 ------ .../LeetCode/21.merge-two-sorted-lists.java | 46 -------- .../LeetCode/24.swap-nodes-in-pairs.java | 30 ----- ...6.remove-duplicates-from-sorted-array.java | 22 ---- EunjiShin/LeetCode/27.remove-element.java | 23 ---- EunjiShin/LeetCode/278.first-bad-version.java | 29 ----- ...x-of-the-first-occurrence-in-a-string.java | 28 ----- .../LeetCode/35.search-insert-position.java | 30 ----- EunjiShin/LeetCode/392.is-subsequence.java | 28 ----- .../LeetCode/409.longest-palindrome.java | 29 ----- .../LeetCode/58.length-of-last-word.java | 27 ----- .../589.n-ary-tree-preorder-traversal.java | 48 -------- EunjiShin/LeetCode/66.plus-one.java | 32 ----- EunjiShin/LeetCode/67.add-binary.java | 47 -------- EunjiShin/LeetCode/69.sqrt-x.java | 41 ------- EunjiShin/LeetCode/70.climbing-stairs.java | 24 ---- EunjiShin/LeetCode/704.binary-search.java | 29 ----- EunjiShin/LeetCode/724.find-pivot-index.java | 27 ----- ...83.remove-duplicates-from-sorted-list.java | 33 ------ .../876.middle-of-the-linked-list.java | 34 ------ EunjiShin/LeetCode/88.merge-sorted-array.java | 30 ----- EunjiShin/LeetCode/9.palindrome-number.java | 47 -------- .../94.binary-tree-inorder-traversal.java | 49 -------- EunjiShin/LeetCode/[LTC]26.java | 12 -- EunjiShin/LeetCode/[LTC]58.java | 8 -- EunjiShin/LeetCode/[LTC]80.java | 16 --- ...223\243\353\263\264\354\236\241_1764.java" | 42 ------- ...7\264 \354\247\221\355\225\251_14425.java" | 32 ----- ...227\274\354\203\211\354\262\264_9342.java" | 36 ------ ...2\254 \354\260\276\352\270\260_14426.java" | 75 ------------ 78 files changed, 3175 deletions(-) delete mode 100644 EunjiShin/.gitignore delete mode 100644 "EunjiShin/Binary_Search/[BOJ]\353\236\234\354\204\240\354\236\220\353\245\264\352\270\260_1654.java" delete mode 100644 "EunjiShin/Brute_Force/[BOJ] \354\202\254\355\203\225\352\262\214\354\236\204_3085.java" delete mode 100644 "EunjiShin/Brute_Force/[BOJ] \354\210\253\354\236\220\354\225\274\352\265\254_2503.java" delete mode 100644 "EunjiShin/Brute_Force/[BOJ] \354\234\240\353\240\210\354\271\264\354\235\264\353\241\240_10448.java" delete mode 100644 "EunjiShin/Brute_Force/[BOJ] \354\262\264\354\212\244\355\214\220 \353\213\244\354\213\234 \354\271\240\355\225\230\352\270\260_1018.java" delete mode 100644 "EunjiShin/DP/[BOJ]1,2,3\353\215\224\355\225\230\352\270\260_9095.java" delete mode 100644 "EunjiShin/DP/[BOJ]1\353\241\234 \353\247\214\353\223\244\352\270\260_1463.java" delete mode 100644 "EunjiShin/DP/[BOJ]2xN \355\203\200\354\235\274 \353\247\214\353\223\244\352\270\260_11727.java" delete mode 100644 "EunjiShin/DP/[BOJ]2xn \355\203\200\354\235\274\353\247\201_11726.java" delete mode 100644 "EunjiShin/DP/[BOJ]RGB\352\261\260\353\246\254_1149.java" delete mode 100644 "EunjiShin/DP/[BOJ]\352\260\200\354\236\245 \352\270\264 \354\246\235\352\260\200\355\225\230\353\212\224 \353\266\200\353\266\204 \354\210\230\354\227\264_11053.java" delete mode 100644 "EunjiShin/DP/[BOJ]\352\263\204\353\213\250\354\230\244\353\245\264\352\270\260_2579.java" delete mode 100644 "EunjiShin/Data_Structure/[BOJ]\352\264\204\355\230\270_9012.java" delete mode 100644 "EunjiShin/Data_Structure/[BOJ]\352\264\204\355\230\270\354\235\230 \352\260\222_2504.java" delete mode 100644 "EunjiShin/Data_Structure/[BOJ]\354\207\240\353\247\211\353\214\200\352\270\260_10799.java" delete mode 100644 "EunjiShin/Data_Structure/[BOJ]\354\212\244\355\203\235_10828.java" delete mode 100644 "EunjiShin/Data_Structure/[BOJ]\354\212\244\355\203\235\354\210\230\354\227\264_1874.java" delete mode 100644 "EunjiShin/Data_Structure/[PGS]_\354\213\240\352\263\240 \352\262\260\352\263\274 \353\260\233\352\270\260.java" delete mode 100644 "EunjiShin/Data_Structure/[PGS]_\355\217\260\354\274\223\353\252\254.java" delete mode 100644 "EunjiShin/Greedy/[BOJ] \354\210\230\353\246\254\352\263\265 \355\225\255\354\212\271_1449.java" delete mode 100644 "EunjiShin/Greedy/[BOJ] \355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225_1931.java" delete mode 100644 EunjiShin/Greedy/[BOJ]30_10610.java delete mode 100644 EunjiShin/Greedy/[BOJ]ATM_11399.java delete mode 100644 "EunjiShin/Greedy/[BOJ]\353\217\231\354\240\2040_11047.java" delete mode 100644 "EunjiShin/Greedy/[BOJ]\354\210\230 \353\254\266\352\270\260_1744.java" delete mode 100644 "EunjiShin/Greedy/[BOJ]\354\236\203\354\226\264\353\262\204\353\246\260 \352\264\204\355\230\270_1541.java" delete mode 100644 "EunjiShin/Implementation/[BOJ] \353\271\227\353\254\274_14719.java" delete mode 100644 "EunjiShin/Implementation/[BOJ]\353\213\244\354\235\214 \354\210\234\354\227\264_10972.java" delete mode 100644 "EunjiShin/Implementation/[BOJ]\353\213\250\354\226\264 \353\222\244\354\247\221\352\270\260 2_17413.java" delete mode 100644 "EunjiShin/Implementation/[BOJ]\353\252\250\353\223\240 \354\210\234\354\227\264_10974.java" delete mode 100644 "EunjiShin/Implementation/[BOJ]\354\235\264\354\240\204 \354\210\234\354\227\264_10973.java" delete mode 100644 "EunjiShin/Implementation/[BOJ]\354\247\221\355\225\251_11723.java" delete mode 100644 "EunjiShin/Implementation/[BOJ]\355\231\200\354\210\230 \355\231\200\353\246\255 \355\230\270\354\204\235_20164.java" delete mode 100644 "EunjiShin/Implementation/[ETC] \352\260\234\354\235\270\354\240\225\353\263\264 \354\210\230\354\247\221 \354\234\240\355\232\250 \352\270\260\352\260\204.java" delete mode 100644 "EunjiShin/Implementation/[PGS]\354\243\274\354\260\250 \354\232\224\352\270\210 \352\263\204\354\202\260.java" delete mode 100644 EunjiShin/LeetCode/1.two-sum.java delete mode 100644 EunjiShin/LeetCode/100.same-tree.java delete mode 100644 EunjiShin/LeetCode/101.symmetric-tree.java delete mode 100644 EunjiShin/LeetCode/102.binary-tree-level-order-traversal.java delete mode 100644 EunjiShin/LeetCode/104.maximum-depth-of-binary-tree.java delete mode 100644 EunjiShin/LeetCode/121.best-time-to-buy-and-sell-stock.java delete mode 100644 EunjiShin/LeetCode/13.roman-to-integer.java delete mode 100644 EunjiShin/LeetCode/14.longest-common-prefix.java delete mode 100644 EunjiShin/LeetCode/142.linked-list-cycle-ii.java delete mode 100644 EunjiShin/LeetCode/1480.running-sum-of-1-d-array.java delete mode 100644 EunjiShin/LeetCode/20.valid-parentheses.java delete mode 100644 EunjiShin/LeetCode/205.isomorphic-strings.java delete mode 100644 EunjiShin/LeetCode/206.reverse-linked-list.java delete mode 100644 EunjiShin/LeetCode/21.merge-two-sorted-lists.java delete mode 100644 EunjiShin/LeetCode/24.swap-nodes-in-pairs.java delete mode 100644 EunjiShin/LeetCode/26.remove-duplicates-from-sorted-array.java delete mode 100644 EunjiShin/LeetCode/27.remove-element.java delete mode 100644 EunjiShin/LeetCode/278.first-bad-version.java delete mode 100644 EunjiShin/LeetCode/28.find-the-index-of-the-first-occurrence-in-a-string.java delete mode 100644 EunjiShin/LeetCode/35.search-insert-position.java delete mode 100644 EunjiShin/LeetCode/392.is-subsequence.java delete mode 100644 EunjiShin/LeetCode/409.longest-palindrome.java delete mode 100644 EunjiShin/LeetCode/58.length-of-last-word.java delete mode 100644 EunjiShin/LeetCode/589.n-ary-tree-preorder-traversal.java delete mode 100644 EunjiShin/LeetCode/66.plus-one.java delete mode 100644 EunjiShin/LeetCode/67.add-binary.java delete mode 100644 EunjiShin/LeetCode/69.sqrt-x.java delete mode 100644 EunjiShin/LeetCode/70.climbing-stairs.java delete mode 100644 EunjiShin/LeetCode/704.binary-search.java delete mode 100644 EunjiShin/LeetCode/724.find-pivot-index.java delete mode 100644 EunjiShin/LeetCode/83.remove-duplicates-from-sorted-list.java delete mode 100644 EunjiShin/LeetCode/876.middle-of-the-linked-list.java delete mode 100644 EunjiShin/LeetCode/88.merge-sorted-array.java delete mode 100644 EunjiShin/LeetCode/9.palindrome-number.java delete mode 100644 EunjiShin/LeetCode/94.binary-tree-inorder-traversal.java delete mode 100644 EunjiShin/LeetCode/[LTC]26.java delete mode 100644 EunjiShin/LeetCode/[LTC]58.java delete mode 100644 EunjiShin/LeetCode/[LTC]80.java delete mode 100644 "EunjiShin/String/[BOJ] \353\223\243\353\263\264\354\236\241_1764.java" delete mode 100644 "EunjiShin/String/[BOJ] \353\254\270\354\236\220\354\227\264 \354\247\221\355\225\251_14425.java" delete mode 100644 "EunjiShin/String/[BOJ] \354\227\274\354\203\211\354\262\264_9342.java" delete mode 100644 "EunjiShin/String/[BOJ] \354\240\221\353\221\220\354\202\254 \354\260\276\352\270\260_14426.java" diff --git a/EunjiShin/.gitignore b/EunjiShin/.gitignore deleted file mode 100644 index e43b0f988..000000000 --- a/EunjiShin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.DS_Store diff --git "a/EunjiShin/Binary_Search/[BOJ]\353\236\234\354\204\240\354\236\220\353\245\264\352\270\260_1654.java" "b/EunjiShin/Binary_Search/[BOJ]\353\236\234\354\204\240\354\236\220\353\245\264\352\270\260_1654.java" deleted file mode 100644 index d788ef9c8..000000000 --- "a/EunjiShin/Binary_Search/[BOJ]\353\236\234\354\204\240\354\236\220\353\245\264\352\270\260_1654.java" +++ /dev/null @@ -1,40 +0,0 @@ -package DataStructure; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.StringTokenizer; - -public class CutLan { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - int k = Integer.parseInt(st.nextToken()); - int n = Integer.parseInt(st.nextToken()); - - // 가진 랜선의 길이 입력 - ArrayList list = new ArrayList<>(); - for (int i = 0; i < k; i++) { - list.add(Integer.parseInt(br.readLine())); - } - - long start = 1; - long end = Collections.max(list); - long mid; - - while (start <= end) { - int cnt = 0; - mid = (start + end) / 2; - for (int i = 0; i < list.size(); i++) { - cnt += (list.get(i) / mid); - } - if (cnt < n) end = mid -1; - else start = mid + 1; - } - System.out.println(end); - - } -} diff --git "a/EunjiShin/Brute_Force/[BOJ] \354\202\254\355\203\225\352\262\214\354\236\204_3085.java" "b/EunjiShin/Brute_Force/[BOJ] \354\202\254\355\203\225\352\262\214\354\236\204_3085.java" deleted file mode 100644 index f064d39f5..000000000 --- "a/EunjiShin/Brute_Force/[BOJ] \354\202\254\355\203\225\352\262\214\354\236\204_3085.java" +++ /dev/null @@ -1,79 +0,0 @@ -package boj; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class CandyGame { - - static char[][] board; - static int N; - static int max_candy = 1; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - N = Integer.parseInt(br.readLine()); - board = new char[N][N]; - - for(int i = 0; i < N; i++) { - String str = br.readLine(); - for (int j = 0; j < board[i].length; j++) { - board[i][j] = str.charAt(j); - } - } - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - if (j+1 < N) { - swap(i, j, i, j+1); - searchRow(); - searchCol(); - swap(i, j+1, i, j); - } - if (i+1 < N) { - swap(i, j, i+1, j); - searchRow(); - searchCol(); - swap(i+1, j, i, j); - } - } - } - - System.out.println(max_candy); - } - - public static void swap(int x1, int y1, int x2, int y2) { - char tmp = board[x1][y1]; - board[x1][y1] = board[x2][y2]; - board[x2][y2] = tmp; - } - - public static void searchRow() { - for (int i = 0; i < N; i++) { - int cnt = 1; - for (int j = 0; j < N-1; j++) { - if (board[i][j] != board[i][j+1]) { - cnt = 1; - } else { - cnt++; - max_candy = Math.max(max_candy, cnt); - } - } - } - } - - public static void searchCol() { - for (int i = 0; i < N; i++) { - int cnt = 1; - for (int j = 0; j < N-1; j++) { - if (board[j][i] != board[j+1][i]) { - cnt = 1; - } else { - cnt++; - max_candy = Math.max(max_candy, cnt); - } - } - } - } - -} diff --git "a/EunjiShin/Brute_Force/[BOJ] \354\210\253\354\236\220\354\225\274\352\265\254_2503.java" "b/EunjiShin/Brute_Force/[BOJ] \354\210\253\354\236\220\354\225\274\352\265\254_2503.java" deleted file mode 100644 index 752395564..000000000 --- "a/EunjiShin/Brute_Force/[BOJ] \354\210\253\354\236\220\354\225\274\352\265\254_2503.java" +++ /dev/null @@ -1,110 +0,0 @@ -package boj; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.List; -import java.util.StringTokenizer; - -public class NumberBaseball { - - static int N; - static int result; - static List inputs = new ArrayList<>(); - - public static class Input { - int number; - int strike; - int ball; - - public Input(int number, int strike, int ball) { - this.number = number; - this.strike = strike; - this.ball = ball; - } - - } - - public static class Number { - - int hundreds; - int tens; - int units; - - public Number(int number) { - this.hundreds = number / 100; - this.tens = number / 10 - (hundreds * 10); - this.units = number % 10; - } - - public boolean hasZero() { - return hundreds == 0 || tens == 0 || units == 0; - } - - public boolean hasSameNumber() { - return hundreds == tens || hundreds == units || tens == units; - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st; - N = Integer.parseInt(br.readLine()); - - for (int i = 0; i < N; i++) { - st = new StringTokenizer(br.readLine()); - addInput(st); - } - - for (int i = 123; i < 988; i++) { - Number number = new Number(i); - if (!number.hasZero() && !number.hasSameNumber() && checkPositive(number)) { - result++; - } - } - - System.out.println(result); - } - - public static void addInput(StringTokenizer st) { - int number = Integer.parseInt(st.nextToken()); - int strike = Integer.parseInt(st.nextToken()); - int ball = Integer.parseInt(st.nextToken()); - - inputs.add(new Input(number, strike, ball)); - } - - public static boolean checkPositive(Number number) { - for (int i = 0; i < inputs.size(); i++) { - Input input = inputs.get(i); - Number check = new Number(input.number); - - int strike = strike(number, check); - int ball = ball(number, check); - - if (input.strike != strike || input.ball != ball) { - return false; - } - } - return true; - } - - public static int strike(Number number, Number check) { - int count = 0; - if (number.hundreds == check.hundreds) count++; - if (number.tens == check.tens) count++; - if (number.units == check.units) count++; - return count; - } - - public static int ball(Number number, Number check) { - int count = 0; - if (number.hundreds == check.tens || number.hundreds == check.units) count++; - if (number.tens == check.hundreds || number.tens == check.units) count++; - if (number.units == check.hundreds || number.units == check.tens) count++; - return count; - } - -} diff --git "a/EunjiShin/Brute_Force/[BOJ] \354\234\240\353\240\210\354\271\264\354\235\264\353\241\240_10448.java" "b/EunjiShin/Brute_Force/[BOJ] \354\234\240\353\240\210\354\271\264\354\235\264\353\241\240_10448.java" deleted file mode 100644 index 9fbf68a19..000000000 --- "a/EunjiShin/Brute_Force/[BOJ] \354\234\240\353\240\210\354\271\264\354\235\264\353\241\240_10448.java" +++ /dev/null @@ -1,43 +0,0 @@ -package boj; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -// 10448 -public class Eureka { - - static int[] triNum = new int[45]; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - makeTriNum(); - - for(int i = 0; i < T; i++) { - int n = Integer.parseInt(br.readLine()); - System.out.println(isEureka(n)); - } - - } - - public static void makeTriNum() { - for(int i = 1; i < 45; i++) { - triNum[i] = i * (i+1) / 2; - } - } - - public static int isEureka(int n) { - for (int i = 1; i < 45; i++) { - for (int j = 1; j < 45; j++) { - for (int k = 1; k < 45; k++) { - int sum = triNum[i] + triNum[j] + triNum[k]; - if (sum == n) return 1; - } - } - } - return 0; - } - -} diff --git "a/EunjiShin/Brute_Force/[BOJ] \354\262\264\354\212\244\355\214\220 \353\213\244\354\213\234 \354\271\240\355\225\230\352\270\260_1018.java" "b/EunjiShin/Brute_Force/[BOJ] \354\262\264\354\212\244\355\214\220 \353\213\244\354\213\234 \354\271\240\355\225\230\352\270\260_1018.java" deleted file mode 100644 index 7d7e97f8e..000000000 --- "a/EunjiShin/Brute_Force/[BOJ] \354\262\264\354\212\244\355\214\220 \353\213\244\354\213\234 \354\271\240\355\225\230\352\270\260_1018.java" +++ /dev/null @@ -1,61 +0,0 @@ -package boj; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class ChessBoard{ - - static int N; - static int M; - static boolean[][] board; - static int min = 64; - - public static void main(String[] args) throws IOException { - makeBoard(); - - for (int i = 0; i < N-7; i++) { - for (int j = 0; j < M-7; j++) { - find(i, j); - } - } - - System.out.println(min); - } - - public static void makeBoard() throws IOException{ - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - board = new boolean[N][M]; - - for (int i = 0; i < N; i++) { - String str = br.readLine(); - for (int j = 0; j < M; j++) { - board[i][j] = str.charAt(j) == 'B'; - } - } - } - - public static void find(int x, int y) { - int count = 0; - int width = x + 8; - int height = y + 8; - boolean color = board[x][y]; - - for (int i = x; i < width; i++) { - for (int j = y; j < height; j++) { - if (board[i][j] != color) { - count++; - } - color = !color; // 다음 칸 색 반전 - } - color = !color; // 다음 줄 색 반전 - } - count = Math.min(count, 64 - count); // 칠할 때, 첫 번째 칸부터 반대 색으로 칠할 수 있으므로 반대 케이스의 count도 구한다. - min = Math.min(count, min); - } - -} diff --git "a/EunjiShin/DP/[BOJ]1,2,3\353\215\224\355\225\230\352\270\260_9095.java" "b/EunjiShin/DP/[BOJ]1,2,3\353\215\224\355\225\230\352\270\260_9095.java" deleted file mode 100644 index bafd5f859..000000000 --- "a/EunjiShin/DP/[BOJ]1,2,3\353\215\224\355\225\230\352\270\260_9095.java" +++ /dev/null @@ -1,29 +0,0 @@ -package DP; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class PlusOneTwoThree { - - static int dp[] = new int[11]; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int t = Integer.parseInt(br.readLine()); - - dp[1] = 1; - dp[2] = 2; - dp[3] = 4; - - for (int i = 4; i < 11; i++) { - dp[i] = dp[i-1] + dp[i-2] + dp[i-3]; - } - - while (t-- > 0) { - int n = Integer.parseInt(br.readLine()); - System.out.println(dp[n]); - } - } - -} diff --git "a/EunjiShin/DP/[BOJ]1\353\241\234 \353\247\214\353\223\244\352\270\260_1463.java" "b/EunjiShin/DP/[BOJ]1\353\241\234 \353\247\214\353\223\244\352\270\260_1463.java" deleted file mode 100644 index 7f287653c..000000000 --- "a/EunjiShin/DP/[BOJ]1\353\241\234 \353\247\214\353\223\244\352\270\260_1463.java" +++ /dev/null @@ -1,32 +0,0 @@ -package dp; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class MakeOne { - - static int[] dp; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - dp = new int[N+1]; - dp[0] = dp[1] = 0; - makeOne(N); - System.out.println(dp[N]); - } - - public static void makeOne(int n) { - for (int i = 2; i <= n; i++) { - dp[i] = dp[i-1] + 1; - if (i % 2 == 0) { - dp[i] = Math.min(dp[i], dp[i/2] + 1); - } - if (i % 3 == 0) { - dp[i] = Math.min(dp[i], dp[i/3] + 1); - } - } - } - -} diff --git "a/EunjiShin/DP/[BOJ]2xN \355\203\200\354\235\274 \353\247\214\353\223\244\352\270\260_11727.java" "b/EunjiShin/DP/[BOJ]2xN \355\203\200\354\235\274 \353\247\214\353\223\244\352\270\260_11727.java" deleted file mode 100644 index 684ec7616..000000000 --- "a/EunjiShin/DP/[BOJ]2xN \355\203\200\354\235\274 \353\247\214\353\223\244\352\270\260_11727.java" +++ /dev/null @@ -1,24 +0,0 @@ -package dp; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Tiling { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - int[] dp = new int[1001]; - - dp[1] = 1; - dp[2] = 3; - - for (int i = 3; i <= N; i++) { - dp[i] = (2 * dp[i-2] + dp[i-1]) % 10007; - } - - System.out.println(dp[N]); - } - -} diff --git "a/EunjiShin/DP/[BOJ]2xn \355\203\200\354\235\274\353\247\201_11726.java" "b/EunjiShin/DP/[BOJ]2xn \355\203\200\354\235\274\353\247\201_11726.java" deleted file mode 100644 index 0716806c3..000000000 --- "a/EunjiShin/DP/[BOJ]2xn \355\203\200\354\235\274\353\247\201_11726.java" +++ /dev/null @@ -1,25 +0,0 @@ -package DP; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Tiling { - - public static void main(String[] args) throws IOException { - BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(bufferedReader.readLine()); - - int[] dp = new int[1001]; - - dp[1] = 1; - dp[2] = 2; - - for (int i = 3; i <= n; i++) { - dp[i] = (dp[i-1] + dp[i-2]) % 10007; - } - - System.out.println(dp[n]); - } - -} diff --git "a/EunjiShin/DP/[BOJ]RGB\352\261\260\353\246\254_1149.java" "b/EunjiShin/DP/[BOJ]RGB\352\261\260\353\246\254_1149.java" deleted file mode 100644 index ce7ab5564..000000000 --- "a/EunjiShin/DP/[BOJ]RGB\352\261\260\353\246\254_1149.java" +++ /dev/null @@ -1,52 +0,0 @@ -package dp; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class RGB { - - static int N = 0; - static int R = 0; - static int G = 1; - static int B = 2; - static int[][] cost; - static int[][] dp; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st; - - N = Integer.parseInt(br.readLine()); - cost = new int[N][3]; - dp = new int[N][3]; - - for (int i = 0; i < N; i++) { - st = new StringTokenizer(br.readLine(), " "); - cost[i][R] = Integer.parseInt(st.nextToken()); - cost[i][G] = Integer.parseInt(st.nextToken()); - cost[i][B] = Integer.parseInt(st.nextToken()); - } - - initDP(); - paint(); - - System.out.println(Math.min(Math.min(cost[N-1][R], cost[N-1][G]), cost[N-1][B])); - } - - public static void initDP() { - dp[0][R] = cost[0][R]; - dp[0][G] = cost[0][G]; - dp[0][B] = cost[0][B]; - } - - public static void paint() { - for (int i = 1; i < N; i++) { - cost[i][R] += Math.min(cost[i-1][G], cost[i-1][B]); - cost[i][G] += Math.min(cost[i-1][R], cost[i-1][B]); - cost[i][B] += Math.min(cost[i-1][R], cost[i-1][G]); - } - } - -} diff --git "a/EunjiShin/DP/[BOJ]\352\260\200\354\236\245 \352\270\264 \354\246\235\352\260\200\355\225\230\353\212\224 \353\266\200\353\266\204 \354\210\230\354\227\264_11053.java" "b/EunjiShin/DP/[BOJ]\352\260\200\354\236\245 \352\270\264 \354\246\235\352\260\200\355\225\230\353\212\224 \353\266\200\353\266\204 \354\210\230\354\227\264_11053.java" deleted file mode 100644 index 1dfcaf292..000000000 --- "a/EunjiShin/DP/[BOJ]\352\260\200\354\236\245 \352\270\264 \354\246\235\352\260\200\355\225\230\353\212\224 \353\266\200\353\266\204 \354\210\230\354\227\264_11053.java" +++ /dev/null @@ -1,36 +0,0 @@ -package DP; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class MostLongSequence { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - int[] array = new int[n+1]; - int[] dp = new int[n+1]; - - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - - for (int i = 0; i < n; i++) { - array[i] = Integer.parseInt(st.nextToken()); - // 모든 수열의 크기는 최소 1이니까 dp도 전부 초기화시켜주기 - dp[i] = 1; - } - - int max = dp[0]; - - for (int i = 1; i <= n; i++) { - for (int j = 0; j < i; j++) { - if (array[i] > array[j] && dp[i] < dp[j] + 1) { - dp[i] = dp[j] + 1; - } - } - if (max < dp[i]) max = dp[i]; - } - System.out.println(max); - } -} diff --git "a/EunjiShin/DP/[BOJ]\352\263\204\353\213\250\354\230\244\353\245\264\352\270\260_2579.java" "b/EunjiShin/DP/[BOJ]\352\263\204\353\213\250\354\230\244\353\245\264\352\270\260_2579.java" deleted file mode 100644 index fd454cc07..000000000 --- "a/EunjiShin/DP/[BOJ]\352\263\204\353\213\250\354\230\244\353\245\264\352\270\260_2579.java" +++ /dev/null @@ -1,30 +0,0 @@ -package dp; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class ClimbStairs { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - int[] stair = new int[301]; - int[] dp = new int[301]; - - for (int i = 1; i <= N; i++) { - stair[i] = Integer.parseInt(br.readLine()); - } - - dp[1] = stair[1]; - dp[2] = stair[1] + stair[2]; - dp[3] = Math.max(stair[1], stair[2]) + stair[3]; - - for (int i = 4; i <= N; i++) { - dp[i] = Math.max(dp[i-3] + stair[i-1], dp[i-2]) + stair[i]; - } - - System.out.println(dp[N]); - } - -} diff --git "a/EunjiShin/Data_Structure/[BOJ]\352\264\204\355\230\270_9012.java" "b/EunjiShin/Data_Structure/[BOJ]\352\264\204\355\230\270_9012.java" deleted file mode 100644 index f4faac96e..000000000 --- "a/EunjiShin/Data_Structure/[BOJ]\352\264\204\355\230\270_9012.java" +++ /dev/null @@ -1,36 +0,0 @@ -package DataStructure; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Bracket { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - Integer t = Integer.parseInt(br.readLine()); - - for (int i = 0; i left) { - System.out.println("NO"); - return; - } - } - - if (right != left) System.out.println("NO"); - else System.out.println("YES"); - } - -} diff --git "a/EunjiShin/Data_Structure/[BOJ]\352\264\204\355\230\270\354\235\230 \352\260\222_2504.java" "b/EunjiShin/Data_Structure/[BOJ]\352\264\204\355\230\270\354\235\230 \352\260\222_2504.java" deleted file mode 100644 index 9ae65f81b..000000000 --- "a/EunjiShin/Data_Structure/[BOJ]\352\264\204\355\230\270\354\235\230 \352\260\222_2504.java" +++ /dev/null @@ -1,65 +0,0 @@ -package DataStructure; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Stack; - -public class BracketValue { - public static void main(String[] args) throws IOException { - - BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); - String str = bf.readLine(); - Stack stack = new Stack<>(); - int result = 0; - int value = 1; - - for (int i = 0; i < str.length(); i++) { - char ch = str.charAt(i); - // (, [ 일 경우 스택에 넣고 값 - if (ch == '(') { - stack.push(ch); - value *= 2; - } - else if (ch == '[') { - stack.push(ch); - value *= 3; - } - - // ) 일 경우 - else if (ch == ')') { - // 1-0. 스택이 비어있다면 (처음부터 )나온 경우) or 앞에 매칭된게 (가 아닌 경우 - if (stack.empty() || stack.peek() != '(') { - System.out.println(0); - return; - } - // 1-1. 바로 앞 index가 (라면 쌍 생겼으니까 더하면 됨 - else if (str.charAt(i-1) == '(') result += value; - // 1-2. 바로 앞 index는 아닌데 스택 Peek이 ( 인 경우 -> '([]())' 같이 겹쳐있는 케이스 - // 위 else if에서 안에 겹쳐있는 값들 result 더해줄 때, 밖의 괄호 값이 곱해져 있는 상태에서 더한것! 나눠줘야 함 - value /= 2; - // 매칭쌍 (stack.peek) 삭제 - stack.pop(); - } - - // 1과 동일 - else if (ch == ']') { - if (stack.empty() || stack.peek() != '[') { - System.out.println(0); - return; - } - else if (str.charAt(i-1) == '[') result += value; - value /= 3; - stack.pop(); - } - } - - // ()()( 같은 경우, stack에 값이 남아있음 -> 이 케이스도 0으로 출력 필요 - if (!stack.empty()) { - System.out.println(0); - } else { - System.out.println(result); - } - } - - } diff --git "a/EunjiShin/Data_Structure/[BOJ]\354\207\240\353\247\211\353\214\200\352\270\260_10799.java" "b/EunjiShin/Data_Structure/[BOJ]\354\207\240\353\247\211\353\214\200\352\270\260_10799.java" deleted file mode 100644 index cf731c4bb..000000000 --- "a/EunjiShin/Data_Structure/[BOJ]\354\207\240\353\247\211\353\214\200\352\270\260_10799.java" +++ /dev/null @@ -1,28 +0,0 @@ -package DataStructure; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Stack; - -public class IronStick { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String str = br.readLine(); - Stack stack = new Stack<>(); - int result = 0; - - for (int i=0; i stack = new Stack<>(); - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - int N = Integer.parseInt(br.readLine()); - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - switch (st.nextToken()) { - case "push" : - stack.push(Integer.parseInt(st.nextToken())); - break; - case "pop" : - if (stack.empty()) sb.append("-1" + "\n"); - else { - sb.append(stack.peek()).append("\n"); - stack.pop(); - } - break; - case "size" : - sb.append(stack.size()).append("\n"); - break; - case "empty" : - if (stack.empty()) sb.append("1" + "\n"); - else sb.append("0" + "\n"); - break; - case "top" : - if (stack.empty()) sb.append("-1" + "\n"); - else sb.append(stack.peek()).append("\n"); - break; - default: - break; - } - } - System.out.println(sb); - } -} \ No newline at end of file diff --git "a/EunjiShin/Data_Structure/[BOJ]\354\212\244\355\203\235\354\210\230\354\227\264_1874.java" "b/EunjiShin/Data_Structure/[BOJ]\354\212\244\355\203\235\354\210\230\354\227\264_1874.java" deleted file mode 100644 index fce60efa6..000000000 --- "a/EunjiShin/Data_Structure/[BOJ]\354\212\244\355\203\235\354\210\230\354\227\264_1874.java" +++ /dev/null @@ -1,37 +0,0 @@ -package DataStructure; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Stack; - -public class StackSequence { - - public static void main(String[] args) throws IOException { - Stack stack = new Stack<>(); - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - int n = Integer.parseInt(br.readLine()); - int start = 0; - while(n-- > 0) { - int num = Integer.parseInt(br.readLine()); - if (num > start) { - for (int i = start; i < num; i++) { - stack.push(i+1); - sb.append("+").append("\n"); - } - start = num; - } - else if (stack.peek() != num) { - System.out.println("NO"); - return; - } - - stack.pop(); - sb.append("-").append("\n"); - } - - System.out.println(sb); - } - } - diff --git "a/EunjiShin/Data_Structure/[PGS]_\354\213\240\352\263\240 \352\262\260\352\263\274 \353\260\233\352\270\260.java" "b/EunjiShin/Data_Structure/[PGS]_\354\213\240\352\263\240 \352\262\260\352\263\274 \353\260\233\352\270\260.java" deleted file mode 100644 index c26b77678..000000000 --- "a/EunjiShin/Data_Structure/[PGS]_\354\213\240\352\263\240 \352\262\260\352\263\274 \353\260\233\352\270\260.java" +++ /dev/null @@ -1,59 +0,0 @@ -package DataStructure; - -import java.util.HashMap; -import java.util.HashSet; - -public class ReportResult { - - public static void main(String[] args) { - String[] id_list = new String[] { "muzi", "frodo", "apeach", "neo" }; - String[] report = new String[] { "muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"}; - int k = 2; - int[] answer = solution(id_list, report, k); - for (int i = 0; i < answer.length; i++) { - System.out.println(answer[i]); - } - return; - } - - public static int[] solution(String[] id_list, String[] report, int k) { - int[] answer = new int[id_list.length]; - - HashMap> reportedMap = new HashMap<>(); - HashMap resultMap = new HashMap<>(); - - for(int i = 0; i < report.length; i++) { - String reporter = report[i].split(" ")[0]; - String reported = report[i].split(" ")[1]; - - if (reportedMap.containsKey(reporter)) { - if (reportedMap.get(reporter).contains(reported)) continue; - else { - reportedMap.get(reporter).add(reported); - } - } else { - reportedMap.put(reporter, new HashSet() {{ - add(reported); - }}); - } - - if (resultMap.containsKey(reported)) { - resultMap.put(reported, resultMap.get(reported) + 1); - } else { - resultMap.put(reported, 1); - } - } - - for (String reported : resultMap.keySet()) { - int cnt = resultMap.get(reported); - if (cnt >= k) { - for (int i = 0; i < id_list.length; i++) { - if (reportedMap.containsKey(id_list[i]) && reportedMap.get(id_list[i]).contains(reported)) - answer[i]++; - } - } - } - return answer; - } - } - diff --git "a/EunjiShin/Data_Structure/[PGS]_\355\217\260\354\274\223\353\252\254.java" "b/EunjiShin/Data_Structure/[PGS]_\355\217\260\354\274\223\353\252\254.java" deleted file mode 100644 index 845ca9abf..000000000 --- "a/EunjiShin/Data_Structure/[PGS]_\355\217\260\354\274\223\353\252\254.java" +++ /dev/null @@ -1,38 +0,0 @@ -package DataStructure; - -import java.io.IOException; -import java.util.HashMap; - -public class Phoneketmon { - - public static void main(String[] args) throws IOException { - int[] nums = new int[] { 3, 3, 3, 2, 2, 4 }; - int answer = solution(nums); - System.out.println(answer); - } - - public static int solution(int[] nums) { - int answer = 0; - HashMap resultMap = new HashMap<>(); - - for (int i = 0; i < nums.length; i++) { - int type = nums[i]; - if (resultMap.containsKey(type)) { - resultMap.put(type, resultMap.get(type) + 1); - } else { - resultMap.put(type, 1); - } - } - - int max = nums.length / 2; - int size = resultMap.keySet().size(); - if (size > max) { - answer = max; - }else { - answer = size; - } - - return answer; - } - -} diff --git "a/EunjiShin/Greedy/[BOJ] \354\210\230\353\246\254\352\263\265 \355\225\255\354\212\271_1449.java" "b/EunjiShin/Greedy/[BOJ] \354\210\230\353\246\254\352\263\265 \355\225\255\354\212\271_1449.java" deleted file mode 100644 index d029b2de5..000000000 --- "a/EunjiShin/Greedy/[BOJ] \354\210\230\353\246\254\352\263\265 \355\225\255\354\212\271_1449.java" +++ /dev/null @@ -1,36 +0,0 @@ -package greedy.boj; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class Repairman { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - int count = 1; - - int N = Integer.parseInt(st.nextToken()); - int L = Integer.parseInt(st.nextToken()); - int[] pipes = new int[N]; - st = new StringTokenizer(br.readLine(), " "); - for (int i = 0; i < N; i++) { - pipes[i] = Integer.parseInt(st.nextToken()); - } - - Arrays.sort(pipes); - - double position = pipes[0] - 0.5; - for (int i = 1; i < N; i++) { - if (position + L < pipes[i] + 0.5) { - count++; - position = pipes[i] - 0.5; - } - } - System.out.println(count); - } - -} diff --git "a/EunjiShin/Greedy/[BOJ] \355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225_1931.java" "b/EunjiShin/Greedy/[BOJ] \355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225_1931.java" deleted file mode 100644 index 7be5d91a2..000000000 --- "a/EunjiShin/Greedy/[BOJ] \355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225_1931.java" +++ /dev/null @@ -1,49 +0,0 @@ -package Greedy; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class MeetRoom { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st; - int N = Integer.parseInt(br.readLine()); - int[][] array = new int[N][2]; - - // DESCRIBE: 제일 첫번째 인덱스는 자동으로 선택되니까 1부터 카운트 시작 - int result = 1; - - // DESCRIBE: 회의 시간 입력 받기 - for(int i = 0; i < N; i++) { - st = new StringTokenizer(br.readLine(), " "); - array[i][0] = Integer.parseInt(st.nextToken()); - array[i][1] = Integer.parseInt(st.nextToken()); - } - - // DESCRIBE: 종료 시간 기준으로 오름차순 정렬 - Arrays.sort(array, (o1, o2) -> { - if(o1[1] == o2[1]) { - return o1[0] - o2[0]; - }else { - return o1[1] - o2[1]; - } - }); - - // DESCRIBE: 현재 인덱스의 시작 시간이 이전 인덱스의 종료 시간보다 크거나 같다면 카운트 - int prevEndTime = array[0][1]; - for (int i = 1; i < N; i++) { - if (array[i][0] >= prevEndTime) { - result += 1; - prevEndTime = array[i][1]; - } - } - - System.out.println(result); - - } - -} diff --git a/EunjiShin/Greedy/[BOJ]30_10610.java b/EunjiShin/Greedy/[BOJ]30_10610.java deleted file mode 100644 index e39711ffa..000000000 --- a/EunjiShin/Greedy/[BOJ]30_10610.java +++ /dev/null @@ -1,34 +0,0 @@ -package Greedy; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; - -public class Thirteen { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String N = br.readLine(); - - int sum = 0; - // DESCRIBE: 3의 배수 조건 충족하는지 카운트 - for (int i = 0; i < N.length(); i++) { - sum += N.charAt(i) - '0'; - } - - // DESCRIBE: 3의 배수 조건과 10의 배수 조건 충족 못하면 바로 -1 - if (!N.contains("0") || sum % 3 != 0) { - System.out.println(-1); - } - // DESCRIBE: 충족하면 최대값 찾기 - else { - char[] chars = N.toCharArray(); - Arrays.sort(chars); - for (int i = chars.length-1; i >= 0; i--) { - System.out.print(chars[i]); - } - } - } - -} diff --git a/EunjiShin/Greedy/[BOJ]ATM_11399.java b/EunjiShin/Greedy/[BOJ]ATM_11399.java deleted file mode 100644 index f5a1c37ba..000000000 --- a/EunjiShin/Greedy/[BOJ]ATM_11399.java +++ /dev/null @@ -1,36 +0,0 @@ -package Greedy; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class ATM { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - int[] array = new int[N]; - - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - for (int i = 0; i< N; i++) { - array[i] = Integer.parseInt(st.nextToken()); - } - - // DESCRIBE: 오름차순 정렬 - Arrays.sort(array); - - // DESCRIBE: 누적합 구하기 - int waitTime = 0; - int totalWaitTime = 0; - for (int i = 0; i= 0; i--) { - if (array[i] <= K) { - answer += (K/array[i]); - K %= array[i]; - } - } - - System.out.println(answer); - } - -} diff --git "a/EunjiShin/Greedy/[BOJ]\354\210\230 \353\254\266\352\270\260_1744.java" "b/EunjiShin/Greedy/[BOJ]\354\210\230 \353\254\266\352\270\260_1744.java" deleted file mode 100644 index b23f551b2..000000000 --- "a/EunjiShin/Greedy/[BOJ]\354\210\230 \353\254\266\352\270\260_1744.java" +++ /dev/null @@ -1,58 +0,0 @@ -package Greedy; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -public class TieNum { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - List plusArray = new ArrayList<>(); - List minusArray = new ArrayList<>(); - - int result = 0; - - // DESCRIBE: 수 입력 - for (int i = 0; i < N; i++) { - Integer num = Integer.parseInt(br.readLine()); - if (num <= 0) minusArray.add(num); - else plusArray.add(num); - } - - // DESCRIBE: 양수 배열은 내림차순 정렬, 음수 배열은 오름차순 정렬 - Collections.sort(plusArray, Comparator.reverseOrder()); - Collections.sort(minusArray); - - // DESCRIBE: 수 묶기 - result += tieNum(plusArray); - result += tieNum(minusArray); - - System.out.println(result); - - } - - public static int tieNum(List numList) { - int result = 0; - int size = numList.size(); - int j = 0; - while (j < size) { - // DESCRIBE: 전체 크기가 짝수일 때 마지막 수가 아니라면, 그리고 현재랑 다음이 1이 아니라면 곱해서 더하기 - if (j+1 < size && numList.get(j) != 1 && numList.get(j+1) != 1) { - result += numList.get(j++) * numList.get(j++); - } - - // DESCRIBE: 아니라면 각각 더하기 - else { - result += numList.get(j++); - } - } - return result; - } - -} diff --git "a/EunjiShin/Greedy/[BOJ]\354\236\203\354\226\264\353\262\204\353\246\260 \352\264\204\355\230\270_1541.java" "b/EunjiShin/Greedy/[BOJ]\354\236\203\354\226\264\353\262\204\353\246\260 \352\264\204\355\230\270_1541.java" deleted file mode 100644 index 73cc7e712..000000000 --- "a/EunjiShin/Greedy/[BOJ]\354\236\203\354\226\264\353\262\204\353\246\260 \352\264\204\355\230\270_1541.java" +++ /dev/null @@ -1,34 +0,0 @@ -package Greedy; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class LostBracket { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String str = br.readLine(); - StringTokenizer st = new StringTokenizer(str, "-"); - - int result = 0; - boolean isFirst = true; - while (st.hasMoreTokens()) { - String subStr = st.nextToken(); - int subResult = 0; - StringTokenizer plusSt = new StringTokenizer(subStr, "+"); - while (plusSt.hasMoreTokens()) { - subResult += Integer.parseInt(plusSt.nextToken()); - } - if (isFirst) { - result += subResult; - isFirst = false; - } - else result -= subResult; - } - - System.out.println(result); - } - -} diff --git "a/EunjiShin/Implementation/[BOJ] \353\271\227\353\254\274_14719.java" "b/EunjiShin/Implementation/[BOJ] \353\271\227\353\254\274_14719.java" deleted file mode 100644 index 7b75526e0..000000000 --- "a/EunjiShin/Implementation/[BOJ] \353\271\227\353\254\274_14719.java" +++ /dev/null @@ -1,56 +0,0 @@ -package Implementation; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Rain { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - - // 높이 길이 입력 - int height = Integer.parseInt(st.nextToken()); - int width = Integer.parseInt(st.nextToken()); - int result = 0; - - // 빗물이 찬 높이 입력 - int[] array = new int[width]; - st = new StringTokenizer(br.readLine(), " "); - for (int i = 0; i < width; i++) { - array[i] = Integer.parseInt(st.nextToken()); - } - - // 빗물 고인 부분 구하기 - for (int i = 0; i < width; i++) { - int current = array[i]; - int leftMax = getLeftMax(array, i); - int rightMax = getRightMax(array, i); - if (leftMax > current && rightMax > current) result += Math.min(leftMax, rightMax) - current; - } - - System.out.println(result); - - } - - // 왼쪽에서 제일 높은 친구 구하기 - private static int getLeftMax(int[] array, int index) { - int max = 0; - for (int i = 0; i < index; i++) { - max = Math.max(max, array[i]); - } - return max; - } - - // 오른쪽에서 제일 높은 친구 구하기 - private static int getRightMax(int[] array, int index) { - int max = 0; - for (int i = index + 1; i < array.length; i++) { - max = Math.max(max, array[i]); - } - return max; - } - -} diff --git "a/EunjiShin/Implementation/[BOJ]\353\213\244\354\235\214 \354\210\234\354\227\264_10972.java" "b/EunjiShin/Implementation/[BOJ]\353\213\244\354\235\214 \354\210\234\354\227\264_10972.java" deleted file mode 100644 index 74199bb72..000000000 --- "a/EunjiShin/Implementation/[BOJ]\353\213\244\354\235\214 \354\210\234\354\227\264_10972.java" +++ /dev/null @@ -1,75 +0,0 @@ -package Implementation; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.util.StringTokenizer; - -public class NextPermutation { - - public static int N; - public static int[] array; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - StringBuilder sb = new StringBuilder(); - - N = Integer.parseInt(br.readLine()); - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - array = new int[N]; - for (int i = 0; i < N; i++) { - array[i] = Integer.parseInt(st.nextToken()); - } - - // 다음 순열 찾기 - if (nextPermutation()) { - for (int i = 0; i < N; i++) { - sb.append(array[i] + " "); - } - } else { - sb.append("-1"); - } - - bw.write(sb.toString()); - bw.close(); - br.close(); - - } - - public static boolean nextPermutation() { - - // 뒤에서부터 내려오기 - int i = N-1; - while (i > 0 && array[i-1] >= array[i]) { - i--; - } - - if (i <= 0) return false; - - // swap할 인덱스 구하기 위해 한번 더! - int j = N-1; - while (array[j] <= array[i-1]) { - j--; - } - - // 스왑 - int temp = array[i-1]; - array[i-1] = array[j]; - array[j] = temp; - - // i부터 끝까지 수열 뒤집기 - int lastIndex = N-1; - while (i < lastIndex) { - int swapTemp = array[i]; - array[i] = array[lastIndex]; - array[lastIndex] = swapTemp; - i++; lastIndex--; - } - - return true; - } - -} diff --git "a/EunjiShin/Implementation/[BOJ]\353\213\250\354\226\264 \353\222\244\354\247\221\352\270\260 2_17413.java" "b/EunjiShin/Implementation/[BOJ]\353\213\250\354\226\264 \353\222\244\354\247\221\352\270\260 2_17413.java" deleted file mode 100644 index 7a40d3998..000000000 --- "a/EunjiShin/Implementation/[BOJ]\353\213\250\354\226\264 \353\222\244\354\247\221\352\270\260 2_17413.java" +++ /dev/null @@ -1,51 +0,0 @@ -package Implementation; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Stack; - -public class WordFlip { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String s = br.readLine(); - Stack stack = new Stack<>(); - - boolean flag = false; - - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == '<') { - while (!stack.empty()) { - System.out.print(stack.pop()); - } - flag = true; - } - - else if (s.charAt(i) == '>') { - flag = false; - System.out.print(s.charAt(i)); - } - - else if (s.charAt(i) == ' ' && !flag) { - while (!stack.empty()) { - System.out.print(stack.pop()); - } - System.out.print(s.charAt(i)); - } - - else if (!flag){ - stack.push(s.charAt(i)); - } - - else if (flag) { - System.out.print(s.charAt(i)); - } - } - - while (!stack.empty()) { - System.out.print(stack.pop()); - } - } - -} diff --git "a/EunjiShin/Implementation/[BOJ]\353\252\250\353\223\240 \354\210\234\354\227\264_10974.java" "b/EunjiShin/Implementation/[BOJ]\353\252\250\353\223\240 \354\210\234\354\227\264_10974.java" deleted file mode 100644 index bb47a0b77..000000000 --- "a/EunjiShin/Implementation/[BOJ]\353\252\250\353\223\240 \354\210\234\354\227\264_10974.java" +++ /dev/null @@ -1,74 +0,0 @@ -package Implementation; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; - -public class AllPermutation { - - public static int N; - public static int[] array; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - StringBuilder sb = new StringBuilder(); - - N = Integer.parseInt(br.readLine()); - array = new int[N]; - for (int i = 0; i < N; i++) { - array[i] = i+1; - sb.append(array[i] + " "); - } - sb.append("\n"); - - // 다음 순열 찾기 - while (nextPermutation()) { - for (int i = 0; i < N; i++) { - sb.append(array[i] + " "); - } - sb.append("\n"); - } - - bw.write(sb.toString()); - bw.close(); - br.close(); - - } - - public static boolean nextPermutation() { - - // 뒤에서부터 내려오기 - int i = N-1; - while (i > 0 && array[i-1] >= array[i]) { - i--; - } - - if (i <= 0) return false; - - // swap할 인덱스 구하기 위해 한번 더! - int j = N-1; - while (array[j] <= array[i-1]) { - j--; - } - - // 스왑 - int temp = array[i-1]; - array[i-1] = array[j]; - array[j] = temp; - - // i부터 끝까지 수열 뒤집기 - int lastIndex = N-1; - while (i < lastIndex) { - int swapTemp = array[i]; - array[i] = array[lastIndex]; - array[lastIndex] = swapTemp; - i++; lastIndex--; - } - - return true; - } - -} diff --git "a/EunjiShin/Implementation/[BOJ]\354\235\264\354\240\204 \354\210\234\354\227\264_10973.java" "b/EunjiShin/Implementation/[BOJ]\354\235\264\354\240\204 \354\210\234\354\227\264_10973.java" deleted file mode 100644 index ce04eaec2..000000000 --- "a/EunjiShin/Implementation/[BOJ]\354\235\264\354\240\204 \354\210\234\354\227\264_10973.java" +++ /dev/null @@ -1,74 +0,0 @@ -package Implementation; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.util.StringTokenizer; - -public class BeforePermutation { - - public static int N; - public static int[] array; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - StringBuilder sb = new StringBuilder(); - - N = Integer.parseInt(br.readLine()); - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - array = new int[N]; - for (int i = 0; i < N; i++) { - array[i] = Integer.parseInt(st.nextToken()); - } - - // 다음 순열 찾기 - if (beforePermutation()) { - for (int i = 0; i < N; i++) { - sb.append(array[i] + " "); - } - } else { - sb.append("-1"); - } - - bw.write(sb.toString()); - bw.close(); - br.close(); - - } - - public static boolean beforePermutation() { - - // 뒤에서부터 내려오기 - int i = N-1; - while (i > 0 && array[i-1] < array[i]) { - i--; - } - - if (i <= 0) return false; - - // swap할 인덱스 구하기 위해 한번 더! - int j = N-1; - while (array[j] > array[i-1]) { - j--; - } - - // 스왑 - int temp = array[i-1]; - array[i-1] = array[j]; - array[j] = temp; - - // i부터 끝까지 수열 뒤집기 - int lastIndex = N-1; - while (i < lastIndex) { - int swapTemp = array[i]; - array[i] = array[lastIndex]; - array[lastIndex] = swapTemp; - i++; lastIndex--; - } - - return true; - } -} diff --git "a/EunjiShin/Implementation/[BOJ]\354\247\221\355\225\251_11723.java" "b/EunjiShin/Implementation/[BOJ]\354\247\221\355\225\251_11723.java" deleted file mode 100644 index 2ad07b9d0..000000000 --- "a/EunjiShin/Implementation/[BOJ]\354\247\221\355\225\251_11723.java" +++ /dev/null @@ -1,58 +0,0 @@ -package Implementation; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.util.StringTokenizer; - -public class Set { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - StringBuilder sb = new StringBuilder(); - StringTokenizer st; - int M = Integer.parseInt(br.readLine()); - int S = 0; - - for (int i = 0; i < M; i++) { - st = new StringTokenizer(br.readLine(), " "); - String operator = st.nextToken(); - int operand; - - switch (operator) { - case "add": - operand = Integer.parseInt(st.nextToken()); - S = S | (1 << (operand-1)); - break; - case "remove" : - operand = Integer.parseInt(st.nextToken()); - S = S & ~(1 << (operand-1)); - break; - case "check" : - operand = Integer.parseInt(st.nextToken()); - sb.append((S & (1 << (operand-1))) != 0 ? "1\n" : "0\n"); - break; - case "toggle" : - operand = Integer.parseInt(st.nextToken()); - S = S ^ (1<<(operand-1)); - break; - case "all" : - S = S | (~0); - break; - case "empty" : - S &= 0; - break; - default: - break; - } - } - - bw.write(sb.toString()); - bw.close(); - br.close(); - } - -} diff --git "a/EunjiShin/Implementation/[BOJ]\355\231\200\354\210\230 \355\231\200\353\246\255 \355\230\270\354\204\235_20164.java" "b/EunjiShin/Implementation/[BOJ]\355\231\200\354\210\230 \355\231\200\353\246\255 \355\230\270\354\204\235_20164.java" deleted file mode 100644 index e33f1b4e5..000000000 --- "a/EunjiShin/Implementation/[BOJ]\355\231\200\354\210\230 \355\231\200\353\246\255 \355\230\270\354\204\235_20164.java" +++ /dev/null @@ -1,63 +0,0 @@ -package Implementation; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class HolicHoseokOdd { - - static int MAX = Integer.MIN_VALUE; - static int MIN = Integer.MAX_VALUE; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String n = br.readLine(); - split(n, 0); - System.out.printf("%d %d", MIN, MAX); - } - - // 입력 숫자 자르면서 새로운 숫자 만드는 메소드 - private static void split(String n, int cnt) { - // 일단 현재 숫자에서 홀수 개수 구하기 - cnt += countOdd(n); - int length = n.length(); - int newNumber; - - // 한자리면 암것도 못하고 종료 - if (length == 1) { - // 한 글자 될 때마다 최대, 최소 갱신 - MAX = Math.max(MAX, cnt); - MIN = Math.min(MIN, cnt); - } - // 두자리면 두개로 나눠서 새로웃 숫자 구하기 - else if (length == 2) { - newNumber = (n.charAt(0) - '0') + (n.charAt(1) - '0'); - split(Integer.toString(newNumber), cnt); - } - // 세자리 이상이면 최소&최대 찾을 때까지 임의의 위치에서 잘라서 홀수 개수 구하기 - else { - // 가능한 경우 다 해보면서 최대최소 갱신하면 됨 - for (int i = 0; i <= length - 3; i++) { - for (int j = i+1; j <= length - 2; j++) { - String s1 = n.substring(0, i+1); - String s2 = n.substring(i+1, j+1); - String s3 = n.substring(j+1, length); - newNumber = Integer.parseInt(s1) + Integer.parseInt(s2) + Integer.parseInt(s3); - split(Integer.toString(newNumber), cnt); - } - } - - } - - } - - // 자리수별 홀수 개수 세는 메소드 - private static int countOdd(String n) { - int count = 0; - for (int i = 0; i < n.length(); i++) { - if ((n.charAt(i) - '0') % 2 == 1) count++; - } - return count; - } - -} diff --git "a/EunjiShin/Implementation/[ETC] \352\260\234\354\235\270\354\240\225\353\263\264 \354\210\230\354\247\221 \354\234\240\355\232\250 \352\270\260\352\260\204.java" "b/EunjiShin/Implementation/[ETC] \352\260\234\354\235\270\354\240\225\353\263\264 \354\210\230\354\247\221 \354\234\240\355\232\250 \352\270\260\352\260\204.java" deleted file mode 100644 index da911e8f1..000000000 --- "a/EunjiShin/Implementation/[ETC] \352\260\234\354\235\270\354\240\225\353\263\264 \354\210\230\354\247\221 \354\234\240\355\232\250 \352\270\260\352\260\204.java" +++ /dev/null @@ -1,49 +0,0 @@ -package other; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -class Solution { - - public static final int FIRST_YEAR = 2000; - public static final int FIRST_MONTH = 1; - public static final int FIRST_DAY = 1; - public static final int MAX_DATE = 28; - - public int[] solution(String today, String[] terms, String[] privacies) { - List answer = new ArrayList<>(); - - Map termMap = makeTermMap(terms); - int todayInt = makeDateToInt(today); - for (int i = 0; i < privacies.length; i++) { - String privacy = privacies[i]; - String[] array = privacy.split(" "); - int check = termMap.get(array[1]) * 28; - int day = makeDateToInt(array[0]); - if (day + check <= todayInt) { - answer.add(i + 1); - } - } - return answer.stream().mapToInt(i -> i).toArray(); - } - - public static Map makeTermMap(String[] terms) { - Map termMap = new HashMap<>(); - for (String str : terms) { - String[] array = str.split(" "); - termMap.put(array[0], Integer.parseInt(array[1])); - } - return termMap; - } - - public static int makeDateToInt(String date) { - String[] array = date.split("\\."); - int year = (Integer.parseInt(array[0]) - FIRST_YEAR) * 12 * MAX_DATE; - int month = (Integer.parseInt(array[1]) - FIRST_MONTH) * MAX_DATE; - int day = Integer.parseInt(array[2]) - FIRST_DAY; - return year + month + day; - } - -} diff --git "a/EunjiShin/Implementation/[PGS]\354\243\274\354\260\250 \354\232\224\352\270\210 \352\263\204\354\202\260.java" "b/EunjiShin/Implementation/[PGS]\354\243\274\354\260\250 \354\232\224\352\270\210 \352\263\204\354\202\260.java" deleted file mode 100644 index b41c9a88c..000000000 --- "a/EunjiShin/Implementation/[PGS]\354\243\274\354\260\250 \354\232\224\352\270\210 \352\263\204\354\202\260.java" +++ /dev/null @@ -1,85 +0,0 @@ -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.TreeMap; - -public class ParkFees { - - public static void main(String[] args) throws IOException { - int[] fees = {1, 461, 1, 10}; - String[] records = { - "00:00 1234 IN" - }; - int[] answer = solution(fees, records); - for (int i = 0; i < answer.length; i++) { - System.out.println(answer[i]); - } - } - - public static int[] solution(int[] fees, String[] records) { - // DESCRIBE: record에서 각 차량별 기록 분리 - LinkedHashMap> carRecordMap = new LinkedHashMap<>(); - for (String record : records) { - String[] recordInfo = record.split(" "); - Integer carNumber = Integer.parseInt(recordInfo[1]); - carRecordMap.computeIfAbsent(carNumber, k -> new ArrayList()).add(recordInfo[0]); - } - - int[] answer = new int[carRecordMap.size()]; - - HashMap carFeeMap = new HashMap<>(); - for (Entry> entry : carRecordMap.entrySet()) { - // DESCRIBE: records가 시간순이니까 바로 뽑아내도 됨 - ArrayList recordInfo = entry.getValue(); - // DESCRIBE: 기록 수가 짝수면 입출차 쌍이 맞는거고, 홀수면 마지막 기록은 23:59에 출차한거임 - int fee = calculateFee(fees, recordInfo); - carFeeMap.put(entry.getKey(), fee); - } - - // DESCRIBE: 차량 번호 작은 순으로 정렬해야 함 (오름차순) - int i = 0; - Map sortedMap = new TreeMap<>(carFeeMap); - for (Integer car : sortedMap.keySet()) { - answer[i] = sortedMap.get(car); - i++; - } - return answer; - } - - public static int calculateFee(int[] fees, ArrayList records) { - int fee = 0; - int timeDiff = 0; - - if (records.size() % 2 != 0) { - records.add("23:59"); - } - - for (int i = 0; i < records.size(); i+=2) { - String inputTime = records.get(i); - String outputTime = records.get(i+1); - timeDiff += getTimeDifference(inputTime, outputTime); - } - - if (timeDiff > fees[0]) { - fee += fees[1] + (int) Math.ceil((double)(timeDiff - fees[0]) / fees[2]) * fees[3]; - } else { - fee += fees[1]; - } - - return fee; - } - - public static int getTimeDifference(String inputTime, String outputTime) { - String[] input = inputTime.split(":"); - String[] output = outputTime.split(":"); - - int startMinute = Integer.parseInt(input[0].trim()) * 60 + Integer.parseInt(input[1].trim()); - int endMinute = Integer.parseInt(output[0].trim()) * 60 + Integer.parseInt(output[1].trim()); - - return endMinute - startMinute; - } - -} diff --git a/EunjiShin/LeetCode/1.two-sum.java b/EunjiShin/LeetCode/1.two-sum.java deleted file mode 100644 index 7ac5f7229..000000000 --- a/EunjiShin/LeetCode/1.two-sum.java +++ /dev/null @@ -1,30 +0,0 @@ -package Easy; - -import java.util.HashMap; -import java.util.Map; - -/* - * @lc app=leetcode id=1 lang=java - * - * [1] Two Sum - */ - -// @lc code=start -class Solution { - public int[] twoSum(int[] nums, int target) { - int[] result = new int[2]; - Map numMap = new HashMap<>(); - - for (int i = 0; i < nums.length; i++) { - if (numMap.containsKey(target - nums[i])) { - result[0] = numMap.get(target - nums[i]); - result[1] = i; - return result; - } - numMap.put(nums[i], i); - } - - return result; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/100.same-tree.java b/EunjiShin/LeetCode/100.same-tree.java deleted file mode 100644 index c94270b56..000000000 --- a/EunjiShin/LeetCode/100.same-tree.java +++ /dev/null @@ -1,36 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=100 lang=java - * - * [100] Same Tree - */ - -// @lc code=start -/** - * Definition for a binary tree node. - * public class TreeNode { - * int val; - * TreeNode left; - * TreeNode right; - * TreeNode() {} - * TreeNode(int val) { this.val = val; } - * TreeNode(int val, TreeNode left, TreeNode right) { - * this.val = val; - * this.left = left; - * this.right = right; - * } - * } - */ -class Solution { - public boolean isSameTree(TreeNode p, TreeNode q) { - if (p == null && q == null) - return true; - if (p == null || q == null) - return false; - if (p.val != q.val) - return false; - return isSameTree(p.left, q.left) && isSameTree(p.right, q.right); - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/101.symmetric-tree.java b/EunjiShin/LeetCode/101.symmetric-tree.java deleted file mode 100644 index 20454d481..000000000 --- a/EunjiShin/LeetCode/101.symmetric-tree.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * @lc app=leetcode id=101 lang=java - * - * [101] Symmetric Tree - */ - -// @lc code=start -/** - * Definition for a binary tree node. - * public class TreeNode { - * int val; - * TreeNode left; - * TreeNode right; - * TreeNode() {} - * TreeNode(int val) { this.val = val; } - * TreeNode(int val, TreeNode left, TreeNode right) { - * this.val = val; - * this.left = left; - * this.right = right; - * } - * } - */ -class Solution { - public boolean isSymmetric(TreeNode root) { - return isSame(root.left, root.right); - } - - public boolean isSame(TreeNode left, TreeNode right) { - if (left == null && right == null) - return true; - if (left == null || right == null) - return false; - if (left.val != right.val) - return false; - return isSame(left.left, right.right) && isSame(left.right, right.left); - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/102.binary-tree-level-order-traversal.java b/EunjiShin/LeetCode/102.binary-tree-level-order-traversal.java deleted file mode 100644 index f142c4e68..000000000 --- a/EunjiShin/LeetCode/102.binary-tree-level-order-traversal.java +++ /dev/null @@ -1,52 +0,0 @@ -package Easy; - -import java.util.ArrayList; -import java.util.List; - -import javax.swing.tree.TreeNode; - -/* - * @lc app=leetcode id=102 lang=java - * - * [102] Binary Tree Level Order Traversal - */ - -// @lc code=start -/** - * Definition for a binary tree node. - * public class TreeNode { - * int val; - * TreeNode left; - * TreeNode right; - * TreeNode() {} - * TreeNode(int val) { this.val = val; } - * TreeNode(int val, TreeNode left, TreeNode right) { - * this.val = val; - * this.left = left; - * this.right = right; - * } - * } - */ -class Solution { - - List> list = new ArrayList<>(); - - public List> levelOrder(TreeNode root) { - dfs(root, 0); - return list; - } - - private void dfs(TreeNode node, int level) { - if (node == null) - return; - if (level >= list.size()) { - list.add(new ArrayList<>()); - } - - list.get(level).add(node.val); - dfs(node.left, level + 1); - dfs(node.right, level + 1); - } - -} -// @lc code=end diff --git a/EunjiShin/LeetCode/104.maximum-depth-of-binary-tree.java b/EunjiShin/LeetCode/104.maximum-depth-of-binary-tree.java deleted file mode 100644 index 936f6345e..000000000 --- a/EunjiShin/LeetCode/104.maximum-depth-of-binary-tree.java +++ /dev/null @@ -1,40 +0,0 @@ -package Easy; - -import javax.swing.tree.TreeNode; - -/* - * @lc app=leetcode id=104 lang=java - * - * [104] Maximum Depth of Binary Tree - */ - -// @lc code=start -/** - * Definition for a binary tree node. - * public class TreeNode { - * int val; - * TreeNode left; - * TreeNode right; - * TreeNode() {} - * TreeNode(int val) { this.val = val; } - * TreeNode(int val, TreeNode left, TreeNode right) { - * this.val = val; - * this.left = left; - * this.right = right; - * } - * } - */ -class Solution { - public int maxDepth(TreeNode root) { - return countDepth(root, 0); - } - - private int countDepth(TreeNode node, int depth) { - if (node == null) - return depth; - int leftDepth = countDepth(node.left, depth + 1); - int rightDepth = countDepth(node.right, depth + 1); - return Math.max(leftDepth, rightDepth); - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/121.best-time-to-buy-and-sell-stock.java b/EunjiShin/LeetCode/121.best-time-to-buy-and-sell-stock.java deleted file mode 100644 index fae65ec1c..000000000 --- a/EunjiShin/LeetCode/121.best-time-to-buy-and-sell-stock.java +++ /dev/null @@ -1,29 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=121 lang=java - * - * [121] Best Time to Buy and Sell Stock - */ - -// @lc code=start -class Solution { - public int maxProfit(int[] prices) { - - int current = prices[0]; - int maxProfit = 0; - - for (int i = 1; i < prices.length; i++) { - int next = prices[i]; - if (current > next) { - current = next; - } else { - maxProfit = Math.max(maxProfit, next - current); - } - } - - return maxProfit; - - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/13.roman-to-integer.java b/EunjiShin/LeetCode/13.roman-to-integer.java deleted file mode 100644 index 49d5b05e6..000000000 --- a/EunjiShin/LeetCode/13.roman-to-integer.java +++ /dev/null @@ -1,57 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=13 lang=java - * - * [13] Roman to Integer - */ - -// @lc code=start -class Solution { - - public int romanToInt(String s) { - int result = 0; - int n = s.length(); - int[] romanArray = makeRomanArray(s, n); - - for (int i = 0; i < n - 1; i++) { - if (romanArray[i] < romanArray[i + 1]) - result -= romanArray[i]; - else - result += romanArray[i]; - } - return result + romanArray[n - 1]; - } - - private static int[] makeRomanArray(String s, int n) { - int[] array = new int[n]; - for (int i = 0; i < n; i++) { - switch (s.charAt(i)) { - case 'I': - array[i] = 1; - break; - case 'V': - array[i] = 5; - break; - case 'X': - array[i] = 10; - break; - case 'L': - array[i] = 50; - break; - case 'C': - array[i] = 100; - break; - case 'D': - array[i] = 500; - break; - case 'M': - array[i] = 1000; - break; - } - } - return array; - } - -} -// @lc code=end diff --git a/EunjiShin/LeetCode/14.longest-common-prefix.java b/EunjiShin/LeetCode/14.longest-common-prefix.java deleted file mode 100644 index 086c3e886..000000000 --- a/EunjiShin/LeetCode/14.longest-common-prefix.java +++ /dev/null @@ -1,30 +0,0 @@ -package Easy; - -import java.util.Arrays; -import java.util.Comparator; - -/* - * @lc app=leetcode id=14 lang=java - * - * [14] Longest Common Prefix - */ - -// @lc code=start -class Solution { - - public String longestCommonPrefix(String[] strs) { - if (strs.length == 1) { - return strs[0]; - } - - String result = strs[0]; - for (int i = 1; i < strs.length; i++) { - while (strs[i].indexOf(result) != 0) { - result = result.substring(0, result.length() - 1); - } - } - return result; - } - -} -// @lc code=end diff --git a/EunjiShin/LeetCode/142.linked-list-cycle-ii.java b/EunjiShin/LeetCode/142.linked-list-cycle-ii.java deleted file mode 100644 index f0e069517..000000000 --- a/EunjiShin/LeetCode/142.linked-list-cycle-ii.java +++ /dev/null @@ -1,40 +0,0 @@ -package Easy; - -import java.util.HashSet; -import java.util.Set; - -/* - * @lc app=leetcode id=142 lang=java - * - * [142] Linked List Cycle II - */ - -// @lc code=start -/** - * Definition for singly-linked list. - * class ListNode { - * int val; - * ListNode next; - * ListNode(int x) { - * val = x; - * next = null; - * } - * } - */ -public class Solution { - public ListNode detectCycle(ListNode head) { - - Set set = new HashSet<>(); - - while (head != null) { - if (!set.add(head)) { - return head; - } - head = head.next; - } - - return null; - - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/1480.running-sum-of-1-d-array.java b/EunjiShin/LeetCode/1480.running-sum-of-1-d-array.java deleted file mode 100644 index cbff9972b..000000000 --- a/EunjiShin/LeetCode/1480.running-sum-of-1-d-array.java +++ /dev/null @@ -1,23 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=1480 lang=java - * - * [1480] Running Sum of 1d Array - */ - -// @lc code=start -class Solution { - public int[] runningSum(int[] nums) { - int[] result = new int[nums.length]; - for (int i = nums.length - 1; i >= 0; i--) { - int sum = 0; - for (int j = 0; j <= i; j++) { - sum += nums[j]; - } - result[i] = sum; - } - return result; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/20.valid-parentheses.java b/EunjiShin/LeetCode/20.valid-parentheses.java deleted file mode 100644 index 3c4b08d55..000000000 --- a/EunjiShin/LeetCode/20.valid-parentheses.java +++ /dev/null @@ -1,41 +0,0 @@ -package Easy; - -import java.util.HashMap; -import java.util.Map; -import java.util.Stack; - -/* - * @lc app=leetcode id=20 lang=java - * - * [20] Valid Parentheses - */ - -// @lc code=start -class Solution { - - private static final Map bracketMap = new HashMap() { - { - put('(', ')'); - put('{', '}'); - put('[', ']'); - } - }; - - public boolean isValid(String s) { - Stack stack = new Stack(); - for (char ch : s.toCharArray()) { - if (ch == '(' || ch == '{' || ch == '[') { - stack.push(ch); - } else if (stack.isEmpty()) { - return false; - } else { - if (bracketMap.get(stack.pop()) != ch) { - return false; - } - } - } - return stack.isEmpty(); - } - -} -// @lc code=end diff --git a/EunjiShin/LeetCode/205.isomorphic-strings.java b/EunjiShin/LeetCode/205.isomorphic-strings.java deleted file mode 100644 index 2c687b1d7..000000000 --- a/EunjiShin/LeetCode/205.isomorphic-strings.java +++ /dev/null @@ -1,32 +0,0 @@ -package Easy; - -import java.util.HashMap; -import java.util.Map; - -/* - * @lc app=leetcode id=205 lang=java - * - * [205] Isomorphic Strings - */ - -// @lc code=start -class Solution { - public boolean isIsomorphic(String s, String t) { - Map map = new HashMap<>(); - for (int i = 0; i < s.length(); i++) { - Character sc = s.charAt(i); - Character tc = t.charAt(i); - - // 한 글자에는 하나의 글자만 매핑될 수 있음 - if (!map.containsKey(sc) && map.containsValue(tc)) { - return false; - } - if (map.containsKey(sc) && !map.get(sc).equals(tc)) { - return false; - } - map.put(sc, tc); - } - return true; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/206.reverse-linked-list.java b/EunjiShin/LeetCode/206.reverse-linked-list.java deleted file mode 100644 index e19ea9a0c..000000000 --- a/EunjiShin/LeetCode/206.reverse-linked-list.java +++ /dev/null @@ -1,35 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=206 lang=java - * - * [206] Reverse Linked List - */ - -// @lc code=start -/** - * Definition for singly-linked list. - * public class ListNode { - * int val; - * ListNode next; - * ListNode() {} - * ListNode(int val) { this.val = val; } - * ListNode(int val, ListNode next) { this.val = val; this.next = next; } - * } - */ -class Solution { - public ListNode reverseList(ListNode head) { - return reverse(head, null); - } - - public ListNode reverse(ListNode head, ListNode newHead) { - if (head == null) - return newHead; - ListNode nextNode = head.next; - head.next = newHead; - newHead = head; - head = nextNode; - return reverse(head, newHead); - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/21.merge-two-sorted-lists.java b/EunjiShin/LeetCode/21.merge-two-sorted-lists.java deleted file mode 100644 index e6bb3a4f9..000000000 --- a/EunjiShin/LeetCode/21.merge-two-sorted-lists.java +++ /dev/null @@ -1,46 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=21 lang=java - * - * [21] Merge Two Sorted Lists - */ - -// @lc code=start -/** - * Definition for singly-linked list. - * public class ListNode { - * int val; - * ListNode next; - * ListNode() {} - * ListNode(int val) { this.val = val; } - * ListNode(int val, ListNode next) { this.val = val; this.next = next; } - * } - */ -class Solution { - public ListNode mergeTwoLists(ListNode list1, ListNode list2) { - if (list1 == null) - return list2; - if (list2 == null) - return list1; - - ListNode result = new ListNode(); - ListNode temp = result; - - while (list1 != null && list2 != null) { - if (list1.val < list2.val) { - temp.next = list1; - list1 = list1.next; - } else { - temp.next = list2; - list2 = list2.next; - } - temp = temp.next; - } - - temp.next = (list1 == null) ? list2 : list1; - - return result.next; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/24.swap-nodes-in-pairs.java b/EunjiShin/LeetCode/24.swap-nodes-in-pairs.java deleted file mode 100644 index 135f24ac4..000000000 --- a/EunjiShin/LeetCode/24.swap-nodes-in-pairs.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * @lc app=leetcode id=24 lang=java - * - * [24] Swap Nodes in Pairs - */ - -// @lc code=start -/** - * Definition for singly-linked list. - * public class ListNode { - * int val; - * ListNode next; - * ListNode() {} - * ListNode(int val) { this.val = val; } - * ListNode(int val, ListNode next) { this.val = val; this.next = next; } - * } - */ -class Solution { - public ListNode swapPairs(ListNode head) { - if (head == null || head.next == null) { - return head; - } - ListNode n = head.next; - head.next = swapPairs(head.next.next); - n.next = head; - return n; - } -} -// @lc code=end - diff --git a/EunjiShin/LeetCode/26.remove-duplicates-from-sorted-array.java b/EunjiShin/LeetCode/26.remove-duplicates-from-sorted-array.java deleted file mode 100644 index eb66d4092..000000000 --- a/EunjiShin/LeetCode/26.remove-duplicates-from-sorted-array.java +++ /dev/null @@ -1,22 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=26 lang=java - * - * [26] Remove Duplicates from Sorted Array - */ - -// @lc code=start -class Solution { - public int removeDuplicates(int[] nums) { - int k = 1; - - for (int i = 0; i < nums.length - 1; i++) { - if (nums[i] != nums[i + 1]) { - nums[k++] = nums[i + 1]; - } - } - return k; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/27.remove-element.java b/EunjiShin/LeetCode/27.remove-element.java deleted file mode 100644 index b8b6cf74c..000000000 --- a/EunjiShin/LeetCode/27.remove-element.java +++ /dev/null @@ -1,23 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=27 lang=java - * - * [27] Remove Element - */ - -// @lc code=start -class Solution { - public int removeElement(int[] nums, int val) { - int k = 0; - - for (int i = 0; i < nums.length; i++) { - if (nums[i] != val) { - nums[k++] = nums[i]; - } - } - - return k; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/278.first-bad-version.java b/EunjiShin/LeetCode/278.first-bad-version.java deleted file mode 100644 index 89c44cc48..000000000 --- a/EunjiShin/LeetCode/278.first-bad-version.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * @lc app=leetcode id=278 lang=java - * - * [278] First Bad Version - */ - -// @lc code=start -/* The isBadVersion API is defined in the parent class VersionControl. - boolean isBadVersion(int version); */ - -public class Solution extends VersionControl { - public int firstBadVersion(int n) { - int left = 1; - int right = n; - int pivot = 0; - - while (left < right) { - pivot = left + (right - left) / 2; - if (isBadVersion(pivot)) - right = pivot; - else { - left = pivot + 1; - } - } - - return left; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/28.find-the-index-of-the-first-occurrence-in-a-string.java b/EunjiShin/LeetCode/28.find-the-index-of-the-first-occurrence-in-a-string.java deleted file mode 100644 index 05ce6cd8b..000000000 --- a/EunjiShin/LeetCode/28.find-the-index-of-the-first-occurrence-in-a-string.java +++ /dev/null @@ -1,28 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=28 lang=java - * - * [28] Find the Index of the First Occurrence in a String - */ - -// @lc code=start -class Solution { - // public int strStr(String haystack, String needle) { - // return haystack.indexOf(needle); - // } - - public int strStr(String haystack, String needle) { - if (haystack.equals(needle)) - return 0; - - for (int i = 0; i < haystack.length() - needle.length() + 1; i++) { - if (haystack.substring(i, i + needle.length()).equals(needle)) { - return i; - } - } - - return -1; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/35.search-insert-position.java b/EunjiShin/LeetCode/35.search-insert-position.java deleted file mode 100644 index 06d1d0ca7..000000000 --- a/EunjiShin/LeetCode/35.search-insert-position.java +++ /dev/null @@ -1,30 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=35 lang=java - * - * [35] Search Insert Position - */ - -// @lc code=start -class Solution { - public int searchInsert(int[] nums, int target) { - int start = 0; - int mid = 0; - int end = nums.length - 1; - - while (start <= end) { - mid = start + (end - start) / 2; - - if (nums[mid] == target) - return mid; - if (nums[mid] > target) - end = mid - 1; - if (nums[mid] < target) - start = mid + 1; - } - - return (nums[mid] > target) ? mid : mid + 1; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/392.is-subsequence.java b/EunjiShin/LeetCode/392.is-subsequence.java deleted file mode 100644 index 330957436..000000000 --- a/EunjiShin/LeetCode/392.is-subsequence.java +++ /dev/null @@ -1,28 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=392 lang=java - * - * [392] Is Subsequence - */ - -// @lc code=start -class Solution { - public boolean isSubsequence(String s, String t) { - int s_index = 0; - int s_length = s.length(); - - if (s_length == 0) - return true; - - for (int t_index = 0; t_index < t.length(); t_index++) { - if (s.charAt(s_index) == t.charAt(t_index)) { - s_index++; - } - if (s_index == s_length) - return true; - } - return false; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/409.longest-palindrome.java b/EunjiShin/LeetCode/409.longest-palindrome.java deleted file mode 100644 index a64d2a368..000000000 --- a/EunjiShin/LeetCode/409.longest-palindrome.java +++ /dev/null @@ -1,29 +0,0 @@ -package Easy; - -import java.util.HashSet; -import java.util.Set; - -/* - * @lc app=leetcode id=409 lang=java - * - * [409] Longest Palindrome - */ - -// @lc code=start -class Solution { - public int longestPalindrome(String s) { - Set set = new HashSet<>(); - int count = 0; - - for (int i = 0; i < s.length(); i++) { - char ch = s.charAt(i); - if (!set.add(ch)) { - set.remove(ch); - count++; - } - } - - return (set.isEmpty()) ? 2 * count : 2 * count + 1; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/58.length-of-last-word.java b/EunjiShin/LeetCode/58.length-of-last-word.java deleted file mode 100644 index 1ce25e797..000000000 --- a/EunjiShin/LeetCode/58.length-of-last-word.java +++ /dev/null @@ -1,27 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=58 lang=java - * - * [58] Length of Last Word - */ - -// @lc code=start -class Solution { - public int lengthOfLastWord(String s) { - int result = 0; - - for (int i = s.length() - 1; i >= 0; i--) { - if (s.charAt(i) == ' ') { - if (result != 0) { - return result; - } - } else { - result += 1; - } - } - - return result; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/589.n-ary-tree-preorder-traversal.java b/EunjiShin/LeetCode/589.n-ary-tree-preorder-traversal.java deleted file mode 100644 index 0f7593ad7..000000000 --- a/EunjiShin/LeetCode/589.n-ary-tree-preorder-traversal.java +++ /dev/null @@ -1,48 +0,0 @@ -package Easy; - -import java.util.ArrayList; -import java.util.List; - -/* - * @lc app=leetcode id=589 lang=java - * - * [589] N-ary Tree Preorder Traversal - */ - -// @lc code=start -/* -// Definition for a Node. -class Node { - public int val; - public List children; - - public Node() {} - - public Node(int _val) { - val = _val; - } - - public Node(int _val, List _children) { - val = _val; - children = _children; - } -}; -*/ - -class Solution { - public List preorder(Node root) { - List result = new ArrayList<>(); - dfs(root, result); - return result; - } - - private void dfs(Node root, List list) { - if (root == null) - return; - list.add(root.val); - for (Node child : root.children) { - dfs(child, list); - } - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/66.plus-one.java b/EunjiShin/LeetCode/66.plus-one.java deleted file mode 100644 index 17e9b4c72..000000000 --- a/EunjiShin/LeetCode/66.plus-one.java +++ /dev/null @@ -1,32 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=66 lang=java - * - * [66] Plus One - */ - -// @lc code=start -class Solution { - - public int[] plusOne(int[] digits) { - for (int i = digits.length - 1; i >= 0; i--) { - if (digits[i] < 9) { - digits[i] = digits[i] + 1; - return digits; - } - digits[i] = 0; - } - - // 여기 왔다는건 9999처럼 for문 끝날 때까지 return하지 못 한 경우 - return makeResult(digits); - } - - public static int[] makeResult(int[] digits) { - int[] result = new int[digits.length + 1]; - result[0] = 1; - return result; - } - -} -// @lc code=end diff --git a/EunjiShin/LeetCode/67.add-binary.java b/EunjiShin/LeetCode/67.add-binary.java deleted file mode 100644 index 90a1aa5e4..000000000 --- a/EunjiShin/LeetCode/67.add-binary.java +++ /dev/null @@ -1,47 +0,0 @@ -package Easy; - -import java.util.Arrays; - -/* - * @lc app=leetcode id=67 lang=java - * - * [67] Add Binary - */ - -// @lc code=start -class Solution { - - public String addBinary(String a, String b) { - int size = Math.max(a.length(), b.length()); - String newA = makeStr(a, size); - String newB = makeStr(b, size); - - boolean flag = false; - StringBuilder sb = new StringBuilder(); - - for (int i = size - 1; i >= 0; i--) { - int aNum = newA.charAt(i) - '0'; - int bNum = newB.charAt(i) - '0'; - int sum = aNum + bNum + (flag ? 1 : 0); - flag = sum > 1; - sb.append(sum % 2); - } - - if (flag) { - sb.append('1'); - } - - return sb.reverse().toString(); - } - - public static String makeStr(String str, int size) { - if (str.length() >= size) { - return str; - } - char[] chars = new char[size - str.length()]; - Arrays.fill(chars, '0'); - return new String(chars) + str; - } - -} -// @lc code=end diff --git a/EunjiShin/LeetCode/69.sqrt-x.java b/EunjiShin/LeetCode/69.sqrt-x.java deleted file mode 100644 index 1b93e5bcb..000000000 --- a/EunjiShin/LeetCode/69.sqrt-x.java +++ /dev/null @@ -1,41 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=69 lang=java - * - * [69] Sqrt(x) - */ - -// @lc code=start -class Solution { - // public int mySqrt(int x) { - // if (x < 2) { - // return x; - // } - - // long result = 1; - // while (result * result <= x) { - // ++result; - // } - // return (int) result - 1; - // } - - public int mySqrt(int x) { - if (x < 2) { - return x; - } - - int start = 1; - int end = x / 2; - while (start <= end) { - int mid = (start + end) / 2; - if ((long) mid * mid <= x) { - start = mid + 1; - } else { - end = mid - 1; - } - } - return end; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/70.climbing-stairs.java b/EunjiShin/LeetCode/70.climbing-stairs.java deleted file mode 100644 index e8540bbb2..000000000 --- a/EunjiShin/LeetCode/70.climbing-stairs.java +++ /dev/null @@ -1,24 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=70 lang=java - * - * [70] Climbing Stairs - */ - -// @lc code=start -class Solution { - public int climbStairs(int n) { - - int[] result = new int[n + 1]; - result[0] = 1; - result[1] = 1; - - for (int i = 2; i <= n; i++) { - result[i] += result[i - 1] + result[i - 2]; - } - - return result[n]; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/704.binary-search.java b/EunjiShin/LeetCode/704.binary-search.java deleted file mode 100644 index 920f43511..000000000 --- a/EunjiShin/LeetCode/704.binary-search.java +++ /dev/null @@ -1,29 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=704 lang=java - * - * [704] Binary Search - */ - -// @lc code=start -class Solution { - public int search(int[] nums, int target) { - int left = 0; - int right = nums.length - 1; - int pivot = 0; - - while (left <= right) { - pivot = (left + right) / 2; - if (nums[pivot] == target) - return pivot; - if (nums[pivot] > target) - right--; - if (nums[pivot] <= target) - left++; - } - - return -1; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/724.find-pivot-index.java b/EunjiShin/LeetCode/724.find-pivot-index.java deleted file mode 100644 index 6d0bb05e9..000000000 --- a/EunjiShin/LeetCode/724.find-pivot-index.java +++ /dev/null @@ -1,27 +0,0 @@ -package Easy; - -import java.util.Arrays; - -/* - * @lc app=leetcode id=724 lang=java - * - * [724] Find Pivot Index - */ - -// @lc code=start -class Solution { - public int pivotIndex(int[] nums) { - int totalSum = Arrays.stream(nums).sum(); - int leftSum = 0; - - for (int i = 0; i < nums.length; i++) { - int rightSum = totalSum - nums[i] - leftSum; - if (leftSum == rightSum) - return i; - leftSum += nums[i]; - } - - return -1; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/83.remove-duplicates-from-sorted-list.java b/EunjiShin/LeetCode/83.remove-duplicates-from-sorted-list.java deleted file mode 100644 index afd5e5d0f..000000000 --- a/EunjiShin/LeetCode/83.remove-duplicates-from-sorted-list.java +++ /dev/null @@ -1,33 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=83 lang=java - * - * [83] Remove Duplicates from Sorted List - */ - -// @lc code=start -/** - * Definition for singly-linked list. - * public class ListNode { - * int val; - * ListNode next; - * ListNode() {} - * ListNode(int val) { this.val = val; } - * ListNode(int val, ListNode next) { this.val = val; this.next = next; } - * } - */ - -class Solution { - - public ListNode deleteDuplicates(ListNode head) { - if (head == null || head.next == null) - return head; - head.next = deleteDuplicates(head.next); - if (head.val == head.next.val) { - return head.next; - } - return head; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/876.middle-of-the-linked-list.java b/EunjiShin/LeetCode/876.middle-of-the-linked-list.java deleted file mode 100644 index c754591f2..000000000 --- a/EunjiShin/LeetCode/876.middle-of-the-linked-list.java +++ /dev/null @@ -1,34 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=876 lang=java - * - * [876] Middle of the Linked List - */ - -// @lc code=start -/** - * Definition for singly-linked list. - * public class ListNode { - * int val; - * ListNode next; - * ListNode() {} - * ListNode(int val) { this.val = val; } - * ListNode(int val, ListNode next) { this.val = val; this.next = next; } - * } - */ -class Solution { - public ListNode middleNode(ListNode head) { - ListNode[] array = new ListNode[100]; - ListNode node = head; - int i = 0; - - while (node != null) { - array[i++] = node; - node = node.next; - } - - return array[i / 2]; - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/88.merge-sorted-array.java b/EunjiShin/LeetCode/88.merge-sorted-array.java deleted file mode 100644 index d79671555..000000000 --- a/EunjiShin/LeetCode/88.merge-sorted-array.java +++ /dev/null @@ -1,30 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=88 lang=java - * - * [88] Merge Sorted Array - */ - -// @lc code=start -class Solution { - public void merge(int[] nums1, int m, int[] nums2, int n) { - int lastIndex = m - 1; - int lastIndex2 = n - 1; - int totalIndex = m + n - 1; - - while (lastIndex2 >= 0) { - if (lastIndex >= 0) { - if (nums1[lastIndex] > nums2[lastIndex2]) { - nums1[totalIndex--] = nums1[lastIndex--]; - } else { - nums1[totalIndex--] = nums2[lastIndex2--]; - } - } else { - nums1[totalIndex--] = nums2[lastIndex2--]; - } - } - - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/9.palindrome-number.java b/EunjiShin/LeetCode/9.palindrome-number.java deleted file mode 100644 index c53461cda..000000000 --- a/EunjiShin/LeetCode/9.palindrome-number.java +++ /dev/null @@ -1,47 +0,0 @@ -package Easy; - -/* - * @lc app=leetcode id=9 lang=java - * - * [9] Palindrome Number - */ - -// @lc code=start -class Solution { - public boolean isPalindrome(int x) { - if (isNegative(x) || isEndWithZero(x)) { - return false; - } - - if (isSingleDigit(x)) { - return true; - } - - int reverse = makeReverse(x); - return x == reverse; - } - - private static boolean isNegative(int x) { - return x < 0; - } - - private static boolean isEndWithZero(int x) { - return x != 0 && x % 10 == 0; - } - - private static boolean isSingleDigit(int x) { - return x > 0 && x < 10; - } - - private static int makeReverse(int x) { - int reverse = 0; - while (x != 0) { - int digit = x % 10; - reverse = reverse * 10 + digit; - x /= 10; - } - return reverse; - } - -} -// @lc code=end diff --git a/EunjiShin/LeetCode/94.binary-tree-inorder-traversal.java b/EunjiShin/LeetCode/94.binary-tree-inorder-traversal.java deleted file mode 100644 index 0449462b6..000000000 --- a/EunjiShin/LeetCode/94.binary-tree-inorder-traversal.java +++ /dev/null @@ -1,49 +0,0 @@ -package Easy; - -import java.util.ArrayList; -import java.util.List; - -/* - * @lc app=leetcode id=94 lang=java - * - * [94] Binary Tree Inorder Traversal - */ - -// @lc code=start -/** - * Definition for a binary tree node. - * public class TreeNode { - * int val; - * TreeNode left; - * TreeNode right; - * TreeNode() {} - * TreeNode(int val) { this.val = val; } - * TreeNode(int val, TreeNode left, TreeNode right) { - * this.val = val; - * this.left = left; - * this.right = right; - * } - * } - */ -class Solution { - List answer; - - public List inorderTraversal(TreeNode root) { - answer = new ArrayList<>(); - inorder(root); - return answer; - } - - private void inorder(TreeNode node) { - if (node != null) { - if (node.left != null) { - inorder(node.left); - } - answer.add(node.val); - if (node.right != null) { - inorder(node.right); - } - } - } -} -// @lc code=end diff --git a/EunjiShin/LeetCode/[LTC]26.java b/EunjiShin/LeetCode/[LTC]26.java deleted file mode 100644 index 6001a5123..000000000 --- a/EunjiShin/LeetCode/[LTC]26.java +++ /dev/null @@ -1,12 +0,0 @@ -package LeetCode; - -class Solution { - public int removeDuplicates(int[] nums) { - int index = 1; - int size = nums.length - 1; - for (int i = 0; i < size; i++) { - if (nums[i] != nums[i+1]) nums[index++] = nums[i+1]; - } - return index; - } -} diff --git a/EunjiShin/LeetCode/[LTC]58.java b/EunjiShin/LeetCode/[LTC]58.java deleted file mode 100644 index 880326c2e..000000000 --- a/EunjiShin/LeetCode/[LTC]58.java +++ /dev/null @@ -1,8 +0,0 @@ -package LeetCode; -class Solution { - public int lengthOfLastWord(String s) { - String[] splits = s.split(" "); - int lastIndex = splits.length - 1; - return splits[lastIndex].length(); - } -} \ No newline at end of file diff --git a/EunjiShin/LeetCode/[LTC]80.java b/EunjiShin/LeetCode/[LTC]80.java deleted file mode 100644 index d6a33f5de..000000000 --- a/EunjiShin/LeetCode/[LTC]80.java +++ /dev/null @@ -1,16 +0,0 @@ -package LeetCode; - -class Solution { - public int removeDuplicates(int[] nums) { - int size = nums.length - 1; - int index = 2; - for (int i = 2; i <= size; i++) { - if (nums[i] != nums[index - 2]) { - nums[index] = nums[i]; - index++; - } - } - - return index; - } -} \ No newline at end of file diff --git "a/EunjiShin/String/[BOJ] \353\223\243\353\263\264\354\236\241_1764.java" "b/EunjiShin/String/[BOJ] \353\223\243\353\263\264\354\236\241_1764.java" deleted file mode 100644 index fcb0ec50a..000000000 --- "a/EunjiShin/String/[BOJ] \353\223\243\353\263\264\354\236\241_1764.java" +++ /dev/null @@ -1,42 +0,0 @@ -package string.boj; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.StringTokenizer; - -public class NeverHeardOf { - - 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 M = Integer.parseInt(st.nextToken()); - - Set neverSeenOf = new HashSet<>(); - for (int i = 0; i < N; i++) { - neverSeenOf.add(br.readLine()); - } - - List neverSeenHeardOf = new ArrayList<>(); - for (int i = 0; i < M; i++) { - String input = br.readLine(); - if (neverSeenOf.contains(input)) { - neverSeenHeardOf.add(input); - } - } - - Collections.sort(neverSeenHeardOf); - System.out.println(neverSeenHeardOf.size()); - for (String s : neverSeenHeardOf) { - System.out.println(s); - } - } - -} diff --git "a/EunjiShin/String/[BOJ] \353\254\270\354\236\220\354\227\264 \354\247\221\355\225\251_14425.java" "b/EunjiShin/String/[BOJ] \353\254\270\354\236\220\354\227\264 \354\247\221\355\225\251_14425.java" deleted file mode 100644 index fb982586c..000000000 --- "a/EunjiShin/String/[BOJ] \353\254\270\354\236\220\354\227\264 \354\247\221\355\225\251_14425.java" +++ /dev/null @@ -1,32 +0,0 @@ -package string.boj; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.HashSet; -import java.util.StringTokenizer; - -public class StringSet { - - 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 M = Integer.parseInt(st.nextToken()); - HashSet inputs = new HashSet<>(); - for (int i = 0; i < N; i++) { - inputs.add(br.readLine()); - } - - int result = 0; - for (int i = 0; i < M; i++) { - if (inputs.contains(br.readLine())) { - result++; - } - } - - System.out.println(result); - } - -} diff --git "a/EunjiShin/String/[BOJ] \354\227\274\354\203\211\354\262\264_9342.java" "b/EunjiShin/String/[BOJ] \354\227\274\354\203\211\354\262\264_9342.java" deleted file mode 100644 index b99d79a17..000000000 --- "a/EunjiShin/String/[BOJ] \354\227\274\354\203\211\354\262\264_9342.java" +++ /dev/null @@ -1,36 +0,0 @@ -package string.boj; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class chromosome { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int T = Integer.parseInt(br.readLine()); - for (int i = 0; i < T; i++) { - checkRule(br.readLine()); - } - } - - public static void checkRule(String input) { - int a = input.indexOf("A"); - int f = input.indexOf("F"); - int c = input.indexOf("C"); - - int lastA = input.lastIndexOf("A"); - int lastF = input.lastIndexOf("F"); - - int lastIndex = input.length()-1; - if (input.charAt(lastIndex) == 'A' || input.charAt(lastIndex) == 'F' || input.charAt(lastIndex) == 'C') { - if (a < f && f < c && (lastA == f-1 && lastF == c-1)) { - System.out.println("Infected!"); - return; - } - } - System.out.println("Good"); - } - -} diff --git "a/EunjiShin/String/[BOJ] \354\240\221\353\221\220\354\202\254 \354\260\276\352\270\260_14426.java" "b/EunjiShin/String/[BOJ] \354\240\221\353\221\220\354\202\254 \354\260\276\352\270\260_14426.java" deleted file mode 100644 index 05bb8fb5f..000000000 --- "a/EunjiShin/String/[BOJ] \354\240\221\353\221\220\354\202\254 \354\260\276\352\270\260_14426.java" +++ /dev/null @@ -1,75 +0,0 @@ -package string.boj; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class FindPrefix { - - static class TrieNode { - boolean word; - TrieNode[] children; - - TrieNode() { - children = new TrieNode[26]; - word = false; - } - - } - - static class Trie { - TrieNode root; - - Trie() { - root = new TrieNode(); - } - - public void insert(String word) { - TrieNode cur = root; - for (int i = 0; i < word.length(); i++) { - char c = word.charAt(i); - if (cur.children[c - 'a'] == null) { - cur.children[c - 'a'] = new TrieNode(); - } - cur = cur.children[c - 'a']; - } - cur.word = true; - } - - public boolean checkPrefix(String target) { - TrieNode cur = root; - for (char c : target.toCharArray()) { - if (cur.children[c - 'a'] == null) { - return false; - } - cur = cur.children[c - 'a']; - } - return true; - } - } - - 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 M = Integer.parseInt(st.nextToken()); - - Trie trie = new Trie(); - for (int i = 0; i < N; i++) { - trie.insert(br.readLine()); - } - - int result = 0; - for (int i = 0; i < M; i++) { - if (trie.checkPrefix(br.readLine())) { - result++; - } - } - - System.out.println(result); - } - - -} From 17e515db38adb333fadc61f18155a9b60266b80c Mon Sep 17 00:00:00 2001 From: sanghwa <85687130+aga1215@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:59:44 +0900 Subject: [PATCH 03/45] Delete HamsterStudent directory --- ...0_\353\254\270\354\236\220\354\227\264.js" | 3 -- ...4\354\235\230_\352\270\270\354\235\264.js" | 8 ------ ...1\354\210\230_\354\260\276\352\270\260.js" | 17 ----------- ...4\354\235\264\354\235\230_\355\225\251.js" | 14 ---------- ...04\354\202\260\355\225\230\352\270\260.js" | 11 -------- ...5\354\210\230\354\235\230_\355\225\251.js" | 9 ------ ...0_\353\215\224\355\225\230\352\270\260.js" | 6 ---- ...0_\353\215\224\355\225\230\352\270\260.js" | 7 ----- ...4_\353\247\214\353\223\244\352\270\260.js" | 4 --- ...4\354\270\240_\354\266\224\354\270\241.js" | 13 --------- ...4\355\212\270_\353\214\200\355\232\214.js" | 18 ------------ ...0\354\203\244\353\223\234_\354\210\230.js" | 7 ----- ...10\354\261\204\355\214\205\353\260\251.js" | 28 ------------------- ...4_\354\265\234\354\206\214\352\260\222.js" | 8 ------ ...4_\353\260\224\352\276\270\352\270\260.js" | 3 -- ...4\353\260\251_\354\260\276\352\270\260.js" | 9 ------ 16 files changed, 165 deletions(-) delete mode 100644 "HamsterStudent/Lv.0_\353\254\270\354\236\220\354\227\264\354\225\210\354\227\220_\353\254\270\354\236\220\354\227\264.js" delete mode 100644 "HamsterStudent/Lv.0_\353\260\260\354\227\264_\354\233\220\354\206\214\354\235\230_\352\270\270\354\235\264.js" delete mode 100644 "HamsterStudent/Lv.0_\355\225\251\354\204\261\354\210\230_\354\260\276\352\270\260.js" delete mode 100644 "HamsterStudent/Lv.1_\353\221\220_\354\240\225\354\210\230_\354\202\254\354\235\264\354\235\230_\355\225\251.js" delete mode 100644 "HamsterStudent/Lv.1_\353\266\200\354\241\261\355\225\234_\352\270\210\354\225\241_\352\263\204\354\202\260\355\225\230\352\270\260.js" delete mode 100644 "HamsterStudent/Lv.1_\354\225\275\354\210\230\354\235\230_\355\225\251.js" delete mode 100644 "HamsterStudent/Lv.1_\354\227\206\353\212\224_\354\210\253\354\236\220_\353\215\224\355\225\230\352\270\260.js" delete mode 100644 "HamsterStudent/Lv.1_\354\236\220\353\246\277\354\210\230_\353\215\224\355\225\230\352\270\260.js" delete mode 100644 "HamsterStudent/Lv.1_\354\236\220\354\227\260\354\210\230_\353\222\244\354\247\221\354\226\264_\353\260\260\354\227\264\353\241\234_\353\247\214\353\223\244\352\270\260.js" delete mode 100644 "HamsterStudent/Lv.1_\354\275\234\353\235\274\354\270\240_\354\266\224\354\270\241.js" delete mode 100644 "HamsterStudent/Lv.1_\355\221\270\353\223\234_\355\214\214\354\235\264\355\212\270_\353\214\200\355\232\214.js" delete mode 100644 "HamsterStudent/Lv.1_\355\225\230\354\203\244\353\223\234_\354\210\230.js" delete mode 100644 "HamsterStudent/Lv.2_\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251.js" delete mode 100644 "HamsterStudent/Lv.2_\354\265\234\353\214\223\352\260\222\352\263\274_\354\265\234\354\206\214\352\260\222.js" delete mode 100644 "HamsterStudent/Lv1_\353\254\270\354\236\220\354\227\264\354\235\204_\354\240\225\354\210\230\353\241\234_\353\260\224\352\276\270\352\270\260.js" delete mode 100644 "HamsterStudent/Lv_1_\354\204\234\354\232\270\354\227\220\354\204\234_\352\271\200\354\204\234\353\260\251_\354\260\276\352\270\260.js" diff --git "a/HamsterStudent/Lv.0_\353\254\270\354\236\220\354\227\264\354\225\210\354\227\220_\353\254\270\354\236\220\354\227\264.js" "b/HamsterStudent/Lv.0_\353\254\270\354\236\220\354\227\264\354\225\210\354\227\220_\353\254\270\354\236\220\354\227\264.js" deleted file mode 100644 index bb409b6b2..000000000 --- "a/HamsterStudent/Lv.0_\353\254\270\354\236\220\354\227\264\354\225\210\354\227\220_\353\254\270\354\236\220\354\227\264.js" +++ /dev/null @@ -1,3 +0,0 @@ -function solution(str1, str2) { - return str1.indexOf(str2) > -1 ? 1 : 2; -} diff --git "a/HamsterStudent/Lv.0_\353\260\260\354\227\264_\354\233\220\354\206\214\354\235\230_\352\270\270\354\235\264.js" "b/HamsterStudent/Lv.0_\353\260\260\354\227\264_\354\233\220\354\206\214\354\235\230_\352\270\270\354\235\264.js" deleted file mode 100644 index e6aaf23fb..000000000 --- "a/HamsterStudent/Lv.0_\353\260\260\354\227\264_\354\233\220\354\206\214\354\235\230_\352\270\270\354\235\264.js" +++ /dev/null @@ -1,8 +0,0 @@ -function solution(strlist) { - var answer = []; - strlist.map((x)=>{ - let arr = [...x] - answer.push(arr.length) - }) - return answer; -} diff --git "a/HamsterStudent/Lv.0_\355\225\251\354\204\261\354\210\230_\354\260\276\352\270\260.js" "b/HamsterStudent/Lv.0_\355\225\251\354\204\261\354\210\230_\354\260\276\352\270\260.js" deleted file mode 100644 index e55e381d3..000000000 --- "a/HamsterStudent/Lv.0_\355\225\251\354\204\261\354\210\230_\354\260\276\352\270\260.js" +++ /dev/null @@ -1,17 +0,0 @@ -function solution(n) { - var answer = 0; - - for(let i = 0; i <= n; i++){ - let count = 0 - for(let j = 1; j <= i; j++){ - if(i % j === 0){ - count++ - } - } - if(count > 2){ - answer++ - count = 0 - } - } - return answer; -} diff --git "a/HamsterStudent/Lv.1_\353\221\220_\354\240\225\354\210\230_\354\202\254\354\235\264\354\235\230_\355\225\251.js" "b/HamsterStudent/Lv.1_\353\221\220_\354\240\225\354\210\230_\354\202\254\354\235\264\354\235\230_\355\225\251.js" deleted file mode 100644 index d26da1611..000000000 --- "a/HamsterStudent/Lv.1_\353\221\220_\354\240\225\354\210\230_\354\202\254\354\235\264\354\235\230_\355\225\251.js" +++ /dev/null @@ -1,14 +0,0 @@ -function solution(a, b) { - var answer = 0; - - if(a < b){ - for(let i = a; i <= b; i++){ - answer = answer + i - } - }else{ - for(let i = b; i <= a; i++){ - answer = answer + i - } - } - return answer -} diff --git "a/HamsterStudent/Lv.1_\353\266\200\354\241\261\355\225\234_\352\270\210\354\225\241_\352\263\204\354\202\260\355\225\230\352\270\260.js" "b/HamsterStudent/Lv.1_\353\266\200\354\241\261\355\225\234_\352\270\210\354\225\241_\352\263\204\354\202\260\355\225\230\352\270\260.js" deleted file mode 100644 index a7250b0f3..000000000 --- "a/HamsterStudent/Lv.1_\353\266\200\354\241\261\355\225\234_\352\270\210\354\225\241_\352\263\204\354\202\260\355\225\230\352\270\260.js" +++ /dev/null @@ -1,11 +0,0 @@ -function solution(price, money, count) { - var answer = -1; - let number = 0 - let wallet = money - while(number != count){ - wallet = wallet - (price * number) - number++ - } - answer = (price * number) - wallet - return answer < 0 ? 0 : answer; -} diff --git "a/HamsterStudent/Lv.1_\354\225\275\354\210\230\354\235\230_\355\225\251.js" "b/HamsterStudent/Lv.1_\354\225\275\354\210\230\354\235\230_\355\225\251.js" deleted file mode 100644 index 35ebeb7a8..000000000 --- "a/HamsterStudent/Lv.1_\354\225\275\354\210\230\354\235\230_\355\225\251.js" +++ /dev/null @@ -1,9 +0,0 @@ -function solution(n) { - var answer = []; - for(let i = 0; i < n; i++){ - if(n % i == 0){ - answer.push(i) - } - } - return n + answer.reduce((acc,cur)=>acc + cur,0); -} diff --git "a/HamsterStudent/Lv.1_\354\227\206\353\212\224_\354\210\253\354\236\220_\353\215\224\355\225\230\352\270\260.js" "b/HamsterStudent/Lv.1_\354\227\206\353\212\224_\354\210\253\354\236\220_\353\215\224\355\225\230\352\270\260.js" deleted file mode 100644 index 74b959a55..000000000 --- "a/HamsterStudent/Lv.1_\354\227\206\353\212\224_\354\210\253\354\236\220_\353\215\224\355\225\230\352\270\260.js" +++ /dev/null @@ -1,6 +0,0 @@ -function solution(numbers) { - let arr = [0,1,2,3,4,5,6,7,8,9] - numbers.sort() - let answer = arr.filter(x=> !numbers.includes(x)) - return answer.reduce((acc,cur)=> acc + cur, 0); -} diff --git "a/HamsterStudent/Lv.1_\354\236\220\353\246\277\354\210\230_\353\215\224\355\225\230\352\270\260.js" "b/HamsterStudent/Lv.1_\354\236\220\353\246\277\354\210\230_\353\215\224\355\225\230\352\270\260.js" deleted file mode 100644 index 5737549a0..000000000 --- "a/HamsterStudent/Lv.1_\354\236\220\353\246\277\354\210\230_\353\215\224\355\225\230\352\270\260.js" +++ /dev/null @@ -1,7 +0,0 @@ -function solution(n) -{ - const str = String(n); - const newArr = Array.from(str).map(Number); - - return newArr.reduce((acc,cur)=> acc + cur, 0); -} diff --git "a/HamsterStudent/Lv.1_\354\236\220\354\227\260\354\210\230_\353\222\244\354\247\221\354\226\264_\353\260\260\354\227\264\353\241\234_\353\247\214\353\223\244\352\270\260.js" "b/HamsterStudent/Lv.1_\354\236\220\354\227\260\354\210\230_\353\222\244\354\247\221\354\226\264_\353\260\260\354\227\264\353\241\234_\353\247\214\353\223\244\352\270\260.js" deleted file mode 100644 index 28129a612..000000000 --- "a/HamsterStudent/Lv.1_\354\236\220\354\227\260\354\210\230_\353\222\244\354\247\221\354\226\264_\353\260\260\354\227\264\353\241\234_\353\247\214\353\223\244\352\270\260.js" +++ /dev/null @@ -1,4 +0,0 @@ -function solution(n) { - var answer = String(n).split('').reverse(); - return answer.map((x)=> Number(x)); -} diff --git "a/HamsterStudent/Lv.1_\354\275\234\353\235\274\354\270\240_\354\266\224\354\270\241.js" "b/HamsterStudent/Lv.1_\354\275\234\353\235\274\354\270\240_\354\266\224\354\270\241.js" deleted file mode 100644 index e199e2e1a..000000000 --- "a/HamsterStudent/Lv.1_\354\275\234\353\235\274\354\270\240_\354\266\224\354\270\241.js" +++ /dev/null @@ -1,13 +0,0 @@ -function solution(num) { - var answer = num; - let count = 0; - while(answer !== 1){ - if(answer % 2 != 0){ - answer = (answer * 3) + 1 - }else{ - answer = answer / 2 - } - count++ - } - return count < 500 ? count : -1; -} diff --git "a/HamsterStudent/Lv.1_\355\221\270\353\223\234_\355\214\214\354\235\264\355\212\270_\353\214\200\355\232\214.js" "b/HamsterStudent/Lv.1_\355\221\270\353\223\234_\355\214\214\354\235\264\355\212\270_\353\214\200\355\232\214.js" deleted file mode 100644 index b2607c90e..000000000 --- "a/HamsterStudent/Lv.1_\355\221\270\353\223\234_\355\214\214\354\235\264\355\212\270_\353\214\200\355\232\214.js" +++ /dev/null @@ -1,18 +0,0 @@ -function solution(food) { - var answer = []; - food.map((x,idx)=>{ - let temp - if(x % 2 !== 0){ - temp = (x - 1) / 2 - }else{ - temp = (x / 2) - } - for(let i = 0; i < temp; i++){ - answer.push(idx) - } - }) - const reverse = [...answer,0].reverse() - answer.push(reverse) - - return answer.join().replaceAll(",",""); -} diff --git "a/HamsterStudent/Lv.1_\355\225\230\354\203\244\353\223\234_\354\210\230.js" "b/HamsterStudent/Lv.1_\355\225\230\354\203\244\353\223\234_\354\210\230.js" deleted file mode 100644 index 2b23fb2f0..000000000 --- "a/HamsterStudent/Lv.1_\355\225\230\354\203\244\353\223\234_\354\210\230.js" +++ /dev/null @@ -1,7 +0,0 @@ -function solution(x) { - const str = String(x); - const newArr = Array.from(str).map(Number); - const num = newArr.reduce((acc,cur)=>acc+cur,0) - - return x % num === 0 ? true : false -} diff --git "a/HamsterStudent/Lv.2_\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251.js" "b/HamsterStudent/Lv.2_\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251.js" deleted file mode 100644 index 43bf40ff3..000000000 --- "a/HamsterStudent/Lv.2_\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251.js" +++ /dev/null @@ -1,28 +0,0 @@ -function solution(record) { - let answer = [] - var array = record.slice(); - let user = {} - let log = {} - - array.map((x,idx)=>{ - let arr = x.split(' ') - user[`${arr[1]}`] = arr[2] - log[idx] = { status : arr[0], id : arr[1], name : arr[2]} - }) - - for(let item in user){ - for(let x in log){ - if(item === log[x].id){ - log[x].name = user[item] - } - } - } - - for(let y in log){ - if(log[y].status !== "Change"){ - answer.push(`${log[y].name}님이 ${log[y].status === "Enter" ? "들어왔습니다." : "나갔습니다."}`) - } - } - - return answer; -} diff --git "a/HamsterStudent/Lv.2_\354\265\234\353\214\223\352\260\222\352\263\274_\354\265\234\354\206\214\352\260\222.js" "b/HamsterStudent/Lv.2_\354\265\234\353\214\223\352\260\222\352\263\274_\354\265\234\354\206\214\352\260\222.js" deleted file mode 100644 index 937e77344..000000000 --- "a/HamsterStudent/Lv.2_\354\265\234\353\214\223\352\260\222\352\263\274_\354\265\234\354\206\214\352\260\222.js" +++ /dev/null @@ -1,8 +0,0 @@ -function solution(s) { - let arr = s.split(' ') - let newArr = arr.map(Number) - - newArr.sort((x,y) => (x - y)); - newArr.splice(1, newArr.length - 2) - return newArr.join(' '); -} diff --git "a/HamsterStudent/Lv1_\353\254\270\354\236\220\354\227\264\354\235\204_\354\240\225\354\210\230\353\241\234_\353\260\224\352\276\270\352\270\260.js" "b/HamsterStudent/Lv1_\353\254\270\354\236\220\354\227\264\354\235\204_\354\240\225\354\210\230\353\241\234_\353\260\224\352\276\270\352\270\260.js" deleted file mode 100644 index 75c7eca81..000000000 --- "a/HamsterStudent/Lv1_\353\254\270\354\236\220\354\227\264\354\235\204_\354\240\225\354\210\230\353\241\234_\353\260\224\352\276\270\352\270\260.js" +++ /dev/null @@ -1,3 +0,0 @@ -function solution(s) { - return Number(s); -} diff --git "a/HamsterStudent/Lv_1_\354\204\234\354\232\270\354\227\220\354\204\234_\352\271\200\354\204\234\353\260\251_\354\260\276\352\270\260.js" "b/HamsterStudent/Lv_1_\354\204\234\354\232\270\354\227\220\354\204\234_\352\271\200\354\204\234\353\260\251_\354\260\276\352\270\260.js" deleted file mode 100644 index 22f2f5621..000000000 --- "a/HamsterStudent/Lv_1_\354\204\234\354\232\270\354\227\220\354\204\234_\352\271\200\354\204\234\353\260\251_\354\260\276\352\270\260.js" +++ /dev/null @@ -1,9 +0,0 @@ -function solution(seoul) { - let answer = "" - seoul.map((x,idx)=> { - if(x === "Kim"){ - answer = `김서방은 ${idx}에 있다` - } - }); - return answer -} From 72d30b359382930cf6f062ba472e7883750dab1d Mon Sep 17 00:00:00 2001 From: sanghwa <85687130+aga1215@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:59:52 +0900 Subject: [PATCH 04/45] Delete Sjaize directory --- ...\354\235\270\355\225\230\352\270\260.java" | 43 ----------- ...\353\247\214\353\223\244\352\270\260.java" | 76 ------------------- ...\353\213\254\355\214\275\354\235\264.java" | 70 ----------------- ...\354\271\230\355\225\230\352\270\260.java" | 32 -------- ...354\235\230 \352\263\261\354\205\210.java" | 14 ---- ...\354\235\230\352\263\240\354\202\254.java" | 40 ---------- ...\354\202\254\354\232\251\354\236\220.java" | 44 ----------- ...354\210\230 \354\260\276\352\270\260.java" | 35 --------- ...\354\265\234\353\214\200\355\231\224.java" | 58 -------------- .../\354\271\264\355\216\253.java" | 16 ---- ...\354\235\214\354\202\254\354\240\204.java" | 18 ----- ...354\210\230 \354\204\270\352\270\260.java" | 33 -------- ...354\235\264\354\235\230 \355\203\221.java" | 31 -------- Sjaize/Sorting/H-index.java | 16 ---- ...\353\262\210\354\247\270\354\210\230.java" | 19 ----- ...54\236\245 \355\201\260 \354\210\230.java" | 17 ----- ...\353\215\224\355\225\230\352\270\260.java" | 17 ----- ...\353\246\254\353\211\264\354\226\274.java" | 75 ------------------ ...\353\240\254\355\225\230\352\270\260.java" | 14 ---- ...\354\271\230\355\225\230\352\270\260.java" | 11 --- ...\353\222\244\354\247\221\352\270\260.java" | 16 ---- ...354\235\230 \352\260\234\354\210\230.java" | 8 -- ...352\270\260 \352\270\260\353\263\270.java" | 6 -- ...354\227\264 \354\225\225\354\266\225.java" | 34 --------- ...\354\230\201\353\213\250\354\226\264.java" | 13 ---- ...354\240\200 \354\225\224\355\230\270.java" | 12 --- ...353\224\224 \354\266\224\354\262\234.java" | 16 ---- ...\353\247\214\353\223\244\352\270\260.java" | 19 ----- ...\353\263\265\355\225\230\352\270\260.java" | 17 ----- ...\353\247\214\353\223\244\352\270\260.java" | 11 --- 30 files changed, 831 deletions(-) delete mode 100644 "Sjaize/Array/\352\261\260\353\246\254\353\221\220\352\270\260 \355\231\225\354\235\270\355\225\230\352\270\260.java" delete mode 100644 "Sjaize/Array/\352\265\220\354\240\220\354\227\220 \353\263\204 \353\247\214\353\223\244\352\270\260.java" delete mode 100644 "Sjaize/Array/\354\202\274\352\260\201 \353\213\254\355\214\275\354\235\264.java" delete mode 100644 "Sjaize/Array/\354\240\225\354\210\230\353\245\274 \353\202\230\354\204\240\355\230\225\354\234\274\353\241\234 \353\260\260\354\271\230\355\225\230\352\270\260.java" delete mode 100644 "Sjaize/Array/\355\226\211\353\240\254\354\235\230 \352\263\261\354\205\210.java" delete mode 100644 "Sjaize/Exhaustive Search/\353\252\250\354\235\230\352\263\240\354\202\254.java" delete mode 100644 "Sjaize/Exhaustive Search/\353\266\210\353\237\211 \354\202\254\354\232\251\354\236\220.java" delete mode 100644 "Sjaize/Exhaustive Search/\354\206\214\354\210\230 \354\260\276\352\270\260.java" delete mode 100644 "Sjaize/Exhaustive Search/\354\210\230\354\213\235 \354\265\234\353\214\200\355\231\224.java" delete mode 100644 "Sjaize/Exhaustive Search/\354\271\264\355\216\253.java" delete mode 100644 "Sjaize/Recursion/\353\252\250\354\235\214\354\202\254\354\240\204.java" delete mode 100644 "Sjaize/Recursion/\354\277\274\353\223\234\354\225\225\354\266\225 \355\233\204 \352\260\234\354\210\230 \354\204\270\352\270\260.java" delete mode 100644 "Sjaize/Recursion/\355\225\230\353\205\270\354\235\264\354\235\230 \355\203\221.java" delete mode 100644 Sjaize/Sorting/H-index.java delete mode 100644 "Sjaize/Sorting/K\353\262\210\354\247\270\354\210\230.java" delete mode 100644 "Sjaize/Sorting/\352\260\200\354\236\245 \355\201\260 \354\210\230.java" delete mode 100644 "Sjaize/Sorting/\353\221\220 \352\260\234 \353\275\221\354\225\204\354\204\234 \353\215\224\355\225\230\352\270\260.java" delete mode 100644 "Sjaize/Sorting/\353\251\224\353\211\264 \353\246\254\353\211\264\354\226\274.java" delete mode 100644 "Sjaize/Sorting/\353\254\270\354\236\220\354\227\264 \353\202\264 \353\247\210\354\235\214\353\214\200\353\241\234 \354\240\225\353\240\254\355\225\230\352\270\260.java" delete mode 100644 "Sjaize/Sorting/\353\254\270\354\236\220\354\227\264 \353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234 \353\260\260\354\271\230\355\225\230\352\270\260.java" delete mode 100644 "Sjaize/String/3\354\247\204\353\262\225 \353\222\244\354\247\221\352\270\260.java" delete mode 100644 "Sjaize/String/\353\254\270\354\236\220\354\227\264 \353\202\264 p\354\231\200 y\354\235\230 \352\260\234\354\210\230.java" delete mode 100644 "Sjaize/String/\353\254\270\354\236\220\354\227\264 \353\213\244\353\243\250\352\270\260 \352\270\260\353\263\270.java" delete mode 100644 "Sjaize/String/\353\254\270\354\236\220\354\227\264 \354\225\225\354\266\225.java" delete mode 100644 "Sjaize/String/\354\210\253\354\236\220 \353\254\270\354\236\220\354\227\264\352\263\274 \354\230\201\353\213\250\354\226\264.java" delete mode 100644 "Sjaize/String/\354\213\234\354\240\200 \354\225\224\355\230\270.java" delete mode 100644 "Sjaize/String/\354\213\240\352\267\234 \354\225\204\354\235\264\353\224\224 \354\266\224\354\262\234.java" delete mode 100644 "Sjaize/String/\354\235\264\354\203\201\355\225\234 \353\254\270\354\236\220 \353\247\214\353\223\244\352\270\260.java" delete mode 100644 "Sjaize/String/\354\235\264\354\247\204 \353\263\200\355\231\230 \353\260\230\353\263\265\355\225\230\352\270\260.java" delete mode 100644 "Sjaize/String/\354\236\220\354\227\260\354\210\230 \353\222\244\354\247\221\354\226\264 \353\260\260\354\227\264\353\241\234 \353\247\214\353\223\244\352\270\260.java" diff --git "a/Sjaize/Array/\352\261\260\353\246\254\353\221\220\352\270\260 \355\231\225\354\235\270\355\225\230\352\270\260.java" "b/Sjaize/Array/\352\261\260\353\246\254\353\221\220\352\270\260 \355\231\225\354\235\270\355\225\230\352\270\260.java" deleted file mode 100644 index 383e66c77..000000000 --- "a/Sjaize/Array/\352\261\260\353\246\254\353\221\220\352\270\260 \355\231\225\354\235\270\355\225\230\352\270\260.java" +++ /dev/null @@ -1,43 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/81302 -class Solution { - public int[] solution(String[][] places) { - int[] answer = new int[5]; - for (int index = 0; index < 5; index++) { - char[][] arr = new char[5][5]; - for (int i = 0; i < 5; i++) { - arr[i] = places[index][i].toCharArray(); - } - answer[index] = isKeepDistance(arr); - } - return answer; - } - private int isKeepDistance(char[][] arr) { - int[] drow = {-1, 0, 1, 0, -2, 0, 2, 0, -1, 1, 1, -1}; - int[] dcol = {0, 1, 0, -1, 0, 2, 0, -2, 1, 1, -1, -1}; - for (int i = 0; i < 5; i++) { - for (int j = 0; j < 5; j++) { - if (arr[i][j] == 'P') { - for (int k = 0; k < 12; k++) { - int nrow = i + drow[k]; - int ncol = j + dcol[k]; - if (nrow > 4 || nrow < 0 || ncol > 4 || ncol < 0) continue; - if (arr[nrow][ncol] == 'P') { - if (k < 4) return 0; - if (k >= 4 && k < 8) { - if (arr[i+drow[k]/2][j+dcol[k]/2] != 'X') { - return 0; - } - } - if (k >= 8) { - if (arr[nrow][j] != 'X' || arr[i][ncol] != 'X') { - return 0; - } - } - } - } - } - } - } - return 1; - } -} diff --git "a/Sjaize/Array/\352\265\220\354\240\220\354\227\220 \353\263\204 \353\247\214\353\223\244\352\270\260.java" "b/Sjaize/Array/\352\265\220\354\240\220\354\227\220 \353\263\204 \353\247\214\353\223\244\352\270\260.java" deleted file mode 100644 index 66caff901..000000000 --- "a/Sjaize/Array/\352\265\220\354\240\220\354\227\220 \353\263\204 \353\247\214\353\223\244\352\270\260.java" +++ /dev/null @@ -1,76 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/87377 -import java.util.*; - -class Solution { - public String[] solution(int[][] line) { - List points = new ArrayList<>(); - for (int i = 0; i < line.length; i++) { - for (int j = i + 1; j < line.length; j++) { - Point intersection = intersection(line[i][0], line[i][1], line[i][2], - line[j][0], line[j][1], line[j][2]); - if (intersection != null) points.add(intersection); - } - } - - Point minimum = getMinimumPoint(points); - Point maximum = getMaximumPoint(points); - - int width = (int) (maximum.x - minimum.x + 1); - int height = (int) (maximum.y - minimum.y + 1); - - char[][] arr = new char[height][width]; - for (char[] row : arr) { - Arrays.fill(row, '.'); - } - - for (Point p : points) { - int x = (int)(p.x - minimum.x); - int y = (int)(maximum.y- p.y); - arr[y][x] = '*'; - } - - String[] answer = new String[arr.length]; - for (int i = 0; i < answer.length; i++) { - answer[i] = new String(arr[i]); - } - return answer; - } - - private static class Point { - public final long x, y; - private Point(long x, long y) { - this.x = x; - this.y = y; - } - } - - private Point intersection(long A, long B, long E, long C, long D, long F) { - long np = A*D - B*C; - long nx = B*F - E*D; - long ny = E*C - A*F; - if (np == 0 || nx % np != 0 || ny % np != 0) return null; - return new Point(nx/np, ny/np); - } - - private Point getMinimumPoint(List points) { - long x = Long.MAX_VALUE; - long y = Long.MAX_VALUE; - - for (Point p : points) { - if (p.x < x) x = p.x; - if (p.y < y) y = p.y; - } - return new Point(x,y); - } - - private Point getMaximumPoint(List points) { - long x = Long.MIN_VALUE; - long y = Long.MIN_VALUE; - - for (Point p : points) { - if (p.x > x) x = p.x; - if (p.y > y) y = p.y; - } - return new Point(x,y); - } -} diff --git "a/Sjaize/Array/\354\202\274\352\260\201 \353\213\254\355\214\275\354\235\264.java" "b/Sjaize/Array/\354\202\274\352\260\201 \353\213\254\355\214\275\354\235\264.java" deleted file mode 100644 index b44d31713..000000000 --- "a/Sjaize/Array/\354\202\274\352\260\201 \353\213\254\355\214\275\354\235\264.java" +++ /dev/null @@ -1,70 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/68645 -class Solution { - int currentNumber = 1; - public int[] solution(int n) { - int[] answer = new int[n*(n+1)/2]; - int[] level = getLevel(n); - drawing(answer, n, level); - return answer; - } - - private int[] getLevel(int n) { - int[] level = new int[n*(n+1)/2]; - int num = 1; - int num_count = 0; - for (int i = 0; i < level.length; i++) { - level[i] = num; - ++num_count; - if (num_count == num) { - num = num + 1; - num_count = 0; - } - } - return level; - } - - private void drawing(int[] snail, int n, int[] level) { - int height = n; - snail[0] = 1; - int currentIndex = 0; - if (--n != 0) { - currentIndex = moveDown(snail, n, currentIndex, level); - } - while (n != 0) { - currentIndex = moveRight(snail, n, currentIndex); - if (--n == 0) break; - currentIndex = moveUp(snail, n, currentIndex, level); - if (--n == 0) break; - currentIndex = moveDown(snail, n, currentIndex, level); - if (--n == 0) break; - } - } - - private int moveDown(int[] snail, int drawingBlock, int currentIndex, int[] level) { - while (drawingBlock != 0) { - currentIndex = level[currentIndex] + currentIndex; - snail[currentIndex] = ++currentNumber; - --drawingBlock; - } - return currentIndex; - } - - private int moveRight(int[] snail, int drawingBlock, int currentIndex) { - while (drawingBlock != 0) { - currentIndex = currentIndex + 1; - snail[currentIndex] = ++currentNumber; - --drawingBlock; - } - return currentIndex; - } - - private int moveUp(int[] snail, int drawingBlock, int currentIndex, int[] level) - { - while (drawingBlock != 0) { - currentIndex = currentIndex - level[currentIndex]; - snail[currentIndex] = ++currentNumber; - --drawingBlock; - } - return currentIndex; - } -} diff --git "a/Sjaize/Array/\354\240\225\354\210\230\353\245\274 \353\202\230\354\204\240\355\230\225\354\234\274\353\241\234 \353\260\260\354\271\230\355\225\230\352\270\260.java" "b/Sjaize/Array/\354\240\225\354\210\230\353\245\274 \353\202\230\354\204\240\355\230\225\354\234\274\353\241\234 \353\260\260\354\271\230\355\225\230\352\270\260.java" deleted file mode 100644 index 6dc2c4980..000000000 --- "a/Sjaize/Array/\354\240\225\354\210\230\353\245\274 \353\202\230\354\204\240\355\230\225\354\234\274\353\241\234 \353\260\260\354\271\230\355\225\230\352\270\260.java" +++ /dev/null @@ -1,32 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/181832 -class Solution { - final static int[] dx = {0, 1, 0, -1}; - final static int[] dy = {1, 0, -1, 0}; - - public int[][] solution(int n) { - int result[][] = new int[n][n]; - int v = 1; - int x = 0; - int y = 0; - int d = 0; - - while (true) { - result[x][y] = v++; - int nx = x + dx[d]; - int ny = y + dy[d]; - - if (nx == n || nx == -1 || ny == n || ny == -1 || result[nx][ny] != 0) { - d = (d + 1) % 4; - nx = x + dx[d]; - ny = y + dy[d]; - if (nx == n || nx == -1 || ny == n || ny == -1 || result[nx][ny] != 0) - break; - } - - x = nx; - y = ny; - } - - return result; - } -} diff --git "a/Sjaize/Array/\355\226\211\353\240\254\354\235\230 \352\263\261\354\205\210.java" "b/Sjaize/Array/\355\226\211\353\240\254\354\235\230 \352\263\261\354\205\210.java" deleted file mode 100644 index bf592eb30..000000000 --- "a/Sjaize/Array/\355\226\211\353\240\254\354\235\230 \352\263\261\354\205\210.java" +++ /dev/null @@ -1,14 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/12949 -class Solution { - public int[][] solution(int[][] arr1, int[][] arr2) { - int[][] answer = new int[arr1.length][arr2[0].length]; - for (int i = 0; i < answer.length; i++) { - for (int j = 0; j < answer[i].length; j++) { - for (int k = 0; k < arr2.length; k++) { - answer[i][j] += arr1[i][k] * arr2[k][j]; - } - } - } - return answer; - } -} diff --git "a/Sjaize/Exhaustive Search/\353\252\250\354\235\230\352\263\240\354\202\254.java" "b/Sjaize/Exhaustive Search/\353\252\250\354\235\230\352\263\240\354\202\254.java" deleted file mode 100644 index 0b1c4d03a..000000000 --- "a/Sjaize/Exhaustive Search/\353\252\250\354\235\230\352\263\240\354\202\254.java" +++ /dev/null @@ -1,40 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/42840 -import java.util.stream.IntStream; - -class Solution { - private static final int[][] RULES = { - {1,2,3,4,5}, - {2,1,2,3,2,4,2,5}, - {3,3,1,1,2,2,4,4,5,5} - }; - - public int[] solution(int[] answers) { - int[] corrects = new int[3]; - int max = 0; - - for (int problem = 0; problem < answers.length; problem++) { - int answer = answers[problem]; - - for (int person = 0; person < 3; person++) { - int picked = getPicked(person, problem); - if (answer == picked) { - if (++corrects[person] > max) { - max = corrects[person]; - } - } - } - } - - final int maxCorrects = max; - return IntStream.range(0,3) - .filter(i -> corrects[i] == maxCorrects) - .map(i -> i+1) - .toArray(); - } - - private int getPicked(int person, int problem) { - int[] rule = RULES[person]; - int index = problem % rule.length; - return rule[index]; - } -} diff --git "a/Sjaize/Exhaustive Search/\353\266\210\353\237\211 \354\202\254\354\232\251\354\236\220.java" "b/Sjaize/Exhaustive Search/\353\266\210\353\237\211 \354\202\254\354\232\251\354\236\220.java" deleted file mode 100644 index 2f769e0c5..000000000 --- "a/Sjaize/Exhaustive Search/\353\266\210\353\237\211 \354\202\254\354\232\251\354\236\220.java" +++ /dev/null @@ -1,44 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/64064/solution_groups?language=java -import java.util.Stack; -import java.util.Set; -import java.util.HashSet; - -class Solution { - private static Set> possibleCases = new HashSet<> (); - - private Stack getFilters(String[] banned_id) { - Stack filters = new Stack<> (); - for (int i = 0; i < banned_id.length; i++) { - filters.push(banned_id[i].replace("*", ".")); - } - return filters; - } - - private void getPossibleCases(Set idList, String[] user_id, Stack filters, int length) { - if (filters.isEmpty()) { - if (idList.size() == length) possibleCases.add(new HashSet<>(idList)); - return; - } - - String filter = filters.peek(); - for (String id : user_id) { - if (idList.contains(id)) continue; - if (id.matches(filter)) { - idList.add(id); - filters.pop(); - - getPossibleCases(idList, user_id, filters, length); - - idList.remove(id); - filters.push(filter); - } - } - } - - public int solution(String[] user_id, String[] banned_id) { - Set idList = new HashSet<> (); - Stack filters = getFilters(banned_id); - getPossibleCases(idList, user_id, filters, filters.size()); - return possibleCases.size(); - } -} diff --git "a/Sjaize/Exhaustive Search/\354\206\214\354\210\230 \354\260\276\352\270\260.java" "b/Sjaize/Exhaustive Search/\354\206\214\354\210\230 \354\260\276\352\270\260.java" deleted file mode 100644 index 93e29713e..000000000 --- "a/Sjaize/Exhaustive Search/\354\206\214\354\210\230 \354\260\276\352\270\260.java" +++ /dev/null @@ -1,35 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/42839 -import java.util.Arrays; -import java.util.Set; -import java.util.HashSet; - -class Solution { - private static Set primes = new HashSet<>(); - - private boolean isPrime(int num) { - if (num <= 1) return false; - for (int i = 2; i * i <= num; i++) { - if (num % i == 0) return false; - } - return true; - } - - private void getPrimes(int acc, int[] numSet, boolean[] isUsed) { - if (isPrime(acc)) primes.add(acc); - - for (int i = 0; i < numSet.length; i++) { - if (isUsed[i]) continue; - int nextAcc = acc * 10 + numSet[i]; - isUsed[i] = true; - getPrimes(nextAcc, numSet, isUsed); - isUsed[i] = false; - } - } - - public int solution(String numbers) { - int[] numSet = numbers.chars().map(c -> c-'0').toArray(); - boolean[] isUsed = new boolean[numSet.length]; - getPrimes(0, numSet, isUsed); - return primes.size(); - } -} diff --git "a/Sjaize/Exhaustive Search/\354\210\230\354\213\235 \354\265\234\353\214\200\355\231\224.java" "b/Sjaize/Exhaustive Search/\354\210\230\354\213\235 \354\265\234\353\214\200\355\231\224.java" deleted file mode 100644 index c645374d5..000000000 --- "a/Sjaize/Exhaustive Search/\354\210\230\354\213\235 \354\265\234\353\214\200\355\231\224.java" +++ /dev/null @@ -1,58 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/67257?language=java -import java.util.StringTokenizer; -import java.util.Iterator; -import java.util.List; -import java.util.LinkedList; - -class Solution { - private static final String[][] precedences = { - "*+-".split(""), - "*-+".split(""), - "+*-".split(""), - "+-*".split(""), - "-*+".split(""), - "-+*".split(""), - }; - - private long calculate(long lhs, long rhs, String op) { - return switch (op) { - case "+" -> lhs + rhs; - case "-" -> lhs - rhs; - case "*" -> lhs * rhs; - default -> 0; - }; - } - - private long calculate(Listtokens, String[] precedence) { - for (String op : precedence) { - for (int i = 0; i < tokens.size(); i++) { - if (tokens.get(i).equals(op)) { - long lhs = Long.parseLong(tokens.get(i-1)); - long rhs = Long.parseLong(tokens.get(i+1)); - long result = calculate(lhs, rhs, op); - tokens.remove(i-1); - tokens.remove(i-1); - tokens.remove(i-1); - tokens.add(i-1, String.valueOf(result)); - i = i - 2; - } - } - } - return Long.parseLong(tokens.get(0)); - } - - public long solution(String expression) { - StringTokenizer tokenizer = new StringTokenizer(expression,"+-*",true); - List tokens = new LinkedList<>(); - while (tokenizer.hasMoreTokens()) { - tokens.add(tokenizer.nextToken()); - } - - long max = 0; - for (String[] precedence : precedences) { - long value = Math.abs(calculate(new LinkedList<>(tokens), precedence)); - if (value > max) max = value; - } - return max; - } -} diff --git "a/Sjaize/Exhaustive Search/\354\271\264\355\216\253.java" "b/Sjaize/Exhaustive Search/\354\271\264\355\216\253.java" deleted file mode 100644 index bb8f520ef..000000000 --- "a/Sjaize/Exhaustive Search/\354\271\264\355\216\253.java" +++ /dev/null @@ -1,16 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/42842 -class Solution { - public int[] solution(int brown, int yellow) { - int[] result = new int[2]; - int sum = (brown - 4) / 2; - for (int col = 1; col < sum; col++) { - int row = sum - col; - if (col * row == yellow) { - result[0] = row + 2; - result[1] = col + 2; - break; - } - } - return result; - } -} diff --git "a/Sjaize/Recursion/\353\252\250\354\235\214\354\202\254\354\240\204.java" "b/Sjaize/Recursion/\353\252\250\354\235\214\354\202\254\354\240\204.java" deleted file mode 100644 index a1d757ac3..000000000 --- "a/Sjaize/Recursion/\353\252\250\354\235\214\354\202\254\354\240\204.java" +++ /dev/null @@ -1,18 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/84512 -import java.util.ArrayList; -import java.util.List; - -class Solution { - private static final char[] LETTERS = new char[]{'A','E','I','O','U'}; - public int solution(String word) { - List words = new ArrayList<>(); - generate("", words); - return words.indexOf(word); - } - - private void generate(String word, List words) { - words.add(word); - if (word.length() == 5) return; - for (char c : LETTERS) generate(word+c, words); - } -} diff --git "a/Sjaize/Recursion/\354\277\274\353\223\234\354\225\225\354\266\225 \355\233\204 \352\260\234\354\210\230 \354\204\270\352\270\260.java" "b/Sjaize/Recursion/\354\277\274\353\223\234\354\225\225\354\266\225 \355\233\204 \352\260\234\354\210\230 \354\204\270\352\270\260.java" deleted file mode 100644 index e689d3b6a..000000000 --- "a/Sjaize/Recursion/\354\277\274\353\223\234\354\225\225\354\266\225 \355\233\204 \352\260\234\354\210\230 \354\204\270\352\270\260.java" +++ /dev/null @@ -1,33 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/68936 -class Solution { - private static int zero = 0; - private static int one = 0; - - public int[] solution(int[][] arr) { - count(arr, 0, 0, arr.length); - return new int[] {zero, one}; - } - - private void count(int[][] arr, int row, int col, int length) { - boolean compress = true; - int start = arr[row][col]; - for (int i = 0; i < length; i++) { - for (int j = 0; j < length; j++) { - if (start != arr[row+i][col+j]) { - compress = false; - break; - } - } - } - if (compress) { - if (start == 0) ++zero; - else ++one; - return; - } - int newLength = length/2; - count(arr, row, col, newLength); - count(arr, row + newLength, col, newLength); - count(arr, row, col + newLength, newLength); - count(arr, row + newLength, col + newLength, newLength); - } -} diff --git "a/Sjaize/Recursion/\355\225\230\353\205\270\354\235\264\354\235\230 \355\203\221.java" "b/Sjaize/Recursion/\355\225\230\353\205\270\354\235\264\354\235\230 \355\203\221.java" deleted file mode 100644 index 13d012e01..000000000 --- "a/Sjaize/Recursion/\355\225\230\353\205\270\354\235\264\354\235\230 \355\203\221.java" +++ /dev/null @@ -1,31 +0,0 @@ -import java.util.ArrayList; -import java.util.List; - -class Solution { - public int[][] solution(int n) { - Trace trace = NblockFromAtoB(1,3,n); - return trace.toArray(); - } - - private Trace NblockFromAtoB(int A, int B, int n) { - if (n == 1) return new Trace(A,B); - int C = 6 - A - B; - return NblockFromAtoB(A,C,n-1) - .add(NblockFromAtoB(A,B,1)) - .add(NblockFromAtoB(C,B,n-1)); - } - - private static class Trace { - private List trace = new ArrayList<>(); - Trace(int A, int B) { - trace.add(new int[] {A,B}); - } - private Trace add(Trace other) { - trace.addAll(other.trace); - return this; - } - private int[][] toArray() { - return trace.toArray(new int[0][]); - } - } -} diff --git a/Sjaize/Sorting/H-index.java b/Sjaize/Sorting/H-index.java deleted file mode 100644 index 488a292fd..000000000 --- a/Sjaize/Sorting/H-index.java +++ /dev/null @@ -1,16 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/42747 -import java.util.Arrays; - -class Solution { - public int solution(int[] citations) { - Arrays.sort(citations); - - for (int h = citations.length; h >= 1; h--) { - int index = citations.length - h; - if (citations[index] >= h) { - return h; - } - } - return 0; - } -} diff --git "a/Sjaize/Sorting/K\353\262\210\354\247\270\354\210\230.java" "b/Sjaize/Sorting/K\353\262\210\354\247\270\354\210\230.java" deleted file mode 100644 index bd2f2a207..000000000 --- "a/Sjaize/Sorting/K\353\262\210\354\247\270\354\210\230.java" +++ /dev/null @@ -1,19 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/42748 -import java.util.Arrays; - -class Solution { - public int[] solution(int[] array, int[][] commands) { - int[] answer = new int[commands.length]; - - for (int index = 0; index < answer.length; index++) { - int i = commands[index][0] - 1; - int j = commands[index][1]; - int k = commands[index][2] - 1; - int[] sub = Arrays.copyOfRange(array, i , j); - Arrays.sort(sub); - answer[index] = sub[k]; - } - - return answer; - } -} diff --git "a/Sjaize/Sorting/\352\260\200\354\236\245 \355\201\260 \354\210\230.java" "b/Sjaize/Sorting/\352\260\200\354\236\245 \355\201\260 \354\210\230.java" deleted file mode 100644 index bb08cc929..000000000 --- "a/Sjaize/Sorting/\352\260\200\354\236\245 \355\201\260 \354\210\230.java" +++ /dev/null @@ -1,17 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/42746 -import java.util.Arrays; -import java.util.stream.Collectors; - -class Solution { - public String solution(int[] numbers) { - return Arrays.stream(numbers) - .mapToObj(String::valueOf) - .sorted((s1, s2) -> { - int original = Integer.parseInt(s1 + s2); - int reversed = Integer.parseInt(s2 + s1); - return reversed - original; - }) - .collect(Collectors.joining("")) - .replaceAll("^0+", "0"); - } -} diff --git "a/Sjaize/Sorting/\353\221\220 \352\260\234 \353\275\221\354\225\204\354\204\234 \353\215\224\355\225\230\352\270\260.java" "b/Sjaize/Sorting/\353\221\220 \352\260\234 \353\275\221\354\225\204\354\204\234 \353\215\224\355\225\230\352\270\260.java" deleted file mode 100644 index b3dcd4968..000000000 --- "a/Sjaize/Sorting/\353\221\220 \352\260\234 \353\275\221\354\225\204\354\204\234 \353\215\224\355\225\230\352\270\260.java" +++ /dev/null @@ -1,17 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/68644 -import java.util.Set; -import java.util.HashSet; - -class Solution { - public int[] solution(int[] numbers) { - Set set = new HashSet<> (); - - for (int i = 0; i < numbers.length - 1; i++) { - for (int j = i + 1; j < numbers.length; j++) { - set.add(numbers[i] + numbers[j]); - } - } - - return set.stream().mapToInt(Integer::intValue).sorted().toArray(); - } -} diff --git "a/Sjaize/Sorting/\353\251\224\353\211\264 \353\246\254\353\211\264\354\226\274.java" "b/Sjaize/Sorting/\353\251\224\353\211\264 \353\246\254\353\211\264\354\226\274.java" deleted file mode 100644 index a293a746c..000000000 --- "a/Sjaize/Sorting/\353\251\224\353\211\264 \353\246\254\353\211\264\354\226\274.java" +++ /dev/null @@ -1,75 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/72411 - -import java.util.*; -import java.util.stream.Collectors; - -class Solution { - private static class Course { - public final String course; - public final int occurrences; - - public Course(String course, int occurrences) { - this.course = course; - this.occurrences = occurrences; - } - } - - private void getCourses(char nextMenu, Set selectedMenus, - List> orderList, - Map> courses) { - int occurrences = (int) orderList.stream() - .filter(order->order.containsAll(selectedMenus)) - .count(); - if (occurrences < 2) return; - - int size = selectedMenus.size(); - if (courses.containsKey(size)) { - List courseList = courses.get(size); - Course course = new Course(selectedMenus.stream() - .sorted() - .collect(Collectors.joining("")) - , occurrences); - Course original = courseList.get(0); - if (original.occurrences < occurrences) { - courseList.clear(); - courseList.add(course); - } - else if (original.occurrences == occurrences) { - courseList.add(course); - } - } - - if (size >= 10) return; - for (char menuChar = nextMenu; menuChar <= 'Z'; menuChar++) { - String menu = String.valueOf(menuChar); - selectedMenus.add(menu); - getCourses((char) (menuChar + 1), selectedMenus, orderList, courses); - selectedMenus.remove(menu); - } - } - - public String[] solution(String[] orders, int[] course) { - List> orderList = Arrays.stream(orders) - .map(String::chars) - .map(charStream -> charStream - .mapToObj(menu->String.valueOf((char) menu)) - .collect(Collectors.toSet())) - .collect(Collectors.toList()); - - Map> courses = new HashMap<>(); - for (int length : course) { - List list = new ArrayList<>(); - list.add(new Course("", 0)); - courses.put(length, list); - } - - getCourses('A', new HashSet<>(), orderList, courses); - - return courses.values().stream() - .filter(list->list.get(0).occurrences > 0) - .flatMap(List::stream) - .map(c->c.course) - .sorted() - .toArray(String[]::new); - } -} diff --git "a/Sjaize/Sorting/\353\254\270\354\236\220\354\227\264 \353\202\264 \353\247\210\354\235\214\353\214\200\353\241\234 \354\240\225\353\240\254\355\225\230\352\270\260.java" "b/Sjaize/Sorting/\353\254\270\354\236\220\354\227\264 \353\202\264 \353\247\210\354\235\214\353\214\200\353\241\234 \354\240\225\353\240\254\355\225\230\352\270\260.java" deleted file mode 100644 index 6a7d4a738..000000000 --- "a/Sjaize/Sorting/\353\254\270\354\236\220\354\227\264 \353\202\264 \353\247\210\354\235\214\353\214\200\353\241\234 \354\240\225\353\240\254\355\225\230\352\270\260.java" +++ /dev/null @@ -1,14 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/12915 -import java.util.Arrays; - -class Solution { - public String[] solution(String[] strings, int n) { - Arrays.sort(strings, (s1, s2) -> { - if (s1.charAt(n) != s2.charAt(n)) { - return s1.charAt(n) - s2.charAt(n); - } - return s1.compareTo(s2); - }); - return strings; - } -} diff --git "a/Sjaize/Sorting/\353\254\270\354\236\220\354\227\264 \353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234 \353\260\260\354\271\230\355\225\230\352\270\260.java" "b/Sjaize/Sorting/\353\254\270\354\236\220\354\227\264 \353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234 \353\260\260\354\271\230\355\225\230\352\270\260.java" deleted file mode 100644 index ab3bdc4e7..000000000 --- "a/Sjaize/Sorting/\353\254\270\354\236\220\354\227\264 \353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234 \353\260\260\354\271\230\355\225\230\352\270\260.java" +++ /dev/null @@ -1,11 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/12917 -import java.util.Arrays; -import java.util.stream.Collectors; - -class Solution { - public String solution(String s) { - return Arrays.stream(s.split("")) - .sorted((s1, s2) -> s2.compareTo(s1)) - .collect(Collectors.joining()); - } -} diff --git "a/Sjaize/String/3\354\247\204\353\262\225 \353\222\244\354\247\221\352\270\260.java" "b/Sjaize/String/3\354\247\204\353\262\225 \353\222\244\354\247\221\352\270\260.java" deleted file mode 100644 index 7c27e08f7..000000000 --- "a/Sjaize/String/3\354\247\204\353\262\225 \353\222\244\354\247\221\352\270\260.java" +++ /dev/null @@ -1,16 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/68935 -class Solution { - public int solution(int n) { - int answer = 0; - int number = 1; - int i = 1; - while (n >= number * 3) number *= 3; - while (n != 0) { - answer += n / number * i; - n = n % number; - i *= 3; - number /= 3; - } - return answer; - } -} diff --git "a/Sjaize/String/\353\254\270\354\236\220\354\227\264 \353\202\264 p\354\231\200 y\354\235\230 \352\260\234\354\210\230.java" "b/Sjaize/String/\353\254\270\354\236\220\354\227\264 \353\202\264 p\354\231\200 y\354\235\230 \352\260\234\354\210\230.java" deleted file mode 100644 index 27066ee0d..000000000 --- "a/Sjaize/String/\353\254\270\354\236\220\354\227\264 \353\202\264 p\354\231\200 y\354\235\230 \352\260\234\354\210\230.java" +++ /dev/null @@ -1,8 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/12916 -class Solution { - boolean solution(String s) { - String str1 = s.replaceAll("[pP]", ""); - String str2 = s.replaceAll("[Yy]", ""); - return str1.length() == str2.length(); - } -} diff --git "a/Sjaize/String/\353\254\270\354\236\220\354\227\264 \353\213\244\353\243\250\352\270\260 \352\270\260\353\263\270.java" "b/Sjaize/String/\353\254\270\354\236\220\354\227\264 \353\213\244\353\243\250\352\270\260 \352\270\260\353\263\270.java" deleted file mode 100644 index 8ffec3b27..000000000 --- "a/Sjaize/String/\353\254\270\354\236\220\354\227\264 \353\213\244\353\243\250\352\270\260 \352\270\260\353\263\270.java" +++ /dev/null @@ -1,6 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/12918 -class Solution { - public boolean solution(String s) { - return s.matches("[0-9]{4}|{6}"); - } -} diff --git "a/Sjaize/String/\353\254\270\354\236\220\354\227\264 \354\225\225\354\266\225.java" "b/Sjaize/String/\353\254\270\354\236\220\354\227\264 \354\225\225\354\266\225.java" deleted file mode 100644 index 3e30df6c6..000000000 --- "a/Sjaize/String/\353\254\270\354\236\220\354\227\264 \354\225\225\354\266\225.java" +++ /dev/null @@ -1,34 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/60057 -class Solution { - public int solution(String s) { - int result = Integer.MAX_VALUE; - for (int n = 1; n <= s.length(); n++) { - StringBuilder sb = new StringBuilder(); - int count = 1; - int x = 0, y = n; - String previous = s.substring(x, y); - while (true) { - x = x + n; - y = y + n; - if (x >= s.length()) { - sb.append(count == 1 ? previous : count + previous); - break; - } - if (y > s.length()) { - sb.append(count == 1 ? previous : count + previous); - sb.append(s.substring(x, s.length())); - break; - } - String next = s.substring(x, y); - if (previous.equals(next)) count++; - else { - sb.append(count == 1 ? previous : count + previous); - previous = next; - count = 1; - } - } - result = Math.min(result, sb.length()); - } - return result; - } -} diff --git "a/Sjaize/String/\354\210\253\354\236\220 \353\254\270\354\236\220\354\227\264\352\263\274 \354\230\201\353\213\250\354\226\264.java" "b/Sjaize/String/\354\210\253\354\236\220 \353\254\270\354\236\220\354\227\264\352\263\274 \354\230\201\353\213\250\354\226\264.java" deleted file mode 100644 index 5725ce3bc..000000000 --- "a/Sjaize/String/\354\210\253\354\236\220 \353\254\270\354\236\220\354\227\264\352\263\274 \354\230\201\353\213\250\354\226\264.java" +++ /dev/null @@ -1,13 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/81301 -class Solution { - private static final String[] words = { - "zero", "one", "two", "three", "four", - "five", "six", "seven", "eight", "nine" - }; - public int solution(String s) { - for (int i = 0; i < words.length; i++) { - s = s.replace(words[i], Integer.toString(i)); - } - return Integer.parseInt(s); - } -} diff --git "a/Sjaize/String/\354\213\234\354\240\200 \354\225\224\355\230\270.java" "b/Sjaize/String/\354\213\234\354\240\200 \354\225\224\355\230\270.java" deleted file mode 100644 index 67f284e25..000000000 --- "a/Sjaize/String/\354\213\234\354\240\200 \354\225\224\355\230\270.java" +++ /dev/null @@ -1,12 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/12926 -class Solution { - public String solution(String s, int n) { - char[] arr = s.toCharArray(); - for (int i = 0; i < arr.length; i++) { - if (arr[i] == ' ') continue; - if (Character.isUpperCase(arr[i])) arr[i] = (char)('A' + (arr[i]-'A'+n) % 26); - if (Character.isLowerCase(arr[i])) arr[i] = (char)('a' + (arr[i]-'a'+n) % 26); - } - return new String(arr); - } -} diff --git "a/Sjaize/String/\354\213\240\352\267\234 \354\225\204\354\235\264\353\224\224 \354\266\224\354\262\234.java" "b/Sjaize/String/\354\213\240\352\267\234 \354\225\204\354\235\264\353\224\224 \354\266\224\354\262\234.java" deleted file mode 100644 index 6b9ffa52f..000000000 --- "a/Sjaize/String/\354\213\240\352\267\234 \354\225\204\354\235\264\353\224\224 \354\266\224\354\262\234.java" +++ /dev/null @@ -1,16 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/72410 -class Solution { - public String solution(String new_id) { - new_id = new_id.toLowerCase(); - new_id = new_id.replaceAll("[^a-z0-9\\-_.]", ""); - new_id = new_id.replaceAll("[.]{2,}", "."); - new_id = new_id.replaceAll("^[.]|[.]$", ""); - if (new_id.length() == 0) new_id = new_id + "a"; - if (new_id.length() >= 16) { - new_id = new_id.substring(0, 15); - new_id = new_id.replaceAll("[.]$", ""); - } - while (new_id.length() <= 2) new_id += new_id.charAt(new_id.length() - 1); - return new_id; - } -} diff --git "a/Sjaize/String/\354\235\264\354\203\201\355\225\234 \353\254\270\354\236\220 \353\247\214\353\223\244\352\270\260.java" "b/Sjaize/String/\354\235\264\354\203\201\355\225\234 \353\254\270\354\236\220 \353\247\214\353\223\244\352\270\260.java" deleted file mode 100644 index aeb1cf576..000000000 --- "a/Sjaize/String/\354\235\264\354\203\201\355\225\234 \353\254\270\354\236\220 \353\247\214\353\223\244\352\270\260.java" +++ /dev/null @@ -1,19 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/12930 -class Solution { - public String solution(String s) { - StringBuilder sb = new StringBuilder(); - boolean toUpper = true; - for (char c : s.toCharArray()) { - if (!Character.isAlphabetic(c)) { - sb.append(c); - toUpper = true; - } - else { - if (toUpper) sb.append(Character.toUpperCase(c)); - else sb.append(Character.toLowerCase(c)); - toUpper = !toUpper; - } - } - return sb.toString(); - } -} diff --git "a/Sjaize/String/\354\235\264\354\247\204 \353\263\200\355\231\230 \353\260\230\353\263\265\355\225\230\352\270\260.java" "b/Sjaize/String/\354\235\264\354\247\204 \353\263\200\355\231\230 \353\260\230\353\263\265\355\225\230\352\270\260.java" deleted file mode 100644 index ec79248e5..000000000 --- "a/Sjaize/String/\354\235\264\354\247\204 \353\263\200\355\231\230 \353\260\230\353\263\265\355\225\230\352\270\260.java" +++ /dev/null @@ -1,17 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/70129 -class Solution { - public int[] solution(String s) { - int loop = 0; - int removed = 0; - while (!s.equals("1")) { - StringBuilder sb = new StringBuilder(); - for (char c : s.toCharArray()) { - if (c == '0') ++removed; - else sb.append(c); - } - s = Integer.toString(sb.length(), 2); - ++loop; - } - return new int[] {loop, removed}; - } -} diff --git "a/Sjaize/String/\354\236\220\354\227\260\354\210\230 \353\222\244\354\247\221\354\226\264 \353\260\260\354\227\264\353\241\234 \353\247\214\353\223\244\352\270\260.java" "b/Sjaize/String/\354\236\220\354\227\260\354\210\230 \353\222\244\354\247\221\354\226\264 \353\260\260\354\227\264\353\241\234 \353\247\214\353\223\244\352\270\260.java" deleted file mode 100644 index 74e4d9600..000000000 --- "a/Sjaize/String/\354\236\220\354\227\260\354\210\230 \353\222\244\354\247\221\354\226\264 \353\260\260\354\227\264\353\241\234 \353\247\214\353\223\244\352\270\260.java" +++ /dev/null @@ -1,11 +0,0 @@ -// https://school.programmers.co.kr/learn/courses/30/lessons/12932 -class Solution { - public int[] solution(long n) { - String str = String.valueOf(n); - String reversed = new StringBuilder(str).reverse().toString(); - char[] arr = reversed.toCharArray(); - int[] result = new int[arr.length]; - for (int i = 0; i < result.length; i++) result[i] = arr[i] - '0'; - return result; - } -} From 55f0a2e0c2d2c4b80c9cfeab9ef213ef9b2463a1 Mon Sep 17 00:00:00 2001 From: sanghwa <85687130+aga1215@users.noreply.github.com> Date: Mon, 22 Dec 2025 13:00:01 +0900 Subject: [PATCH 05/45] Delete cocorig directory --- cocorig/BOJ/boj_1037.js | 25 ------- cocorig/BOJ/boj_10828.js | 4 -- cocorig/BOJ/boj_17425.js | 55 --------------- cocorig/BOJ/boj_17427.js | 69 ------------------- cocorig/BOJ/boj_1874.js | 0 cocorig/BOJ/boj_1929.js | 47 ------------- cocorig/BOJ/boj_1978.js | 21 ------ cocorig/BOJ/boj_2609.js | 26 ------- cocorig/BOJ/boj_4375.js | 51 -------------- cocorig/BOJ/boj_6588.js | 43 ------------ cocorig/BOJ/boj_9093.js | 14 ---- cocorig/BOJ/input.txt | 9 --- ..._K\353\262\210\354\247\270\354\210\230.js" | 11 --- ...00\354\240\270\354\230\244\352\270\260.js" | 12 ---- ...04\354\235\230\352\270\270\354\235\264.js" | 19 ----- ...0\353\212\224_\354\210\253\354\236\220.js" | 14 ---- "cocorig/PGS/pgs_\353\202\264\354\240\201.js" | 9 --- ...54\354\235\264\354\235\230\355\225\251.js" | 33 --------- ...y\354\235\230_\352\260\234\354\210\230.js" | 37 ---------- ...50\354\210\234\353\260\260\354\271\230.js" | 12 ---- ...64\353\213\244\353\243\250\352\270\260.js" | 22 ------ ...10\354\225\241\352\263\204\354\202\260.js" | 12 ---- ...s_\354\202\274\354\264\235\354\202\254.js" | 11 --- ...34\353\260\251\354\260\276\352\270\260.js" | 11 --- ...5\354\210\230\353\260\225\354\210\230?.js" | 13 ---- ...34\354\240\200\354\225\224\355\230\270.js" | 19 ----- ...10\354\240\204\354\247\200\353\214\200.js" | 61 ---------------- ...20\353\215\224\355\225\230\352\270\260.js" | 10 --- ...21\353\215\224\355\225\230\352\270\260.js" | 13 ---- ...20\353\247\214\353\223\244\352\270\260.js" | 24 ------- ...60\354\271\230\355\225\230\352\270\260.js" | 15 ---- ...61\352\267\274\355\214\220\353\263\204.js" | 27 -------- ...34\352\261\260\355\225\230\352\270\260.js" | 15 ---- ...5_\353\263\204\354\260\215\352\270\260.js" | 18 ----- ...14\352\263\265\353\260\260\354\210\230.js" | 15 ---- ...4\354\270\240_\354\266\224\354\270\241.js" | 20 ------ ...0\354\203\244\353\223\234_\354\210\230.js" | 16 ----- ...30\354\203\244\353\223\234\354\210\230.js" | 4 -- ...70\352\260\200\353\246\254\352\270\260.js" | 7 -- ...4\354\235\230_\353\215\247\354\205\210.js" | 32 --------- ...0\354\247\270_\354\243\204\354\210\230.js" | 20 ------ cocorig/doj_Subdate.js | 0 cocorig/doj_Two_Printers.js | 0 cocorig/doj_Ugly_Numbers.js | 0 cocorig/doj_tic-tac-toe-game.js | 0 ...04\354\265\234\353\214\200\355\231\224.js" | 51 -------------- ...34\354\244\221\354\227\220\354\204\234.js" | 28 -------- ..._\354\236\210\354\227\210\353\202\230?.js" | 43 ------------ ...34\354\244\221\354\227\220\354\204\234.js" | 33 --------- ...25\354\266\225\355\225\230\352\270\260.js" | 43 ------------ ...76\354\225\204\353\202\264\352\270\260.js" | 32 --------- ...10\354\241\264\353\251\264\354\240\221.js" | 29 -------- 52 files changed, 1155 deletions(-) delete mode 100644 cocorig/BOJ/boj_1037.js delete mode 100644 cocorig/BOJ/boj_10828.js delete mode 100644 cocorig/BOJ/boj_17425.js delete mode 100644 cocorig/BOJ/boj_17427.js delete mode 100644 cocorig/BOJ/boj_1874.js delete mode 100644 cocorig/BOJ/boj_1929.js delete mode 100644 cocorig/BOJ/boj_1978.js delete mode 100644 cocorig/BOJ/boj_2609.js delete mode 100644 cocorig/BOJ/boj_4375.js delete mode 100644 cocorig/BOJ/boj_6588.js delete mode 100644 cocorig/BOJ/boj_9093.js delete mode 100644 cocorig/BOJ/input.txt delete mode 100644 "cocorig/PGS/pgs_K\353\262\210\354\247\270\354\210\230.js" delete mode 100644 "cocorig/PGS/pgs_\352\260\200\354\232\264\353\215\260\352\270\200\354\236\220\352\260\200\354\240\270\354\230\244\352\270\260.js" delete mode 100644 "cocorig/PGS/pgs_\352\262\271\354\271\230\353\212\224\354\204\240\353\266\204\354\235\230\352\270\270\354\235\264.js" delete mode 100644 "cocorig/PGS/pgs_\353\202\230\353\210\204\354\226\264_\353\226\250\354\226\264\354\247\200\353\212\224_\354\210\253\354\236\220.js" delete mode 100644 "cocorig/PGS/pgs_\353\202\264\354\240\201.js" delete mode 100644 "cocorig/PGS/pgs_\353\221\220\354\240\225\354\210\230\354\202\254\354\235\264\354\235\230\355\225\251.js" delete mode 100644 "cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264_\353\202\264_p\354\231\200y\354\235\230_\352\260\234\354\210\230.js" delete mode 100644 "cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264\353\202\264\353\246\274\354\260\250\354\210\234\353\260\260\354\271\230.js" delete mode 100644 "cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264\353\213\244\353\243\250\352\270\260.js" delete mode 100644 "cocorig/PGS/pgs_\353\266\200\354\241\261\355\225\234\352\270\210\354\225\241\352\263\204\354\202\260.js" delete mode 100644 "cocorig/PGS/pgs_\354\202\274\354\264\235\354\202\254.js" delete mode 100644 "cocorig/PGS/pgs_\354\204\234\354\232\270\354\227\220\354\204\234\352\271\200\354\204\234\353\260\251\354\260\276\352\270\260.js" delete mode 100644 "cocorig/PGS/pgs_\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230?.js" delete mode 100644 "cocorig/PGS/pgs_\354\213\234\354\240\200\354\225\224\355\230\270.js" delete mode 100644 "cocorig/PGS/pgs_\354\225\210\354\240\204\354\247\200\353\214\200.js" delete mode 100644 "cocorig/PGS/pgs_\354\227\206\353\212\224\354\210\253\354\236\220\353\215\224\355\225\230\352\270\260.js" delete mode 100644 "cocorig/PGS/pgs_\354\235\214\354\226\221\353\215\224\355\225\230\352\270\260.js" delete mode 100644 "cocorig/PGS/pgs_\354\235\264\354\203\201\355\225\234\353\254\270\354\236\220\353\247\214\353\223\244\352\270\260.js" delete mode 100644 "cocorig/PGS/pgs_\354\240\225\354\210\230_\353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234_\353\260\260\354\271\230\355\225\230\352\270\260.js" delete mode 100644 "cocorig/PGS/pgs_\354\240\225\354\210\230\354\240\234\352\263\261\352\267\274\355\214\220\353\263\204.js" delete mode 100644 "cocorig/PGS/pgs_\354\240\234\354\235\274\354\236\221\354\235\200\354\210\230\354\240\234\352\261\260\355\225\230\352\270\260.js" delete mode 100644 "cocorig/PGS/pgs_\354\247\201\354\202\254\352\260\201\355\230\225_\353\263\204\354\260\215\352\270\260.js" delete mode 100644 "cocorig/PGS/pgs_\354\265\234\353\214\200\352\263\265\354\225\275\354\210\230\354\231\200\354\265\234\354\206\214\352\263\265\353\260\260\354\210\230.js" delete mode 100644 "cocorig/PGS/pgs_\354\275\234\353\235\274\354\270\240_\354\266\224\354\270\241.js" delete mode 100644 "cocorig/PGS/pgs_\355\225\230\354\203\244\353\223\234_\354\210\230.js" delete mode 100644 "cocorig/PGS/pgs_\355\225\230\354\203\244\353\223\234\354\210\230.js" delete mode 100644 "cocorig/PGS/pgs_\355\225\270\353\223\234\355\217\260\353\262\210\355\230\270\352\260\200\353\246\254\352\270\260.js" delete mode 100644 "cocorig/PGS/pgs_\355\226\211\353\240\254\354\235\230_\353\215\247\354\205\210.js" delete mode 100644 "cocorig/doj_120\353\262\210\354\247\270_\354\243\204\354\210\230.js" delete mode 100644 cocorig/doj_Subdate.js delete mode 100644 cocorig/doj_Two_Printers.js delete mode 100644 cocorig/doj_Ugly_Numbers.js delete mode 100644 cocorig/doj_tic-tac-toe-game.js delete mode 100644 "cocorig/doj_\352\260\200\354\204\261\353\271\204\354\265\234\353\214\200\355\231\224.js" delete mode 100644 "cocorig/doj_\352\265\254\352\270\200\354\236\205\354\202\254\353\254\270\354\240\234\354\244\221\354\227\220\354\204\234.js" delete mode 100644 "cocorig/doj_\352\267\270\354\213\234\352\260\204_\354\202\254\353\254\264\354\213\244\354\227\220_\353\252\207_\353\252\205_\354\236\210\354\227\210\353\202\230?.js" delete mode 100644 "cocorig/doj_\353\213\244\354\235\214\354\236\205\354\202\254\353\254\270\354\240\234\354\244\221\354\227\220\354\204\234.js" delete mode 100644 "cocorig/doj_\353\254\270\354\236\220\354\227\264_\354\225\225\354\266\225\355\225\230\352\270\260.js" delete mode 100644 "cocorig/doj_\353\271\204\354\212\267\355\225\234_\353\213\250\354\226\264_\354\260\276\354\225\204\353\202\264\352\270\260.js" delete mode 100644 "cocorig/doj_\354\225\204\353\247\210\354\241\264\353\251\264\354\240\221.js" diff --git a/cocorig/BOJ/boj_1037.js b/cocorig/BOJ/boj_1037.js deleted file mode 100644 index 42d8d80c3..000000000 --- a/cocorig/BOJ/boj_1037.js +++ /dev/null @@ -1,25 +0,0 @@ -const fs = require('fs'); -const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; -let input = fs.readFileSync(filePath).toString().split('\n') - - - -let divisor =input[1].split(' ').map(item => { - return Number(item); -}).sort((a , b) => a - b); -// console.log(divisor);// [ 2, 4 ] - - -function getDivisor(divisor){ - - let minDivisor = Math.min(...divisor); - let maxDivisor = Math.max(...divisor); - const N = minDivisor * maxDivisor; - return N; -} -const result = getDivisor(divisor) -console.log(result); - -// 입력받은 약수 배열을 정렬한다 -// 작은수와 큰수를 곱한다 - diff --git a/cocorig/BOJ/boj_10828.js b/cocorig/BOJ/boj_10828.js deleted file mode 100644 index 116b9d5a4..000000000 --- a/cocorig/BOJ/boj_10828.js +++ /dev/null @@ -1,4 +0,0 @@ -const fs = require("fs"); -let input = fs.readFileSync("./input.txt").toString(); - -console.log(input); \ No newline at end of file diff --git a/cocorig/BOJ/boj_17425.js b/cocorig/BOJ/boj_17425.js deleted file mode 100644 index 9ebaede00..000000000 --- a/cocorig/BOJ/boj_17425.js +++ /dev/null @@ -1,55 +0,0 @@ -const fs = require('fs'); -const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; -let input = fs.readFileSync(filePath).toString().trim().split('\n').map(Number); - -const N = input.shift(); // 5 -const input1 = input.slice(1,N + 1); - - - - -// 시간 초과 -// for(let j = 0; j < len; j++) { -// const N = input1[j]; -// let sum = 0; - -// for(let i = 1; i <= N; i++){ -// // (N / i ) -> i의 배수의 개수를 구하는 식 -// sum += i * Math.floor((N) / i); -// } - -// console.log(sum); -// } - - -let fx = new Array(1000001).fill(1); //// 해당 자연수의 모든 약수를 더한 변수. -let dp = new Array(1000001); // // 해당 자연수 이하의 모든 fx값을 더한 변수. -fx[0] = 0; -dp[0] = 0; - - -// fx 배열을 구성 -for(let i = 2; i<=1000000; i++){ - for(let j = 1; i * j<=1000000; j++){ - fx[i * j] += i; - - } -} - -// dp 배열 구성 -for (let i = 1; i <= 1000000; i++) { - dp[i] = dp[i - 1] + fx[i]; -} - - - - -const answer = []; - -input.forEach(item=>{ - answer.push(dp[item]) -}) - - - -console.log(answer.join('\n')) diff --git a/cocorig/BOJ/boj_17427.js b/cocorig/BOJ/boj_17427.js deleted file mode 100644 index 5f20e7db3..000000000 --- a/cocorig/BOJ/boj_17427.js +++ /dev/null @@ -1,69 +0,0 @@ -const fs = require('fs'); -const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; -let input = fs.readFileSync(filePath).toString(); - -const N = parseInt(input); - -//** g(N)약수의 합 구하기 -// 약수의 반대 개념인 배수로 풀어야 한다!!! 배수의 개수 == 약수를 가진 값들 개수 -// 1. 1 ~ 7의 수 중 배수의 개수 구하기 -// 1~7까지의 수 중 1의 배수의 개수는 ? ( 7 / 1 ) 은 7 -// 2의 배수의 개수는 ->(7 / 2 ) 는 ? 3. 5 -// 3의 배수의 개수는 -> (7 / 3 ) -> 2.3333 - -// 2. 이 약수들의 합을 구함 -// 1 ~ 7의 수 중 1을 약수로 갖는 수의 개수가 7개라는 것. -// 2의 약수로 갖는 수의 개수가 3개라는 것 -// 2 * (2를 약수로 갖는 수의 개수) => 6 , 2가 3개 있다는 뜻이므로 2 * 3을 해줘야함 -// 3 * (3을 약수로 갖는 수의 개수 ) => 6 -// 약수를 갖는 값들의 개수이므로 해당 수와 곱해야함 -// let sum = 0; - -// for(let i = 1; i <= N; i++){ -// // (N / i ) -> i의 배수의 개수를 구하는 식 -// sum += i * Math.floor((N) / i); -// } - -// console.log(sum); - - - -const sqrtN = Math.floor(Math.sqrt(N)); // 3 -const result = []; - -for(let i = 1; i <= sqrtN; i++){ // 1 ~ 3까지만 반복 - if(N % i === 0){ // 12 % 1 , 12 % 2 , 12 % 3 - result.push(i); // 1 , 2,3 - - if(i !== N / i){ // 1 != 12 / 1 , 2 != 12 / 2 , 3 != 12 /3 - result.push(N / i); // 12 , 6, 4 - } - } -} -console.log(result); -const ans = result.reduce((acc , v)=>{ - return acc + v; -}, 0); - -console.log(ans); - -// 시간 초과 코드 -// let result = 0; -// function getDivisor(n){ - -// for(let i = 1; i <= n; i++){ - -// for(let j = 1; j <= i; j++){ -// if( i % j === 0){ -// result += j; -// } -// } - -// } -// return result; -// } -// const ans = getDivisor(N); -// console.log(ans); - - - diff --git a/cocorig/BOJ/boj_1874.js b/cocorig/BOJ/boj_1874.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/cocorig/BOJ/boj_1929.js b/cocorig/BOJ/boj_1929.js deleted file mode 100644 index b00e05e47..000000000 --- a/cocorig/BOJ/boj_1929.js +++ /dev/null @@ -1,47 +0,0 @@ -const fs = require('fs'); -const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; -let input = fs.readFileSync(filePath).toString().split(' ').map(Number); -// console.log(input); - -const M = input[0]; -const N = input[1]; - - -//M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. - -// 1 . 반복문 (시간복잡도 O(n)) 가장 기본적인 방법 (빈복문을 수행하면서 1이외의 수로 나누어 떨어지지 않는지 확인) -> 시간 초과 - -// function isPrime(num){ -// if(num === 1) return false; // 1은 소수가 아님 -// for(let i = 2; i < num; i++){ -// if(num % i === 0 ) return false; -// // 다른 수와 나누어 떨어진다면 소수가 아님 -// } -// return num; // 반복문 종료할때까지 if문이 실행되지 않았다면 소수 -// } - -// for(let i = M; i <= N; i++) { -// if(isPrime(i)){ -// console.log(isPrime(i)); -// } -// } - -// 2. 반복문 최적화 num의 제곱근까지만 반복하기 - - -function isPrime(num){ - if(num === 1) return false; // 1은 소수가 아님 - for(let i = 2; i <= parseInt(Math.sqrt(num)); i++){ - if(num % i === 0 ) return false; - // 다른 수와 나누어 떨어진다면 소수가 아님 - } - return num; // 반복문 종료할때까지 if문이 실행되지 않았다면 소수 -} - -for(let i = M; i <= N; i++) { - if(isPrime(i)){ - console.log(isPrime(i)); - } -} - - diff --git a/cocorig/BOJ/boj_1978.js b/cocorig/BOJ/boj_1978.js deleted file mode 100644 index 46dc0be68..000000000 --- a/cocorig/BOJ/boj_1978.js +++ /dev/null @@ -1,21 +0,0 @@ -const fs = require('fs'); -const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; -let input = fs.readFileSync(filePath).toString().trim().split('\n') - -const list = input[1].split(' ').map(Number);//[ 1, 3, 5, 7 ] - -function isPrime(num){ - - if(num === 1) return false; // 1은 소수가 아님 - for(let i = 2; i <= parseInt(Math.sqrt(num)); i++){ - if(num % i === 0 ) return false; - // 다른 수와 나누어 떨어진다면 소수가 아님 - } - return true; - } - - - -console.log(list.filter(item => isPrime(item)).length); - - diff --git a/cocorig/BOJ/boj_2609.js b/cocorig/BOJ/boj_2609.js deleted file mode 100644 index 7bfd9ec60..000000000 --- a/cocorig/BOJ/boj_2609.js +++ /dev/null @@ -1,26 +0,0 @@ -const fs = require('fs'); -const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; -let input = fs.readFileSync(filePath).toString().split(' ').map(Number); - -let a = Math.max(...input) -let b = Math.min(...input) - - -function getGCD(a,b){ - let r = 0; - while(b !== 0){ - r = a % b; - a = b; - b = r; - } - return a; -} -console.log(getGCD(a ,b)); // 최대공약수 - - -function getLCM(a,b){ - let g = getGCD(a,b); - return (a * b) / g ; -} -console.log(getLCM(a,b)); // 최소공배수 - diff --git a/cocorig/BOJ/boj_4375.js b/cocorig/BOJ/boj_4375.js deleted file mode 100644 index c0af91dac..000000000 --- a/cocorig/BOJ/boj_4375.js +++ /dev/null @@ -1,51 +0,0 @@ -const fs = require('fs'); -const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; -let input = fs.readFileSync(filePath).toString().trim().split('\n').map(Number); - - -// 통과 -for(let i = 0; i < input.length; i++){ - let num = '1'; - let remainder = 1 % input[i]; - while(remainder !== 0){ - num += '1'; - remainder = (remainder * 10 + 1) % input[i]; - - } - console.log(num.length); -} - - - - -// 시간 초과 코드 -for(let i = 0; i < input.length; i++){ - let num = '1'; - let remainder = 1 % input[i]; - while(remainder !== 0){ - num += '1'; - remainder = Number(num) % input[i]; - - } - console.log(num.length); -} - -// 시간 초과가 나는 이유? -//내부 반복문: 내부 while 루프에서는 num이라는 문자열을 점점 늘려가며 나머지 연산을 수행했다. -// 이 과정에서 num을 숫자로 변환하고 나머지 연산을 계속 반복. 이 때 num의 길이가 계속 늘어나므로, 숫자 변환과 나머지 연산도 시간이 소요될 수 있다. - -// 1 % 3 = 1 -// 11 % 3 = 2 -// 111 % 3 = 0 0일때 111은 3의 배수가 된다 - -// 1 % 7 = 1 -// 11( 1 * 10 + 1 ) % 7 = 4 -// 111(4 * 10 + 1) % 7 = 6 -// 1111(6 * 10 + 1) % 7 = 5 -// 11111(5 * 10 + 1) % 7 = 2 -// 111111(2 * 10 + 1) % 7 = 0 -> 111111이 7의 배수 - -// 나머지 연산 최적화 -// 모듈러 연산을 활용하여 나머지를 계산함 -// 이렇게 하면 나머지 연산의 효율성이 증가하게 된다. - diff --git a/cocorig/BOJ/boj_6588.js b/cocorig/BOJ/boj_6588.js deleted file mode 100644 index 8579719c4..000000000 --- a/cocorig/BOJ/boj_6588.js +++ /dev/null @@ -1,43 +0,0 @@ -const fs = require('fs'); -const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; -let input = fs.readFileSync(filePath).toString().split('\n').map(Number); - - -// 골드바흐의 추측 :주어진 짝수 정수 n에 대해서, n을 두 소수의 합으로 나타내는 방법을 찾는 알고리즘 -//1. 주어진 짝수 정수 n을 입력 받습니다. -//2. 2부터 n까지의 모든 소수를 구합니다. (에라토스테네스의 체 등의 방법을 사용하여 소수를 구할 수 있습니다.) -//3. n을 두 소수의 합으로 나타낼 때, 두 소수의 조합을 찾습니다. -//4. 소수 i를 첫 번째 소수로 선택하고, (n - i)가 소수인지 검사합니다. -//5. n - i가 소수라면, i와 n - i가 n의 두 소수 합으로 나타낼 수 있습니다. -//6. 이런 조합을 찾을 때까지 i를 증가시키며 검사합니다. -//7. n의 두 소수 합 조합을 출력하거나 저장합니다. - -let ans = ""; -// 주어진 수보다 작은 소수 중에 가장 큰 수 찾기 -const max = Math.max(...input); // 42 - -const isPrime = new Array(max + 1).fill(true); - -isPrime[0] = false; -isPrime[1] = false; - - -for (let i = 2; i * i <= max; i++) { - if (isPrime[i]) { - for (let j = i * i; j <= max; j += i) { - isPrime[j] = false; - } - } -} - - -input.map( (n) =>{ - for(let i = 3; i <= n; i++){ - - if(isPrime[i] && isPrime[n - i]){ - ans += `${n} = ${i} + ${n - i}\n`; - break; - } - } -}); -console.log(ans); \ No newline at end of file diff --git a/cocorig/BOJ/boj_9093.js b/cocorig/BOJ/boj_9093.js deleted file mode 100644 index 2fb14e34c..000000000 --- a/cocorig/BOJ/boj_9093.js +++ /dev/null @@ -1,14 +0,0 @@ -const fs = require('fs'); -const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; -let input = fs.readFileSync(filePath).toString().split('\n'); - -const iter = input.shift(); //2 - -for(let i = 0; i < iter; i++){ - let words = input[i].split(' '); - let ans = words.map((word)=> - word.split('').reverse().join('') - ) - console.log(ans.join(' ')); - -} diff --git a/cocorig/BOJ/input.txt b/cocorig/BOJ/input.txt deleted file mode 100644 index 809f5d8cf..000000000 --- a/cocorig/BOJ/input.txt +++ /dev/null @@ -1,9 +0,0 @@ -8 -4 -3 -6 -8 -7 -5 -2 -1 \ No newline at end of file diff --git "a/cocorig/PGS/pgs_K\353\262\210\354\247\270\354\210\230.js" "b/cocorig/PGS/pgs_K\353\262\210\354\247\270\354\210\230.js" deleted file mode 100644 index 329392273..000000000 --- "a/cocorig/PGS/pgs_K\353\262\210\354\247\270\354\210\230.js" +++ /dev/null @@ -1,11 +0,0 @@ -// 1.[i, j, k]를 원소로 가진 2차원 배열 commands배열을 순회하면서 각 command 배열을 구조분해할당으로 [i, j, k]나눠줍니다. -// 2. array 배열에서 i부터 j까지의 부분 배열을 slice를 사용하여 잘라내고, 정렬해줍니다. -// 3. 정렬된 배열에서 k번째 숫자를 찾아 반환합니다. - -function solution(array, commands) { - return commands.map((command) => { - const [start, end, k] = command; - const sortedArr = array.slice(start - 1, end).sort((a, b) => a - b); - return sortedArr[k - 1]; - }); -} diff --git "a/cocorig/PGS/pgs_\352\260\200\354\232\264\353\215\260\352\270\200\354\236\220\352\260\200\354\240\270\354\230\244\352\270\260.js" "b/cocorig/PGS/pgs_\352\260\200\354\232\264\353\215\260\352\270\200\354\236\220\352\260\200\354\240\270\354\230\244\352\270\260.js" deleted file mode 100644 index d43893ffa..000000000 --- "a/cocorig/PGS/pgs_\352\260\200\354\232\264\353\215\260\352\270\200\354\236\220\352\260\200\354\240\270\354\230\244\352\270\260.js" +++ /dev/null @@ -1,12 +0,0 @@ -function solution(s) { - const index = Math.floor(s.length /2) - if(s.length % 2 !== 0){ - return s[index] - }else{ - - return s[index - 1] + s[index] - } - -} - -console.log(solution("qwer")); diff --git "a/cocorig/PGS/pgs_\352\262\271\354\271\230\353\212\224\354\204\240\353\266\204\354\235\230\352\270\270\354\235\264.js" "b/cocorig/PGS/pgs_\352\262\271\354\271\230\353\212\224\354\204\240\353\266\204\354\235\230\352\270\270\354\235\264.js" deleted file mode 100644 index bd82053cd..000000000 --- "a/cocorig/PGS/pgs_\352\262\271\354\271\230\353\212\224\354\204\240\353\266\204\354\235\230\352\270\270\354\235\264.js" +++ /dev/null @@ -1,19 +0,0 @@ -function solution(lines) { - - let line = new Array(200).fill(0); - let ans = 0; - for(let i = 0; i < lines.length; i++){ - // [0,1] - for(let j = lines[i][0] + 100; j < lines[i][1] + 100; j++){ - line[j]++; - } - } - for(let i = 0; i < 200; i++){ - if(line[i] > 1){ - ans++; - } - } - return ans; -} - -console.log(solution([[0, 1], [2, 5], [3, 9]])); \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\353\202\230\353\210\204\354\226\264_\353\226\250\354\226\264\354\247\200\353\212\224_\354\210\253\354\236\220.js" "b/cocorig/PGS/pgs_\353\202\230\353\210\204\354\226\264_\353\226\250\354\226\264\354\247\200\353\212\224_\354\210\253\354\236\220.js" deleted file mode 100644 index d1d8dae07..000000000 --- "a/cocorig/PGS/pgs_\353\202\230\353\210\204\354\226\264_\353\226\250\354\226\264\354\247\200\353\212\224_\354\210\253\354\236\220.js" +++ /dev/null @@ -1,14 +0,0 @@ -function solution(arr, divisor) { - - // 먼저 나누어 떨어지는 원소를 걸러냄 - const divisibleNumbers = arr.filter((v)=> v % divisor === 0) - // 오름차순으로 정렬한 배열을 반환 - if(divisibleNumbers.length === 0){ - return [-1]; - } - return divisibleNumbers.sort((a,b)=> a - b); -} - -console.log(solution([3,2,6] ,10)); - -// [5, 10] \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\353\202\264\354\240\201.js" "b/cocorig/PGS/pgs_\353\202\264\354\240\201.js" deleted file mode 100644 index 5d1b5b619..000000000 --- "a/cocorig/PGS/pgs_\353\202\264\354\240\201.js" +++ /dev/null @@ -1,9 +0,0 @@ -function solution(a, b) { - let ans = 0; - for(let i = 0; i < a.length; i++){ - ans += a[i] * b[i]; - } - return ans; -} - -console.log(solution([-1,0,1],[1,0,-1])); \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\353\221\220\354\240\225\354\210\230\354\202\254\354\235\264\354\235\230\355\225\251.js" "b/cocorig/PGS/pgs_\353\221\220\354\240\225\354\210\230\354\202\254\354\235\264\354\235\230\355\225\251.js" deleted file mode 100644 index 0c65ac459..000000000 --- "a/cocorig/PGS/pgs_\353\221\220\354\240\225\354\210\230\354\202\254\354\235\264\354\235\230\355\225\251.js" +++ /dev/null @@ -1,33 +0,0 @@ -// function solution(a, b) { -// let ans = 0; -// if(a < b){ -// for(let i = a; i <= b; i++) { -// ans += i; -// } -// return ans; -// }else if(a > b){ -// for(let i = b; i <= a; i++) { -// ans += i; -// } -// return ans; -// }else{ -// return a; -// } - -// } - -function solution(a, b) { - - let sum = 0; - if(a === b){ - return a; - } - const [min, max] = [Math.min(a, b), Math.max(a, b)]; - - for(let i = min; i <= max; i++){ - sum += i; - } - return sum; -} - -console.log(solution(3, 5)); \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264_\353\202\264_p\354\231\200y\354\235\230_\352\260\234\354\210\230.js" "b/cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264_\353\202\264_p\354\231\200y\354\235\230_\352\260\234\354\210\230.js" deleted file mode 100644 index 25be02401..000000000 --- "a/cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264_\353\202\264_p\354\231\200y\354\235\230_\352\260\234\354\210\230.js" +++ /dev/null @@ -1,37 +0,0 @@ -// 문자열 내 p와 y의 개수 -// 문제 설명 -// 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. - -// 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. - -// 제한사항 -// 문자열 s의 길이 : 50 이하의 자연수 -// 문자열 s는 알파벳으로만 이루어져 있습니다. -// 입출력 예 -// s answer -// "pPoooyY" true -// "Pyy" false -// 입출력 예 설명 -// 입출력 예 #1 -// 'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니다. - -// 입출력 예 #2 -// 'p'의 개수 1개, 'y'의 개수 2개로 다르므로 false를 return 합니다. - - -function solution(s){ - - let str = s.toLowerCase(); - const p = str.split('p').length -1; - const y = str.split('y').length -1; - - if( p === y || 0 ){ - return true; - }else{ - return false; - } - -} - -console.log(solution("fkdfo")); - diff --git "a/cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264\353\202\264\353\246\274\354\260\250\354\210\234\353\260\260\354\271\230.js" "b/cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264\353\202\264\353\246\274\354\260\250\354\210\234\353\260\260\354\271\230.js" deleted file mode 100644 index 778aad2c8..000000000 --- "a/cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264\353\202\264\353\246\274\354\260\250\354\210\234\353\260\260\354\271\230.js" +++ /dev/null @@ -1,12 +0,0 @@ -function solution(s) { - - const ans = s.split('').sort((a,b)=>{ - const charA = a.charCodeAt(0) - const charB = b.charCodeAt(0) - return charB - charA; - }) - return ans.join(''); - - -} -console.log(solution("Zbcdefg")); diff --git "a/cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264\353\213\244\353\243\250\352\270\260.js" "b/cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264\353\213\244\353\243\250\352\270\260.js" deleted file mode 100644 index 6dd552967..000000000 --- "a/cocorig/PGS/pgs_\353\254\270\354\236\220\354\227\264\353\213\244\353\243\250\352\270\260.js" +++ /dev/null @@ -1,22 +0,0 @@ -function solution(s) { - const regExp = /[a-zA-Z]/g; // 숫자로만 구성 - - if((s.length === 4 || 6) ){ - return true; - }else{ - return false; - } -} -console.log(solution("13")); - -// x || y -// x가 참이면 x || y 는 참이된다. y의 값은 확인하지 않는다. -// 만약 x가 거짓이고 , y가 참이면 x || y 는 참이된다. - -// s.length === 4 || 6 -// s.length === 4 이 참인경우 전체 조건이 참 , 뒤엔 확인하지 않는다. -// s.length === 4 이 거짓인경우 6이 참인 경우 .전체 조건은 참이 된다. - -/// s.length === 4 || 6 이건 앞에께 참이든 거짓이든 다 true를 반환하게 된다. -// 그 이유는 내 의도대로 s.length === 6 조건을 를 확인하는게 아니라 숫자 리터럴로 간주되기 때문에 참(true) 간주된다. -// 0을 제외한 모든 숫자는 조건식에서 "참" \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\353\266\200\354\241\261\355\225\234\352\270\210\354\225\241\352\263\204\354\202\260.js" "b/cocorig/PGS/pgs_\353\266\200\354\241\261\355\225\234\352\270\210\354\225\241\352\263\204\354\202\260.js" deleted file mode 100644 index 9ac53f312..000000000 --- "a/cocorig/PGS/pgs_\353\266\200\354\241\261\355\225\234\352\270\210\354\225\241\352\263\204\354\202\260.js" +++ /dev/null @@ -1,12 +0,0 @@ - - -function solution(price, money, count) { - let moneyRequired = 0; - for(let i = 1; i <= count; i++){ - moneyRequired += price * i; - } - return (money - moneyRequired) < 0 ? Math.abs(money - moneyRequired) : 0 - -} -console.log(solution(3,40,4)); - diff --git "a/cocorig/PGS/pgs_\354\202\274\354\264\235\354\202\254.js" "b/cocorig/PGS/pgs_\354\202\274\354\264\235\354\202\254.js" deleted file mode 100644 index 0e32f8ffa..000000000 --- "a/cocorig/PGS/pgs_\354\202\274\354\264\235\354\202\254.js" +++ /dev/null @@ -1,11 +0,0 @@ -function solution(number) { - let sum = 0; - for(let i = 0; i < number.length; i++){ - for(let j = i+1; j < number.length; j++){ - for(let k = j+1; k < number.length; k++) - if(number[i]+number[j]+number[k] === 0) - sum += 1; - } - } - return sum; -} \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\354\204\234\354\232\270\354\227\220\354\204\234\352\271\200\354\204\234\353\260\251\354\260\276\352\270\260.js" "b/cocorig/PGS/pgs_\354\204\234\354\232\270\354\227\220\354\204\234\352\271\200\354\204\234\353\260\251\354\260\276\352\270\260.js" deleted file mode 100644 index 7d845a213..000000000 --- "a/cocorig/PGS/pgs_\354\204\234\354\232\270\354\227\220\354\204\234\352\271\200\354\204\234\353\260\251\354\260\276\352\270\260.js" +++ /dev/null @@ -1,11 +0,0 @@ -function solution(seoul) { - - return `김서방은 ${seoul.indexOf('Kim')}에 있다`; -} - - -function solution(arr, divisor) { - var answer = []; - return answer; -} -console.log(solution([5, 9, 7, 10] ,5)); diff --git "a/cocorig/PGS/pgs_\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230?.js" "b/cocorig/PGS/pgs_\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230?.js" deleted file mode 100644 index 4f9aa7752..000000000 --- "a/cocorig/PGS/pgs_\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230\353\260\225\354\210\230?.js" +++ /dev/null @@ -1,13 +0,0 @@ -function solution(n) { - let ans = ''; - for(let i = 0; i < n; i++) { - if(ans.length % 2 !== 0){ - ans += '박' - }else{ - ans += '수' - } - } - return ans; -} - -console.log(solution(3)); \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\354\213\234\354\240\200\354\225\224\355\230\270.js" "b/cocorig/PGS/pgs_\354\213\234\354\240\200\354\225\224\355\230\270.js" deleted file mode 100644 index 32395e818..000000000 --- "a/cocorig/PGS/pgs_\354\213\234\354\240\200\354\225\224\355\230\270.js" +++ /dev/null @@ -1,19 +0,0 @@ -// 1. 알파벳 밀기 연산 -// 1-1. 대소문자를 구분하여 각각의 시작점을 기준으로 문자를 밀어서 새로운 알파벳을 만듭니다. -// 1-2.밀기 연산을 수행할 때, 주어진 거리(n)을 이용하여 알파벳을 밀고, z 또는 Z를 넘어가는 경우에는 다시 a 또는 A부터 시작합니다. -// (ASCII : 65('A')부터 시작, 소문자는 97('a')부터 시작) -// String.fromCharCode : 코드값으로 아스키 문자반환 -function solution(s, n) { - return s - .split("") - .map((char) => { - if (char === " ") return " "; // 공백인 경우 그대로 반환 - const code = char.charCodeAt(0); // 현재 문자의 ASCII 코드 값을 가져옴 - console.log(code); - const start = char === char.toUpperCase() ? 65 : 97; - return String.fromCharCode(((code - start + n) % 26) + start); - }) - .join(""); -} - -console.log(solution("z", 3)); diff --git "a/cocorig/PGS/pgs_\354\225\210\354\240\204\354\247\200\353\214\200.js" "b/cocorig/PGS/pgs_\354\225\210\354\240\204\354\247\200\353\214\200.js" deleted file mode 100644 index b676a0051..000000000 --- "a/cocorig/PGS/pgs_\354\225\210\354\240\204\354\247\200\353\214\200.js" +++ /dev/null @@ -1,61 +0,0 @@ -// 안전한 지역이 몇 칸 있는지 찾아야함 - -function solution(board) { - - const Rows = board.length; - const Cols = board[0].length; - const borderLength = Rows * Cols; - - // 1. degenr좌표 구하기 - let dangerCoordinates = []; - board.forEach((v , i)=>{ - - let y = i; - for(let i = 0; i < v.length; i++){ - let x = i; - if(v[i]=== 1){ - dangerCoordinates.push([x, y]); - } - } - }) - - if(borderLength ==dangerCoordinates.length){ - return 0; - } - - let dengerZone = new Set(); - const denger = [ - [0, 0], - [-1, -1], - [0, -1], - [1, -1], - [-1, 0], - [-1, 1], - [0, 1], - [1, 1], - [1 , 0] - ] - - for(let i=0; i < dangerCoordinates.length; i++){ - let x = dangerCoordinates[i][0]; - let y = dangerCoordinates[i][1]; - - denger.forEach((v)=>{ - // // console.log(x + v[0]) , (y + v[1]); - // dengerZone.add((x + v[0]) + "," + (y + v[1])); - let newX = x + v[0]; - let newY = y + v[1]; - - // 예외 처리!!! , 음수 값은 유효하지 않고 , 행과 열의 개수가 좌표 값보다 크면 해당 좌표 값은 존재하지 않기 때문에 유효하지 않다. - if (newX >= 0 && newX < Cols && newY >= 0 && newY < Rows) { - dengerZone.add(newX + "," + newY); - } - }) - - } - - return (borderLength - dengerZone.size); -} - - -console.log(solution([[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 1, 0], [0, 0, 0, 0, 0]])); \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\354\227\206\353\212\224\354\210\253\354\236\220\353\215\224\355\225\230\352\270\260.js" "b/cocorig/PGS/pgs_\354\227\206\353\212\224\354\210\253\354\236\220\353\215\224\355\225\230\352\270\260.js" deleted file mode 100644 index f3c8835b5..000000000 --- "a/cocorig/PGS/pgs_\354\227\206\353\212\224\354\210\253\354\236\220\353\215\224\355\225\230\352\270\260.js" +++ /dev/null @@ -1,10 +0,0 @@ - -function solution(numbers) { - - - const arr = [0,1,2,3,4,5,6,7,8,9] - const n = arr.filter((v)=> !numbers.includes(v)) - return n.reduce((acc, v)=> acc + v, 0); -} - -console.log(solution([1,2,3,4,6,7,8,0])); diff --git "a/cocorig/PGS/pgs_\354\235\214\354\226\221\353\215\224\355\225\230\352\270\260.js" "b/cocorig/PGS/pgs_\354\235\214\354\226\221\353\215\224\355\225\230\352\270\260.js" deleted file mode 100644 index f8b9c2ded..000000000 --- "a/cocorig/PGS/pgs_\354\235\214\354\226\221\353\215\224\355\225\230\352\270\260.js" +++ /dev/null @@ -1,13 +0,0 @@ -function solution(absolutes, signs) { - let sum = 0; - for(let i = 0; i < absolutes.length; i++) { - if(!signs[i]){ - sum -= absolutes[i]; - }else{ - sum += absolutes[i]; - } - } - return sum; -} - -console.log(solution([1,2,3] ,[false,false,true])); \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\354\235\264\354\203\201\355\225\234\353\254\270\354\236\220\353\247\214\353\223\244\352\270\260.js" "b/cocorig/PGS/pgs_\354\235\264\354\203\201\355\225\234\353\254\270\354\236\220\353\247\214\353\223\244\352\270\260.js" deleted file mode 100644 index 6e812cb7a..000000000 --- "a/cocorig/PGS/pgs_\354\235\264\354\203\201\355\225\234\353\254\270\354\236\220\353\247\214\353\223\244\352\270\260.js" +++ /dev/null @@ -1,24 +0,0 @@ -// 1. 문자열은 하나 이상의 공백문자로 구분되어있기 때문에 먼저 공백을 기준으로 나눠줍니다. -// 2. 각 단어마다 문자를 하나씩 확인하면서 인덱스 기준으로 짝수인지 홀수인지 구분합니다. -// 3. 짝수 번째 문자면 대문자, 홀수 번째 문자면 소문자로 변환해줍니다. -// 4. 각 단어를 변환한 후 , 다시 하나의 문자열로 합쳐 결과를 반환합니다. - -function solution(s) { - return s - .split(" ") // [try, hello,world] - .map( - (word) => - word - .split("") // [t ,r, y] - .map( - ( - char, - index // (t , 0) (r , 1) (y , 2) - ) => (index % 2 === 0 ? char.toUpperCase() : char.toLowerCase()) - ) - .join("") // 'TrY' 처리한 문자를 다시 한 문자열로 조합 - ) // [TrY ,HeLlO ,WoRlD] - .join(" "); // "TrY HeLlO WoRlD" -} -const result = solution("try hello world"); -console.log(result); diff --git "a/cocorig/PGS/pgs_\354\240\225\354\210\230_\353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234_\353\260\260\354\271\230\355\225\230\352\270\260.js" "b/cocorig/PGS/pgs_\354\240\225\354\210\230_\353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234_\353\260\260\354\271\230\355\225\230\352\270\260.js" deleted file mode 100644 index f6efec602..000000000 --- "a/cocorig/PGS/pgs_\354\240\225\354\210\230_\353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234_\353\260\260\354\271\230\355\225\230\352\270\260.js" +++ /dev/null @@ -1,15 +0,0 @@ -// 문제 설명 -// 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. - -// 제한 조건 -// n은 1이상 8000000000 이하인 자연수입니다. -// 입출력 예 -// n return -// 118372 873211 - - -function solution(n) { - return parseInt(n.toString().split('').sort((a, b) => b - a ).join('')); -} -console.log(solution(118372)); - diff --git "a/cocorig/PGS/pgs_\354\240\225\354\210\230\354\240\234\352\263\261\352\267\274\355\214\220\353\263\204.js" "b/cocorig/PGS/pgs_\354\240\225\354\210\230\354\240\234\352\263\261\352\267\274\355\214\220\353\263\204.js" deleted file mode 100644 index ca9618ac5..000000000 --- "a/cocorig/PGS/pgs_\354\240\225\354\210\230\354\240\234\352\263\261\352\267\274\355\214\220\353\263\204.js" +++ /dev/null @@ -1,27 +0,0 @@ -// 정수 제곱근 판별 -// 문제 설명 -// 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. -// n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. -// 제한 사항 -// n은 1이상, 50000000000000 이하인 양의 정수입니다. -// 입출력 예 -// n return -// 121 144 -// 3 -1 -// 입출력 예 설명 -// 입출력 예#1 -// 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. - -// 입출력 예#2 -// 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. - -function solution(n) { - const sqrt = Math.pow(n, 0.5); - if( sqrt === Math.floor(sqrt)){ - return Math.pow(sqrt + 1, 2) - }else{ - return -1; - } -} - -console.log(solution(121)); \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\354\240\234\354\235\274\354\236\221\354\235\200\354\210\230\354\240\234\352\261\260\355\225\230\352\270\260.js" "b/cocorig/PGS/pgs_\354\240\234\354\235\274\354\236\221\354\235\200\354\210\230\354\240\234\352\261\260\355\225\230\352\270\260.js" deleted file mode 100644 index 570727896..000000000 --- "a/cocorig/PGS/pgs_\354\240\234\354\235\274\354\236\221\354\235\200\354\210\230\354\240\234\352\261\260\355\225\230\352\270\260.js" +++ /dev/null @@ -1,15 +0,0 @@ -function solution(arr) { - if(arr.length <= 1) { - return [-1]; - } - let min = Math.max(...arr); - - for(let i = 0; i < arr.length; i++) { - if(arr[i] < min) { - min = arr[i]; - } - } - const ans = arr.filter((item , index)=> item !== min) - return ans; -} -console.log(solution([4,3,2,1])); diff --git "a/cocorig/PGS/pgs_\354\247\201\354\202\254\352\260\201\355\230\225_\353\263\204\354\260\215\352\270\260.js" "b/cocorig/PGS/pgs_\354\247\201\354\202\254\352\260\201\355\230\225_\353\263\204\354\260\215\352\270\260.js" deleted file mode 100644 index d6a3ed20b..000000000 --- "a/cocorig/PGS/pgs_\354\247\201\354\202\254\352\260\201\355\230\225_\353\263\204\354\260\215\352\270\260.js" +++ /dev/null @@ -1,18 +0,0 @@ -process.stdin.setEncoding('utf8'); -process.stdin.on('data', data => { - const n = data.split(" "); - const a = Number(n[0]), b = Number(n[1]); - - // a = 5 , b = 3 - - // for(let i = 0; i < b; i++){ - // let ans = ''; - // for(let j = 0; j < a; j++){ - // ans += '*' - // } - // console.log(ans) - // } - let star = `${'*'.repeat(a)}\n` - console.log(star.repeat(b)) - -}); \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\354\265\234\353\214\200\352\263\265\354\225\275\354\210\230\354\231\200\354\265\234\354\206\214\352\263\265\353\260\260\354\210\230.js" "b/cocorig/PGS/pgs_\354\265\234\353\214\200\352\263\265\354\225\275\354\210\230\354\231\200\354\265\234\354\206\214\352\263\265\353\260\260\354\210\230.js" deleted file mode 100644 index adc7508cc..000000000 --- "a/cocorig/PGS/pgs_\354\265\234\353\214\200\352\263\265\354\225\275\354\210\230\354\231\200\354\265\234\354\206\214\352\263\265\353\260\260\354\210\230.js" +++ /dev/null @@ -1,15 +0,0 @@ -function solution(n, m) { - - - let lcm = n * m; - let a = Math.max(n, m); - let b = Math.min(n, m); - - while(b !== 0){ - let temp = b; - b = a % b; - a = temp; - } - return [a , lcm / a] -} -console.log(solution(3, 12)); \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\354\275\234\353\235\274\354\270\240_\354\266\224\354\270\241.js" "b/cocorig/PGS/pgs_\354\275\234\353\235\274\354\270\240_\354\266\224\354\270\241.js" deleted file mode 100644 index 5a48af01a..000000000 --- "a/cocorig/PGS/pgs_\354\275\234\353\235\274\354\270\240_\354\266\224\354\270\241.js" +++ /dev/null @@ -1,20 +0,0 @@ -function solution(num) { - - let cnt = 0; - - while(num !== 1){ - - if(num % 2 == 0) { - num /= 2; - }else{ - num = num * 3 + 1; - } - cnt++; - if(cnt >= 500){ - return -1; - } - } - return cnt; -} - -console.log(solution(626331)); \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\355\225\230\354\203\244\353\223\234_\354\210\230.js" "b/cocorig/PGS/pgs_\355\225\230\354\203\244\353\223\234_\354\210\230.js" deleted file mode 100644 index ee247e6c4..000000000 --- "a/cocorig/PGS/pgs_\355\225\230\354\203\244\353\223\234_\354\210\230.js" +++ /dev/null @@ -1,16 +0,0 @@ -// 하샤드 수 -// 문제 설명 -// 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. - -function solution(x) { - let sum = 0; - const str = x.toString(); - for(let i of str){ - sum += parseInt(i); - } - - return x % sum === 0 ? true : false; - - } -console.log(solution(12)); - diff --git "a/cocorig/PGS/pgs_\355\225\230\354\203\244\353\223\234\354\210\230.js" "b/cocorig/PGS/pgs_\355\225\230\354\203\244\353\223\234\354\210\230.js" deleted file mode 100644 index b9cf68461..000000000 --- "a/cocorig/PGS/pgs_\355\225\230\354\203\244\353\223\234\354\210\230.js" +++ /dev/null @@ -1,4 +0,0 @@ -function solution(x) { - var answer = true; - return answer; -} \ No newline at end of file diff --git "a/cocorig/PGS/pgs_\355\225\270\353\223\234\355\217\260\353\262\210\355\230\270\352\260\200\353\246\254\352\270\260.js" "b/cocorig/PGS/pgs_\355\225\270\353\223\234\355\217\260\353\262\210\355\230\270\352\260\200\353\246\254\352\270\260.js" deleted file mode 100644 index 00576c03e..000000000 --- "a/cocorig/PGS/pgs_\355\225\270\353\223\234\355\217\260\353\262\210\355\230\270\352\260\200\353\246\254\352\270\260.js" +++ /dev/null @@ -1,7 +0,0 @@ -function solution(phone_number) { - const phoneNumberLength = phone_number.slice(0 , -4).length; - return '*'.repeat(phoneNumberLength) + phone_number.slice(-4); -} - - - diff --git "a/cocorig/PGS/pgs_\355\226\211\353\240\254\354\235\230_\353\215\247\354\205\210.js" "b/cocorig/PGS/pgs_\355\226\211\353\240\254\354\235\230_\353\215\247\354\205\210.js" deleted file mode 100644 index eab79f799..000000000 --- "a/cocorig/PGS/pgs_\355\226\211\353\240\254\354\235\230_\353\215\247\354\205\210.js" +++ /dev/null @@ -1,32 +0,0 @@ - -function solution(arr1, arr2) { - const answer = []; - - for(let i=0; i 배열의 길이는 2 , i=0,i=1 - let sum = []; - - for(let j=0; j - // 1. row = [ 1, 2 ] ,i = 0 -// 2. row = [ 2, 3 ] ,i = 1 - row.map((v , j)=> v + arr2[i][j]) -); -} - -console.log(solution([[1,2],[2,3]],[[3,4],[5,6]])); -[ 1, 2 ].map((v, i) =>console.log(v, i)) - diff --git "a/cocorig/doj_120\353\262\210\354\247\270_\354\243\204\354\210\230.js" "b/cocorig/doj_120\353\262\210\354\247\270_\354\243\204\354\210\230.js" deleted file mode 100644 index 95479548c..000000000 --- "a/cocorig/doj_120\353\262\210\354\247\270_\354\243\204\354\210\230.js" +++ /dev/null @@ -1,20 +0,0 @@ -// 감옥에 120명의 죄수가 있다. 간수는 복도를 120번 동안 다음 조건에 지나간다. - -// 처음에 문은 모두 닫혀 있다. -// N번째 지나갈 때에는 N의 배수인 문들이 열려 있으면 닫고, 닫혀 있으면 연다. -// 마지막에 문이 열려 있으면 그 방의 죄수는 석방이다. -// 과연 몇 명의 죄수가 석방될까? - - -let room = Array(120); - -room.fill(-1) - -for(let i = 0; i < room.length + 1; i++){ - for(let n = 0; n < room.length + 1; n++){ - if(n % i === 0){ - room[n - 1] *= -1; - } - } -} -console.log(room.filter(v => v === 1).length); \ No newline at end of file diff --git a/cocorig/doj_Subdate.js b/cocorig/doj_Subdate.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/cocorig/doj_Two_Printers.js b/cocorig/doj_Two_Printers.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/cocorig/doj_Ugly_Numbers.js b/cocorig/doj_Ugly_Numbers.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/cocorig/doj_tic-tac-toe-game.js b/cocorig/doj_tic-tac-toe-game.js deleted file mode 100644 index e69de29bb..000000000 diff --git "a/cocorig/doj_\352\260\200\354\204\261\353\271\204\354\265\234\353\214\200\355\231\224.js" "b/cocorig/doj_\352\260\200\354\204\261\353\271\204\354\265\234\353\214\200\355\231\224.js" deleted file mode 100644 index e80f60120..000000000 --- "a/cocorig/doj_\352\260\200\354\204\261\353\271\204\354\265\234\353\214\200\355\231\224.js" +++ /dev/null @@ -1,51 +0,0 @@ -// 기계를 구입하려 하는데 이 기계는 추가 부품을 장착할 수 있다. 추가 부품은 종류당 하나씩만 장착 가능하고, 모든 추가 부품은 동일한 가격을 가진다. - -// 원래 기계의 가격과 성능, 추가 부품의 가격과 각 부품의 성능이 주어졌을 때, 추가 부품을 장착하여 얻을 수 있는 최대 가성비를 정수 부분까지 구하시오(가격 및 성능은 상대적인 값으로 수치화되어 주어진다). - -// e.g.) - -// 원래 기계의 가격 : 10 - -// 원래 기계의 성능 : 150 - -// 추가 부품의 가격 : 3 - -// 추가 부품의 성능 : 각각 30, 70, 15, 40, 65 - -// 추가 부품을 장착하여 얻을 수 있는 최대 가성비 : 17.81... → 17 - -// (성능이 70과 65인 부품을 장착하면 됨) - - -let 가격 = 10 -let 성능 = 150 -let 부품가격 = 3 -let 부품성능 = [30, 70, 15, 40, 65] -// 부품성능 정렬 -> 70 -> 성능(150 )+ 70 = 220 -// 부품가격 + 기계가격 = 13 -// 가성비 :220 / 13 = 16 - -// 220 + 65 = 285 -// 가격 = 16 -// 가성비 : 285 / 16 = 17.8 -> 최대 가성비 -> 결과 값 : 17 - -// 285 + 40 = 325 -// 가격 = 19 -// 가성비 : 325 / 19 = 17.1 - - -// [ 70, 65, 40, 30, 15 ] -let arr = 부품성능.sort((a, b) => b - a) -let ans = 0; -for(let i = 0; i < arr.length; i++) { - - if( (성능 / 가격) > (( 성능 + arr[i] ) / ( 가격 + 부품가격 ))){ - break; - }else{ - 성능 += arr[i]; - 가격 += 부품가격; - } - -} -console.log(Math.floor(성능 / 가격)); - diff --git "a/cocorig/doj_\352\265\254\352\270\200\354\236\205\354\202\254\353\254\270\354\240\234\354\244\221\354\227\220\354\204\234.js" "b/cocorig/doj_\352\265\254\352\270\200\354\236\205\354\202\254\353\254\270\354\240\234\354\244\221\354\227\220\354\204\234.js" deleted file mode 100644 index 16300b335..000000000 --- "a/cocorig/doj_\352\265\254\352\270\200\354\236\205\354\202\254\353\254\270\354\240\234\354\244\221\354\227\220\354\204\234.js" +++ /dev/null @@ -1,28 +0,0 @@ -// 1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가? - -// 8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다. -// (※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함) - - -function solution(){ - let EightCnt = 0; - for(let i = 0; i <= 100; i++){ - // console.log(i.toString().split(/8/g)); - EightCnt += i.toString().split(/8/g).length - 1; - -} - return EightCnt; -} - - -// /8/g는 문자열에서 숫자 8을 모두 찾는 정규식 패턴이다. - - -// i를 문자열로 만든 다음 , 숫자 8의 기준으로 분할함 -// 여기서 8을 기준으로 분할했기 때문에 8은 생략된다. -// [ '4', '5', '' ] -console.log('4858'.split(/8/g).length - 1); - -// [ '42', '4', '3' ] 8이 두개 이기때문에 8을 생략하면 원소가 3개로 분할된다. -// 2개가 생략댔기때문에 3개의 원소로 구분됨 때문에 길이에 -1을 해줘야 8의 등장 횟수를 알수있다, -console.log('428483'.spㄴlit(/8/g).length - 1); \ No newline at end of file diff --git "a/cocorig/doj_\352\267\270\354\213\234\352\260\204_\354\202\254\353\254\264\354\213\244\354\227\220_\353\252\207_\353\252\205_\354\236\210\354\227\210\353\202\230?.js" "b/cocorig/doj_\352\267\270\354\213\234\352\260\204_\354\202\254\353\254\264\354\213\244\354\227\220_\353\252\207_\353\252\205_\354\236\210\354\227\210\353\202\230?.js" deleted file mode 100644 index dc30f336c..000000000 --- "a/cocorig/doj_\352\267\270\354\213\234\352\260\204_\354\202\254\353\254\264\354\213\244\354\227\220_\353\252\207_\353\252\205_\354\236\210\354\227\210\353\202\230?.js" +++ /dev/null @@ -1,43 +0,0 @@ -// 아마존 면접문제 - -// A사무실에는 특정일자의 출퇴근 시간이 기록된 거대한 로그파일이 있다고 한다. - -// 파일의 형식은 다음과 같다. (한 라인에서 앞부분은 출근시간(HH:MM:SS), 뒷부분은 퇴근시간이다) - -// 09:12:23 11:14:35 -// 10:34:01 13:23:40 -// 10:34:31 11:20:10 -// 특정시간을 입력(예:11:05:20)으로 주었을 때 그 시간에 총 몇 명이 사무실에 있었는지 알려주는 함수를 작성하시오. - -const logs = [ - '09:12:23 11:14:35', - '10:34:01 13:23:40', - '10:34:31 11:20:10' -] -// 출근시간,퇴근시간으로 나눠서 입력 시간과 비교한다. -const inputTime = '11:05:20'; - -function solution(logs,inputTime){ - let cnt = 0; - let t = inputTime.split(':').join('') - - for(let i = 0; i < logs.length; i++){ - - const str = logs[i].split(':').join('') - const 출근 = str.split(' ')[0]; - const 퇴근 = str.split(' ')[1]; - - if(출근 <= t && t <= 퇴근){ - - cnt++; - } - } - return cnt; -} - - -console.log(solution(logs, inputTime)); - -// if('091223' <= '110520'<= '111435'){ -// console.log('dd'); -// } \ No newline at end of file diff --git "a/cocorig/doj_\353\213\244\354\235\214\354\236\205\354\202\254\353\254\270\354\240\234\354\244\221\354\227\220\354\204\234.js" "b/cocorig/doj_\353\213\244\354\235\214\354\236\205\354\202\254\353\254\270\354\240\234\354\244\221\354\227\220\354\204\234.js" deleted file mode 100644 index 6406a0a35..000000000 --- "a/cocorig/doj_\353\213\244\354\235\214\354\236\205\354\202\254\353\254\270\354\240\234\354\244\221\354\227\220\354\204\234.js" +++ /dev/null @@ -1,33 +0,0 @@ -// 문제 설명 - -// 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수를 작성하시오. (단 점들의 배열은 모두 정렬되어있다고 가정한다.) - -// 예를들어 S={1, 3, 4, 8, 13, 17, 20} 이 주어졌다면, 결과값은 (3, 4)가 될 것이다. - -function solution(){ - // 제일 큰 범위로 설정 - // let min = Number.MAX_SAFE_INTEGER; - // let idx = 0; - const arr = [1, 3, 4, 8, 13, 17, 20]; - const slicedArr = arr.slice(1); // [ 3, 4, 8, 13, 17, 20 ] - // 원본배열과 짝을지어서 차를 구하자 - - - // for(let i = 1; i < s.length; i++){ - - // if(s[i] - s[i - 1] < min){ - - // idx = i; - // min = s[i] - s[i - 1]; - // // console.log(s[i], s[i - 1]); - // // console.log(idx); //2 - // } - - // } - // return `${s[idx]}, ${s[idx -1 ]}`; - - // console.log(idx); -} - -console.log(solution()); - diff --git "a/cocorig/doj_\353\254\270\354\236\220\354\227\264_\354\225\225\354\266\225\355\225\230\352\270\260.js" "b/cocorig/doj_\353\254\270\354\236\220\354\227\264_\354\225\225\354\266\225\355\225\230\352\270\260.js" deleted file mode 100644 index 84b8c4150..000000000 --- "a/cocorig/doj_\353\254\270\354\236\220\354\227\264_\354\225\225\354\266\225\355\225\230\352\270\260.js" +++ /dev/null @@ -1,43 +0,0 @@ -// 문자열을 입력받아서, 같은 문자가 연속적으로 반복되는 경우에 그 반복 횟수를 표시하여 문자열을 압축하기. - -// 입력 예시: aaabbcccccca - -// 출력 예시: a3b2c6a1 - - -function solution(input) { - // 1. 반복문 사용 - // let ans = ''; - // let cnt = 1; - - // for (let i = 0; i < input.length; i++) { - - // if (input[i] === input[i + 1]) { - // cnt++; - // } else { - // ans += input[i] + cnt; - // cnt = 1; // 여기서 cnt 초기화 - // } - // } - // return ans; - - // 2. 정규식 표현식 사용 - const reg = /(\w)\1*/g; - return input.replace(reg, (v, char) => - // console.log(v.length, char) - char + v.length - ); - -} -// aaa a -// bb b -// cccccc c -// a a - - -// 테스트 -const result = solution('aaabbcccccca'); -console.log(result); // 출력 예시: "a3b2c6a1" - - - diff --git "a/cocorig/doj_\353\271\204\354\212\267\355\225\234_\353\213\250\354\226\264_\354\260\276\354\225\204\353\202\264\352\270\260.js" "b/cocorig/doj_\353\271\204\354\212\267\355\225\234_\353\213\250\354\226\264_\354\260\276\354\225\204\353\202\264\352\270\260.js" deleted file mode 100644 index df7a8ab5a..000000000 --- "a/cocorig/doj_\353\271\204\354\212\267\355\225\234_\353\213\250\354\226\264_\354\260\276\354\225\204\353\202\264\352\270\260.js" +++ /dev/null @@ -1,32 +0,0 @@ -// 아래와 같은 결과를 출력하는 function을 구현하라 - -// bool OneEditApart(string s1, string s2) - -// OneEditApart("cat", "dog") = false -// OneEditApart("cat", "cats") = true -// OneEditApart("cat", "cut") = true -// OneEditApart("cat", "cast") = true -// OneEditApart("cat", "at") = true -// OneEditApart("cat", "acts") = false -// 한개의 문자를 삽입, 제거, 변환을 했을때 s1, s2가 동일한지를 판별하는 OneEditApart 함수를 작성하시오. - - - -function OneEditApart(s1,s2){ - - while(s1.length != 0 && s2.length != 0){ - if(s1.slice(-1) === s2.slice(-1)){ // 마지막 문자 비교 - s1 = s1.slice(0,-1) //0부터 마지막 원소 전까지 자르기 - s2 = s2.slice(0,-1) - }else if(s1[0] === s2[0]){ // 첫 번째 문자 비교 - s1 = s1.slice(1) - s2 = s2.slice(1) - } - else{ - break; - } - } - return s1.length <= 1 && s2.length <= 1; // 불린값으로 반환 -} - -console.log(OneEditApart("cat", "cast")); \ No newline at end of file diff --git "a/cocorig/doj_\354\225\204\353\247\210\354\241\264\353\251\264\354\240\221.js" "b/cocorig/doj_\354\225\204\353\247\210\354\241\264\353\251\264\354\240\221.js" deleted file mode 100644 index 72230362b..000000000 --- "a/cocorig/doj_\354\225\204\353\247\210\354\241\264\353\251\264\354\240\221.js" +++ /dev/null @@ -1,29 +0,0 @@ -//다음과 같은 형태의 배열을 - -// [a1,a2,a3...,an,b1,b2...bn] - -// 다음과 같은 형태로 바꾸시오 - -// [a1,b1,a2,b2.....an,bn] -// 입력을 저장하는 저장소 이외에 추가적인 저장장소를 사용치 않는다는게 제약조건입니다 -// 제약 조건에 따라 추가 저장 공간을 사용하지 않고 원래의 배열을 수정함. - -// 입력 -const arr = ['a1', 'a2', 'a3', 'b1', 'b2', 'b3']; - - -function solution(arr) { - - const ans = []; - const n = arr.length / 2; // 3 - - for (let i = 0; i < n; i++) { - ans.push(arr[i], arr[i + n]); - } - - return ans; -} - -// 출력 -console.log(solution(arr)); -//[ 'a1', 'b1', 'a2', 'b2', 'a3', 'b3' ] \ No newline at end of file From ec566f2d7eb5fbbbcb75d089d7947bf3ec688e13 Mon Sep 17 00:00:00 2001 From: sanghwa <85687130+aga1215@users.noreply.github.com> Date: Mon, 22 Dec 2025 13:00:10 +0900 Subject: [PATCH 06/45] Delete dajeong-kim directory --- ...3\354\260\250]\354\225\225\354\266\225.py" | 20 ---- ...64\353\246\254\354\212\244\355\212\270.py" | 18 ---- ...44\355\212\270\354\225\250\353\262\224.py" | 24 ----- ...60\352\263\274\353\260\233\352\270\260.py" | 57 ---------- ...01\353\214\200\354\247\204\355\221\234.py" | 7 -- ...10\354\261\204\355\214\205\353\260\251.py" | 20 ---- ...73\355\225\234\354\204\240\354\210\230.py" | 24 ----- .../hash/[PGS]\354\235\230\354\203\201.py" | 12 --- ...40\354\235\270\355\226\211\354\202\254.py" | 34 ------ ...30\353\212\224\355\212\270\353\237\255.py" | 26 ----- ...76\352\270\260\352\262\214\354\236\204.py" | 100 ------------------ ...53\354\206\224\355\214\220\353\247\244.py" | 15 --- ...70\353\241\234\355\203\210\354\266\234.py" | 54 ---------- ...21\352\263\274\353\212\221\353\214\200.py" | 35 ------ ...05\352\265\255\354\213\254\354\202\254.py" | 21 ---- 15 files changed, 467 deletions(-) delete mode 100644 "dajeong-kim/hash/[PGS][3\354\260\250]\354\225\225\354\266\225.py" delete mode 100644 "dajeong-kim/hash/[PGS]\353\251\224\353\211\264\353\246\254\354\212\244\355\212\270.py" delete mode 100644 "dajeong-kim/hash/[PGS]\353\262\240\354\212\244\355\212\270\354\225\250\353\262\224.py" delete mode 100644 "dajeong-kim/hash/[PGS]\354\213\240\352\263\240\352\262\260\352\263\274\353\260\233\352\270\260.py" delete mode 100644 "dajeong-kim/hash/[PGS]\354\230\210\354\203\201\353\214\200\354\247\204\355\221\234.py" delete mode 100644 "dajeong-kim/hash/[PGS]\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251.py" delete mode 100644 "dajeong-kim/hash/[PGS]\354\231\204\354\243\274\355\225\230\354\247\200\353\252\273\355\225\234\354\204\240\354\210\230.py" delete mode 100644 "dajeong-kim/hash/[PGS]\354\235\230\354\203\201.py" delete mode 100644 "dajeong-kim/hash/[PGS]\355\225\240\354\235\270\355\226\211\354\202\254.py" delete mode 100644 "dajeong-kim/stack-queue/[PGS]\353\213\244\353\246\254\353\245\274\354\247\200\353\202\230\353\212\224\355\212\270\353\237\255.py" delete mode 100644 "dajeong-kim/tree/[PGS]\352\270\270\354\260\276\352\270\260\352\262\214\354\236\204.py" delete mode 100644 "dajeong-kim/tree/[PGS]\353\213\244\353\213\250\352\263\204\354\271\253\354\206\224\355\214\220\353\247\244.py" delete mode 100644 "dajeong-kim/tree/[PGS]\353\257\270\353\241\234\355\203\210\354\266\234.py" delete mode 100644 "dajeong-kim/tree/[PGS]\354\226\221\352\263\274\353\212\221\353\214\200.py" delete mode 100644 "dajeong-kim/tree/[PGS]\354\236\205\352\265\255\354\213\254\354\202\254.py" diff --git "a/dajeong-kim/hash/[PGS][3\354\260\250]\354\225\225\354\266\225.py" "b/dajeong-kim/hash/[PGS][3\354\260\250]\354\225\225\354\266\225.py" deleted file mode 100644 index 923abbb13..000000000 --- "a/dajeong-kim/hash/[PGS][3\354\260\250]\354\225\225\354\266\225.py" +++ /dev/null @@ -1,20 +0,0 @@ -def solution(msg): - answer = [] - # 알파벳 A~Z까지 색인번호와 단어 dict에 등록 - dict = {chr(i+64):i for i in range(1,27)} - num = 27 # 새로운 단어를 저장할 때 value로 쓸 값 - i = 0 - check = '' # 사전에 이미 있는지 체크하기 위한 용도 - while i < len(msg): - check += msg[i] - if check in dict: - i+=1 - else: - dict[check] = num - num += 1 - answer.append(dict[check[:-1]]) - check = '' - # 마지막에 check에 들어간 문자열 또는 문자의 경우 else문을 들어가지 못했기 때문에 append - answer.append(dict[check]) - - return answer \ No newline at end of file diff --git "a/dajeong-kim/hash/[PGS]\353\251\224\353\211\264\353\246\254\354\212\244\355\212\270.py" "b/dajeong-kim/hash/[PGS]\353\251\224\353\211\264\353\246\254\354\212\244\355\212\270.py" deleted file mode 100644 index 069ea2937..000000000 --- "a/dajeong-kim/hash/[PGS]\353\251\224\353\211\264\353\246\254\354\212\244\355\212\270.py" +++ /dev/null @@ -1,18 +0,0 @@ -from itertools import combinations -from collections import Counter - -def solution(orders, course): - answer = [] - for c in course: - menu = [] - for order in orders: - # combinations 함수는 문자열 순서도 따지기 때문에 order를 미리 정렬해야함 - comb = combinations(sorted(order), c) - menu += comb - counter = Counter(menu) - # 최소 2명 이상의 손님이 주문한 조합 - if counter and max(counter.values()) != 1: - for m, cnt in counter.items(): - if cnt == max(counter.values()): - answer.append(''.join(m)) - return sorted(answer) \ No newline at end of file diff --git "a/dajeong-kim/hash/[PGS]\353\262\240\354\212\244\355\212\270\354\225\250\353\262\224.py" "b/dajeong-kim/hash/[PGS]\353\262\240\354\212\244\355\212\270\354\225\250\353\262\224.py" deleted file mode 100644 index 225e3a531..000000000 --- "a/dajeong-kim/hash/[PGS]\353\262\240\354\212\244\355\212\270\354\225\250\353\262\224.py" +++ /dev/null @@ -1,24 +0,0 @@ -def solution(genres, plays): - answer = [] - genres_dict = {} - plays_dict = {} - - for i in range(len(genres)): - genre = genres[i] - play = plays[i] - # 키에 해당하는 값이 없는 경우 초기화값 명시 - if genre not in genres_dict: - genres_dict[genre] = [] - plays_dict[genre] = 0 - genres_dict[genre].append((i,play)) - plays_dict[genre] += play - - # 각 장르의 재생수 총합을 기준으로 장르 순서 정렬 - sorted_genres = sorted(plays_dict.items(), key = lambda x:x[1], reverse=True) - - # 정렬된 각 장르에 대해 재생횟수와 고유번호를 기준으로 정렬 ([:2]) - for genre, _ in sorted_genres: - sorted_songs = sorted(genres_dict[genre], key = lambda x: (-x[1], x[0])) - answer.extend([idx for idx, _ in sorted_songs[:2]]) - - return answer diff --git "a/dajeong-kim/hash/[PGS]\354\213\240\352\263\240\352\262\260\352\263\274\353\260\233\352\270\260.py" "b/dajeong-kim/hash/[PGS]\354\213\240\352\263\240\352\262\260\352\263\274\353\260\233\352\270\260.py" deleted file mode 100644 index 39e89537d..000000000 --- "a/dajeong-kim/hash/[PGS]\354\213\240\352\263\240\352\262\260\352\263\274\353\260\233\352\270\260.py" +++ /dev/null @@ -1,57 +0,0 @@ -def solution(id_list, report, k): - user_reported = {} #신고당한 유저 - count = {} # 처리 결과 메일을 받은 유저 - - # 신고당한 유저 key : 신고한 유저 리스트 value - for r in report: - fr, to = r.split() - if to not in user_reported: - user_reported[to] = set() - user_reported[to].add(fr) - - # user_reported에 저장된 정보를 기준으로 신고당한 횟수가 k번 이상이면 count 추가 - # count : 메일을 보낼 횟수 - for reported, report_user_list in user_reported.items(): - if len(report_user_list)>=k: - for user in report_user_list: - if user not in count: - count[user] = 1 - else: - count[user] += 1 - - answer = [] - for i in range(len(id_list)): - if id_list[i] not in count: - answer.append(0) - else: - answer.append(count[id_list[i]]) - - return answer - -""" - answer = [] - user = {id:[] for id in id_list} # id:key , value: 신고한 사람 목록 - user_reported = {id:0 for id in id_list} # id:key, value: 신고당한 횟수 - report_set = set() # report가 중복되지 않게 set으로 설정 - - # 누가 누구를 신고했는지 set에 저장 - for repo in report: - fr, to = repo.split() - report_set.add((fr,to)) - - for fr, to in report_set: - user[fr].append(to) - user_reported[to] +=1 - - suspension = [key for key,value in user_reported.items() if value>=k] - - for key, value in user.items(): - count = 0 - for val in value: - if val in suspension: - count += 1 - answer.append(count) - - - return answer -""" \ No newline at end of file diff --git "a/dajeong-kim/hash/[PGS]\354\230\210\354\203\201\353\214\200\354\247\204\355\221\234.py" "b/dajeong-kim/hash/[PGS]\354\230\210\354\203\201\353\214\200\354\247\204\355\221\234.py" deleted file mode 100644 index df53ed868..000000000 --- "a/dajeong-kim/hash/[PGS]\354\230\210\354\203\201\353\214\200\354\247\204\355\221\234.py" +++ /dev/null @@ -1,7 +0,0 @@ -def solution(n,a,b): - answer = 0 - while a!=b: - a = (a+1)//2 - b = (b+1)//2 - answer += 1 - return answer \ No newline at end of file diff --git "a/dajeong-kim/hash/[PGS]\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251.py" "b/dajeong-kim/hash/[PGS]\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251.py" deleted file mode 100644 index 03e2e9ec8..000000000 --- "a/dajeong-kim/hash/[PGS]\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251.py" +++ /dev/null @@ -1,20 +0,0 @@ -def solution(record): - # uid를 key, 닉네임을 value로 하는 딕셔너리 - uid_dict = {} - for line in record: - cmd = line.split(" ") - if cmd[0] != "Leave": #Enter또는 Change일때만 닉네임 값 변경됨 - uid_dict[cmd[1]] = cmd[2] - - answer = [] - for line in record: - cmd = line.split(" ") - - if cmd[0] == "Enter": - #answer.append("%s님이 들어왔습니다." % uid_dict[cmd[1]]) - answer.append(f"{uid_dict[cmd[1]]}님이 들어왔습니다.") - elif cmd[0] == "Leave": - #answer.append("%s님이 나갔습니다." % uid_dict[cmd[1]]) - answer.append(f"{uid_dict[cmd[1]]}님이 나갔습니다.") - - return answer \ No newline at end of file diff --git "a/dajeong-kim/hash/[PGS]\354\231\204\354\243\274\355\225\230\354\247\200\353\252\273\355\225\234\354\204\240\354\210\230.py" "b/dajeong-kim/hash/[PGS]\354\231\204\354\243\274\355\225\230\354\247\200\353\252\273\355\225\234\354\204\240\354\210\230.py" deleted file mode 100644 index 0173f0c11..000000000 --- "a/dajeong-kim/hash/[PGS]\354\231\204\354\243\274\355\225\230\354\247\200\353\252\273\355\225\234\354\204\240\354\210\230.py" +++ /dev/null @@ -1,24 +0,0 @@ -# 해시를 이용한 풀이 O(N) -def solution(participant, completion): - dict = {} - for p in participant: - if p in dict: - dict[p] += 1 - else: - dict[p] = 1 - - for c in completion: - dict[c] -= 1 - - for key in dict.keys(): - if dict[key] != 0: - return key - -# collections.Counter를 이용한 풀이 O(N) -import collections - -def solution(participant, completion): - answer = collections.Counter(participant) - collections.Counter(completion) - return list(answer.keys())[0] - -# 두 경우 모두 효율성 테스트에 동과하지만, 해시를 이용했을 때가 더 빠름 \ No newline at end of file diff --git "a/dajeong-kim/hash/[PGS]\354\235\230\354\203\201.py" "b/dajeong-kim/hash/[PGS]\354\235\230\354\203\201.py" deleted file mode 100644 index fe58b3321..000000000 --- "a/dajeong-kim/hash/[PGS]\354\235\230\354\203\201.py" +++ /dev/null @@ -1,12 +0,0 @@ -def solution(clothes): - # answer = (각 타입에 해당하는 의상 종류의수를 모두 곱한 것) - 1 - hash_map = {} - # type 키 : type에 해당하는 의상 종류의 수 value - for cloth, typ in clothes: - hash_map[typ] = hash_map.get(typ, 0) + 1 - - answer = 1 - for typ in hash_map: - answer *= (hash_map[typ] + 1) - # 최소 한 개의 의상은 입어야 하므로 아무것도 안입은 상태의 경우의수 1을 빼줘야함 - return answer -1 \ No newline at end of file diff --git "a/dajeong-kim/hash/[PGS]\355\225\240\354\235\270\355\226\211\354\202\254.py" "b/dajeong-kim/hash/[PGS]\355\225\240\354\235\270\355\226\211\354\202\254.py" deleted file mode 100644 index 4035c2c37..000000000 --- "a/dajeong-kim/hash/[PGS]\355\225\240\354\235\270\355\226\211\354\202\254.py" +++ /dev/null @@ -1,34 +0,0 @@ -def solution(want, number, discount): - - want_dict = {} - for i in range(len(want)): - want_dict[want[i]] = number[i] - - days = 0 # 할인받을 수 있는 회원 등록 날짜 - - for i in range(len(discount)-9): - discount_10day={} # 10일간 할인받을 수 있는 제품명과 수량을 딕셔너리로 저장 - for j in range(i,i+10): - discount_10day[discount[j]] = discount_10day.get(discount[j],0) + 1 - # 딕셔너리의 ==연산은 key와 value값이 모두 같을 때 - if want_dict == discount_10day: - days += 1 - return days - -""" -할인받을 수 있는 제품들의 딕셔너리를 하나씩 선언해서 추가하지 않고, -collections 모듈의 Counter를 사용해서 바로 만들 수 있음. -""" - -from collections import Counter -def solution(want, number, discount): - answer = 0 - dic = {} - for i in range(len(want)): - dic[want[i]] = number[i] - - for i in range(len(discount)-9): - if dic == Counter(discount[i:i+10]): - answer += 1 - - return answer \ No newline at end of file diff --git "a/dajeong-kim/stack-queue/[PGS]\353\213\244\353\246\254\353\245\274\354\247\200\353\202\230\353\212\224\355\212\270\353\237\255.py" "b/dajeong-kim/stack-queue/[PGS]\353\213\244\353\246\254\353\245\274\354\247\200\353\202\230\353\212\224\355\212\270\353\237\255.py" deleted file mode 100644 index 7acfa5a6f..000000000 --- "a/dajeong-kim/stack-queue/[PGS]\353\213\244\353\246\254\353\245\274\354\247\200\353\202\230\353\212\224\355\212\270\353\237\255.py" +++ /dev/null @@ -1,26 +0,0 @@ -from collections import deque - -def solution(bridge_length, weight, truck_weights): - answer = 0 # 걸린 시간 - - # bridge : 다리를 지나는 트럭 - bridge = deque([0]*bridge_length) - truck_weights = deque(truck_weights) - cur_weight = 0 - - while truck_weights: - answer += 1 - cur_weight -= bridge.popleft() - # sum 함수를 사용하지 않고 cur_weight를 통해 미리 계산해줘야 시간 초과 안뜸 - - if cur_weight + truck_weights[0] <= weight: - truck = truck_weights.popleft() - cur_weight += truck - bridge.append(truck) - else: - bridge.append(0) - - #마지막으로 다리에 들어간 트럭이 나올때까지의 시간 더하기 - answer += bridge_length - - return answer \ No newline at end of file diff --git "a/dajeong-kim/tree/[PGS]\352\270\270\354\260\276\352\270\260\352\262\214\354\236\204.py" "b/dajeong-kim/tree/[PGS]\352\270\270\354\260\276\352\270\260\352\262\214\354\236\204.py" deleted file mode 100644 index 3fa553c0b..000000000 --- "a/dajeong-kim/tree/[PGS]\352\270\270\354\260\276\352\270\260\352\262\214\354\236\204.py" +++ /dev/null @@ -1,100 +0,0 @@ -from collections import deque - -class Node: - def __init__(self, info, num, left=None, right=None): - self.info = info - self.left = left - self.right = right - self.num = num # 노드의 번호 - - def has_left(self): - return self.left is not None - def has_right(self): - return self.right is not None - -# 이진트리 생성 함수 -def make_BT(nodeinfo): - # 노드의 번호 리스트 - nodes = [i for i in range(1, len(nodeinfo)+1)] - # y가 클수록 우선순위 높음 - # y가 같다면 x가 작을수록 우선순위 높음 - nodes.sort(key = lambda x : (nodeinfo[x-1][1], -nodeinfo[x-1][0]), reverse=True) - root = None - for i in range(len(nodeinfo)): - if root is None: - root = Node(nodeinfo[nodes[0]-1], nodes[0]) - else: - parent = root - node = Node(nodeinfo[nodes[i]-1], nodes[i]) - - while True: - # 부모노드의 x좌표보다 작으면 왼쪽으로 - if node.info[0] 충분하지 않을 때에는 런타임 에러 발생 -sys.setrecursionlimit() 함수를 통해 최대 깊이를 수정 -""" -import sys -sys.setrecursionlimit(10**4) - -def pre_order(root, answer): - if root is None: - return - answer[0].append(root.num) - pre_order(root.left, answer) - pre_order(root.right, answer) - -def post_order(root, answer): - if root is None: - return - post_order(root.left, answer) - post_order(root.right, answer) - answer[1].append(root.num) - -""" -비재귀 Ver. -def pre_order(root, answer): - stack = [root] - while stack: - node = stack.pop() - if node is None: - continue - answer[0].append(node.num) - stack.append(node.right) - stack.append(node.left) - -def post_order(root, answer): - stack = [(root, False)] - while stack: - node, visited = stack.pop() - if node is None: - continue - if visited: - answer[1].append(node.num) - else: - stack.append((node, True)) - stack.append((node.right, False)) - stack.append((node.left, False)) -""" - -def solution(nodeinfo): - answer = [[],[]] - root = make_BT(nodeinfo) - pre_order(root, answer) - post_order(root, answer) - return answer \ No newline at end of file diff --git "a/dajeong-kim/tree/[PGS]\353\213\244\353\213\250\352\263\204\354\271\253\354\206\224\355\214\220\353\247\244.py" "b/dajeong-kim/tree/[PGS]\353\213\244\353\213\250\352\263\204\354\271\253\354\206\224\355\214\220\353\247\244.py" deleted file mode 100644 index 7d84562a3..000000000 --- "a/dajeong-kim/tree/[PGS]\353\213\244\353\213\250\352\263\204\354\271\253\354\206\224\355\214\220\353\247\244.py" +++ /dev/null @@ -1,15 +0,0 @@ -def solution(enroll, referral, seller, amount): - parent = dict(zip(enroll, referral)) - # 이름 키 : 수익 값 - total_money = {name:0 for name in enroll} - - for i in range(len(seller)): - money = amount[i]*100 - cur_name = seller[i] - while money > 0 and cur_name != "-": - #1원 미만으로는 분배하지 않음 (//10) - total_money[cur_name] += money - money//10 - cur_name = parent[cur_name] - money //= 10 - - return [total_money[name] for name in enroll] \ No newline at end of file diff --git "a/dajeong-kim/tree/[PGS]\353\257\270\353\241\234\355\203\210\354\266\234.py" "b/dajeong-kim/tree/[PGS]\353\257\270\353\241\234\355\203\210\354\266\234.py" deleted file mode 100644 index 2af0d02be..000000000 --- "a/dajeong-kim/tree/[PGS]\353\257\270\353\241\234\355\203\210\354\266\234.py" +++ /dev/null @@ -1,54 +0,0 @@ -from collections import deque - -# 가려는 곳이 유효한지 판단 (가로 세로 한계를 넘지 않고, X가 아닐때 True) -def is_valid (ny, nx, n, m, maps): - return 0<=nx 덱에 추가 -def append_to_queue(ny, nx, k, time, visited, q): - if not visited[ny][nx][k]: - visited[ny][nx][k] = True - q.append((ny, nx, k, time+1)) - -def solution(maps): - n, m = len(maps), len(maps[0]) - visited = [[[False for _ in range(2)] for _ in range(m)] for _ in range(n)] - - dy = [-1, 1, 0, 0] - dx = [0, 0, -1, 1] - q = deque() - end_y, end_x = -1, -1 - - for i in range(n): - for j in range(m): - if maps[i][j] == "S": - q.append((i,j,0,0)) - visited[i][j][0] = True - if maps[i][j] == "E": - end_y, end_x = i, j - - while q: - y, x, k, time = q.popleft() - - if y == end_y and x == end_x and k == 1: - return time - - # 가능한 네 방향으로 모두 test - # 너비 우선 탐색 (최단 경로 보장) - for i in range(4): - ny, nx = y + dy[i], x + dx[i] - - if not is_valid (ny, nx, n, m, maps): - continue - - if maps[ny][nx] == "L": - append_to_queue(ny, nx, 1, time, visited, q) - - else: - append_to_queue(ny, nx, k, time, visited, q) - - # 모든 q의 원소를 지났음에도 k==1이 아니거나 마지막 좌표에 도착하지 못했을 경우 - return -1 - - \ No newline at end of file diff --git "a/dajeong-kim/tree/[PGS]\354\226\221\352\263\274\353\212\221\353\214\200.py" "b/dajeong-kim/tree/[PGS]\354\226\221\352\263\274\353\212\221\353\214\200.py" deleted file mode 100644 index 1626daab8..000000000 --- "a/dajeong-kim/tree/[PGS]\354\226\221\352\263\274\353\212\221\353\214\200.py" +++ /dev/null @@ -1,35 +0,0 @@ -from collections import deque -def solution(info, edges): - def build_tree(info, edges): - tree = [[] for _ in range(len(info))] - for edge in edges: - tree[edge[0]].append(edge[1]) - return tree - - # 트리 생성 - tree = build_tree(info, edges) - - max_sheep = 0 - - # 현재위치, 양의수, 늑대의수, 방문노드 set() - q = deque([(0, 1, 0, set())]) - - while q: - cur, sheep, wolf, visited = q.popleft() - - max_sheep = max(sheep, max_sheep) - - # 현재 노드의 이웃 노드 추가 - visited.update(tree[cur]) - - for next_node in visited: - # 늑대일 경우 - if info[next_node] == 1: - if (sheep - wolf) != 1: - q.append((next_node, sheep, wolf+1, visited - {next_node})) - # 양일 경우 - else: - q.append((next_node, sheep+1, wolf, visited-{next_node})) - - return max_sheep - \ No newline at end of file diff --git "a/dajeong-kim/tree/[PGS]\354\236\205\352\265\255\354\213\254\354\202\254.py" "b/dajeong-kim/tree/[PGS]\354\236\205\352\265\255\354\213\254\354\202\254.py" deleted file mode 100644 index 97c82e448..000000000 --- "a/dajeong-kim/tree/[PGS]\354\236\205\352\265\255\354\213\254\354\202\254.py" +++ /dev/null @@ -1,21 +0,0 @@ -def solution(n, times): - answer = 0 - left, right = 1, max(times)*n - - while left<=right: - people = 0 - mid = (left+right) //2 - - for time in times: - people += mid // time - if people >= n: - break - - if people>=n: - answer = mid - right = mid - 1 - - else: - left = mid + 1 - - return answer \ No newline at end of file From 236c4ce11b4ae67706f2fc64363346a0f6272741 Mon Sep 17 00:00:00 2001 From: sanghwa <85687130+aga1215@users.noreply.github.com> Date: Mon, 22 Dec 2025 14:13:21 +0900 Subject: [PATCH 07/45] Delete dj_dong_jae directory --- dj_dong_jae/.gitignore | 29 ---- dj_dong_jae/.idea/aws.xml | 14 -- dj_dong_jae/.idea/misc.xml | 6 - dj_dong_jae/.idea/modules.xml | 8 - dj_dong_jae/.idea/vcs.xml | 6 - dj_dong_jae/.idea/workspace.xml | 190 ----------------------- dj_dong_jae/dj_dong_jae.iml | 11 -- dj_dong_jae/src/BOJ_1003/Main.java | 40 ----- dj_dong_jae/src/BOJ_1012/Main.java | 71 --------- dj_dong_jae/src/BOJ_10773/Main.java | 28 ---- dj_dong_jae/src/BOJ_10810/Main.java | 76 --------- dj_dong_jae/src/BOJ_10828/Main.java | 54 ------- dj_dong_jae/src/BOJ_10845/Main.java | 59 ------- dj_dong_jae/src/BOJ_11021/Main.java | 21 --- dj_dong_jae/src/BOJ_11403/Main.java | 52 ------- dj_dong_jae/src/BOJ_11724/Main.java | 51 ------ dj_dong_jae/src/BOJ_11726/Main.java | 24 --- dj_dong_jae/src/BOJ_1197/Main.java | 86 ---------- dj_dong_jae/src/BOJ_1260/Main.java | 68 -------- dj_dong_jae/src/BOJ_13549/Main.java | 79 ---------- dj_dong_jae/src/BOJ_14502/Main.java | 88 ----------- dj_dong_jae/src/BOJ_1463/Main.java | 26 ---- dj_dong_jae/src/BOJ_14681/Main.java | 24 --- dj_dong_jae/src/BOJ_1697/Main.java | 54 ------- dj_dong_jae/src/BOJ_1753/Main.java | 83 ---------- dj_dong_jae/src/BOJ_18352/Main.java | 60 ------- dj_dong_jae/src/BOJ_1916/Main.java | 76 --------- dj_dong_jae/src/BOJ_1920/Main.java | 37 ----- dj_dong_jae/src/BOJ_1922/Main.java | 79 ---------- dj_dong_jae/src/BOJ_2018/Main.java | 30 ---- dj_dong_jae/src/BOJ_2164/Main.java | 30 ---- dj_dong_jae/src/BOJ_2178/Main.java | 68 -------- dj_dong_jae/src/BOJ_2439/Main.java | 26 ---- dj_dong_jae/src/BOJ_2588/Main.java | 31 ---- dj_dong_jae/src/BOJ_2606/Main.java | 51 ------ dj_dong_jae/src/BOJ_2667/Main.java | 72 --------- dj_dong_jae/src/BOJ_2741/Main.java | 14 -- dj_dong_jae/src/BOJ_2884/Main.java | 26 ---- dj_dong_jae/src/BOJ_4386/Main.java | 88 ----------- dj_dong_jae/src/BOJ_5430/Main.java | 77 --------- dj_dong_jae/src/BOJ_7576/Main.java | 80 ---------- dj_dong_jae/src/BOJ_9012/Main.java | 50 ------ dj_dong_jae/src/BOJ_9086/Main.java | 21 --- dj_dong_jae/src/BOJ_9095/Main.java | 32 ---- dj_dong_jae/src/PGS_12925/Solution.java | 22 --- dj_dong_jae/src/PGS_12928/Solution.java | 22 --- dj_dong_jae/src/PGS_181899/Solution.java | 15 -- dj_dong_jae/src/PGS_181943/Solution.java | 19 --- dj_dong_jae/src/PGS_181944/Solution.java | 23 --- dj_dong_jae/src/PGS_181946/Solution.java | 20 --- dj_dong_jae/src/PGS_181947/Solution.java | 28 ---- dj_dong_jae/src/PGS_181948/Solution.java | 9 -- dj_dong_jae/src/PGS_181949/Solution.java | 30 ---- dj_dong_jae/src/PGS_181950/Solution.java | 15 -- dj_dong_jae/src/PGS_181951/Solution.java | 15 -- dj_dong_jae/src/PGS_60057/Solution.java | 29 ---- dj_dong_jae/src/PGS_60059/Solution.java | 72 --------- 57 files changed, 2515 deletions(-) delete mode 100644 dj_dong_jae/.gitignore delete mode 100644 dj_dong_jae/.idea/aws.xml delete mode 100644 dj_dong_jae/.idea/misc.xml delete mode 100644 dj_dong_jae/.idea/modules.xml delete mode 100644 dj_dong_jae/.idea/vcs.xml delete mode 100644 dj_dong_jae/.idea/workspace.xml delete mode 100644 dj_dong_jae/dj_dong_jae.iml delete mode 100644 dj_dong_jae/src/BOJ_1003/Main.java delete mode 100644 dj_dong_jae/src/BOJ_1012/Main.java delete mode 100644 dj_dong_jae/src/BOJ_10773/Main.java delete mode 100644 dj_dong_jae/src/BOJ_10810/Main.java delete mode 100644 dj_dong_jae/src/BOJ_10828/Main.java delete mode 100644 dj_dong_jae/src/BOJ_10845/Main.java delete mode 100644 dj_dong_jae/src/BOJ_11021/Main.java delete mode 100644 dj_dong_jae/src/BOJ_11403/Main.java delete mode 100644 dj_dong_jae/src/BOJ_11724/Main.java delete mode 100644 dj_dong_jae/src/BOJ_11726/Main.java delete mode 100644 dj_dong_jae/src/BOJ_1197/Main.java delete mode 100644 dj_dong_jae/src/BOJ_1260/Main.java delete mode 100644 dj_dong_jae/src/BOJ_13549/Main.java delete mode 100644 dj_dong_jae/src/BOJ_14502/Main.java delete mode 100644 dj_dong_jae/src/BOJ_1463/Main.java delete mode 100644 dj_dong_jae/src/BOJ_14681/Main.java delete mode 100644 dj_dong_jae/src/BOJ_1697/Main.java delete mode 100644 dj_dong_jae/src/BOJ_1753/Main.java delete mode 100644 dj_dong_jae/src/BOJ_18352/Main.java delete mode 100644 dj_dong_jae/src/BOJ_1916/Main.java delete mode 100644 dj_dong_jae/src/BOJ_1920/Main.java delete mode 100644 dj_dong_jae/src/BOJ_1922/Main.java delete mode 100644 dj_dong_jae/src/BOJ_2018/Main.java delete mode 100644 dj_dong_jae/src/BOJ_2164/Main.java delete mode 100644 dj_dong_jae/src/BOJ_2178/Main.java delete mode 100644 dj_dong_jae/src/BOJ_2439/Main.java delete mode 100644 dj_dong_jae/src/BOJ_2588/Main.java delete mode 100644 dj_dong_jae/src/BOJ_2606/Main.java delete mode 100644 dj_dong_jae/src/BOJ_2667/Main.java delete mode 100644 dj_dong_jae/src/BOJ_2741/Main.java delete mode 100644 dj_dong_jae/src/BOJ_2884/Main.java delete mode 100644 dj_dong_jae/src/BOJ_4386/Main.java delete mode 100644 dj_dong_jae/src/BOJ_5430/Main.java delete mode 100644 dj_dong_jae/src/BOJ_7576/Main.java delete mode 100644 dj_dong_jae/src/BOJ_9012/Main.java delete mode 100644 dj_dong_jae/src/BOJ_9086/Main.java delete mode 100644 dj_dong_jae/src/BOJ_9095/Main.java delete mode 100644 dj_dong_jae/src/PGS_12925/Solution.java delete mode 100644 dj_dong_jae/src/PGS_12928/Solution.java delete mode 100644 dj_dong_jae/src/PGS_181899/Solution.java delete mode 100644 dj_dong_jae/src/PGS_181943/Solution.java delete mode 100644 dj_dong_jae/src/PGS_181944/Solution.java delete mode 100644 dj_dong_jae/src/PGS_181946/Solution.java delete mode 100644 dj_dong_jae/src/PGS_181947/Solution.java delete mode 100644 dj_dong_jae/src/PGS_181948/Solution.java delete mode 100644 dj_dong_jae/src/PGS_181949/Solution.java delete mode 100644 dj_dong_jae/src/PGS_181950/Solution.java delete mode 100644 dj_dong_jae/src/PGS_181951/Solution.java delete mode 100644 dj_dong_jae/src/PGS_60057/Solution.java delete mode 100644 dj_dong_jae/src/PGS_60059/Solution.java diff --git a/dj_dong_jae/.gitignore b/dj_dong_jae/.gitignore deleted file mode 100644 index f68d10996..000000000 --- a/dj_dong_jae/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -### IntelliJ IDEA ### -out/ -!**/src/main/**/out/ -!**/src/test/**/out/ - -### Eclipse ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache -bin/ -!**/src/main/**/bin/ -!**/src/test/**/bin/ - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ - -### VS Code ### -.vscode/ - -### Mac OS ### -.DS_Store \ No newline at end of file diff --git a/dj_dong_jae/.idea/aws.xml b/dj_dong_jae/.idea/aws.xml deleted file mode 100644 index 02a95f162..000000000 --- a/dj_dong_jae/.idea/aws.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/dj_dong_jae/.idea/misc.xml b/dj_dong_jae/.idea/misc.xml deleted file mode 100644 index 07115cdf1..000000000 --- a/dj_dong_jae/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/dj_dong_jae/.idea/modules.xml b/dj_dong_jae/.idea/modules.xml deleted file mode 100644 index 968282110..000000000 --- a/dj_dong_jae/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/dj_dong_jae/.idea/vcs.xml b/dj_dong_jae/.idea/vcs.xml deleted file mode 100644 index 6c0b86358..000000000 --- a/dj_dong_jae/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/dj_dong_jae/.idea/workspace.xml b/dj_dong_jae/.idea/workspace.xml deleted file mode 100644 index cacb1658c..000000000 --- a/dj_dong_jae/.idea/workspace.xml +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - { - "keyToString": { - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "node.js.detected.package.eslint": "true", - "node.js.detected.package.tslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "onboarding.tips.debug.path": "/Users/dongjae/Desktop/challenge100-codingtest-study/dj_dong_jae/src/Main.java", - "settings.editor.selected.configurable": "editor.preferences.completion", - "vue.rearranger.settings.migration": "true" - } -} - - - - - - - - - - - - - - - - - - - - - - - - - - 1704283167557 - - - - - - - - - - file://$PROJECT_DIR$/src/Main.java - 13 - - - - - - -