From 5c689c60999c2e57e683007144213c1a4e7241dc Mon Sep 17 00:00:00 2001 From: Hoyoung Jung Date: Mon, 3 Feb 2020 16:47:00 +0900 Subject: [PATCH 1/9] Be2020 (#84) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update Readme: add commit rule - 규칙내용 추가 * [sql] programmers sql lv.1 가장 최신 날짜 구하기 문제 * Change year to 2020 --- 200203/honux77/59415.sql | 6 ++++++ README.md | 25 ++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 200203/honux77/59415.sql diff --git a/200203/honux77/59415.sql b/200203/honux77/59415.sql new file mode 100644 index 0000000..943d93d --- /dev/null +++ b/200203/honux77/59415.sql @@ -0,0 +1,6 @@ +-- 가장 최근에 동물이 들어온 날짜를 좋아하는 SQL 문 +SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME DESC LIMIT 1; + +-- 다른 풀이 +SELECT MAX(DATETIME) FROM ANIMAL_INS; + diff --git a/README.md b/README.md index 4ab9099..28972ad 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,25 @@ # algorithm-practice -2019 코드스쿼드 백엔드 알고리즘 연습 저장소 + +2020 코드스쿼드 백엔드 알고리즘 연습 저장소 + +## 커밋하기 + +- 이 저장소를 포크한다. +- 문제를 풀고 커밋한다. 단 아래의 폴더구조를 따라 문제풀이를 작성한다. + +날짜/GitHubId/문제풀이.확장자 + +예) 20200203/honux77/Runner.java + +- 주석 등을 이용해 문제의 출처를 기입할 것 + +## 푸시 및 풀리퀘 + +- 충돌이 나지 않고 병합이 가능할 것 +- 폴더 구조 규칙을 지킬 것 +- 위 사항을 만족하면 풀리퀘는 리뷰 없이 머지된다. + +## 통계보기 + +- 주기적으로 통계를 통해 자신의 커밋수를 확인하고 열심히 풀어보자 + From c74bfc2bda72e11e69e18d66fef25a7c6a017d3a Mon Sep 17 00:00:00 2001 From: KIM DONG HWAN Date: Mon, 3 Feb 2020 17:29:45 +0900 Subject: [PATCH 2/9] Test Commit --- "200203/Han/\355\205\214\354\212\244\355\212\270.md" | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 "200203/Han/\355\205\214\354\212\244\355\212\270.md" diff --git "a/200203/Han/\355\205\214\354\212\244\355\212\270.md" "b/200203/Han/\355\205\214\354\212\244\355\212\270.md" new file mode 100644 index 0000000..8243beb --- /dev/null +++ "b/200203/Han/\355\205\214\354\212\244\355\212\270.md" @@ -0,0 +1,2 @@ +테스트입니당 + From 71ce751c23eeee8f2c8bb3a44a8f85a509ddf923 Mon Sep 17 00:00:00 2001 From: KIM DONG HWAN Date: Tue, 4 Feb 2020 22:19:07 +0900 Subject: [PATCH 3/9] =?UTF-8?q?TestCommit=20=EC=82=AD=EC=A0=9C,=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=98=EB=A8=B8=EC=8A=A4=20Top=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\355\205\214\354\212\244\355\212\270.md" | 2 -- 200204/102092/Top.java | 30 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) delete mode 100644 "200203/Han/\355\205\214\354\212\244\355\212\270.md" create mode 100644 200204/102092/Top.java diff --git "a/200203/Han/\355\205\214\354\212\244\355\212\270.md" "b/200203/Han/\355\205\214\354\212\244\355\212\270.md" deleted file mode 100644 index 8243beb..0000000 --- "a/200203/Han/\355\205\214\354\212\244\355\212\270.md" +++ /dev/null @@ -1,2 +0,0 @@ -테스트입니당 - diff --git a/200204/102092/Top.java b/200204/102092/Top.java new file mode 100644 index 0000000..ecdbf10 --- /dev/null +++ b/200204/102092/Top.java @@ -0,0 +1,30 @@ +import java.util.Stack; + +/* +https://programmers.co.kr/learn/courses/30/lessons/42588 +*/ + +class Solution { + public int[] solution(int[] heights) { + int[] answer = new int[heights.length]; + Stack stk = new Stack<>(); + int top; + + for (int i = 0; i < heights.length; i++) { + stk.add(heights[i]); + } + + while (!stk.isEmpty()) { + top = stk.pop(); + + for (int j = stk.size(); j >= 0; j--) { + if (heights[j] > top) { + answer[stk.size()] = j + 1; + break; + } + } + } + + return answer; + } +} \ No newline at end of file From fb6834646453ec76ff574dd079338b4b68413c68 Mon Sep 17 00:00:00 2001 From: KIM DONG HWAN Date: Tue, 4 Feb 2020 22:26:56 +0900 Subject: [PATCH 4/9] =?UTF-8?q?Revert=20"TestCommit=20=EC=82=AD=EC=A0=9C,?= =?UTF-8?q?=20=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=98=EB=A8=B8=EC=8A=A4=20Top?= =?UTF-8?q?=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 71ce751c23eeee8f2c8bb3a44a8f85a509ddf923. --- .../\355\205\214\354\212\244\355\212\270.md" | 2 ++ 200204/102092/Top.java | 30 ------------------- 2 files changed, 2 insertions(+), 30 deletions(-) create mode 100644 "200203/Han/\355\205\214\354\212\244\355\212\270.md" delete mode 100644 200204/102092/Top.java diff --git "a/200203/Han/\355\205\214\354\212\244\355\212\270.md" "b/200203/Han/\355\205\214\354\212\244\355\212\270.md" new file mode 100644 index 0000000..8243beb --- /dev/null +++ "b/200203/Han/\355\205\214\354\212\244\355\212\270.md" @@ -0,0 +1,2 @@ +테스트입니당 + diff --git a/200204/102092/Top.java b/200204/102092/Top.java deleted file mode 100644 index ecdbf10..0000000 --- a/200204/102092/Top.java +++ /dev/null @@ -1,30 +0,0 @@ -import java.util.Stack; - -/* -https://programmers.co.kr/learn/courses/30/lessons/42588 -*/ - -class Solution { - public int[] solution(int[] heights) { - int[] answer = new int[heights.length]; - Stack stk = new Stack<>(); - int top; - - for (int i = 0; i < heights.length; i++) { - stk.add(heights[i]); - } - - while (!stk.isEmpty()) { - top = stk.pop(); - - for (int j = stk.size(); j >= 0; j--) { - if (heights[j] > top) { - answer[stk.size()] = j + 1; - break; - } - } - } - - return answer; - } -} \ No newline at end of file From e23f5682c95fbe6b02a5dedfe31b57a337c10707 Mon Sep 17 00:00:00 2001 From: KIM DONG HWAN Date: Tue, 4 Feb 2020 22:31:04 +0900 Subject: [PATCH 5/9] =?UTF-8?q?=EB=B8=8C=EB=9E=9C=EC=B9=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95,=20Top=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\355\205\214\354\212\244\355\212\270.md" | 2 -- 200204/102092/Top.java | 30 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) delete mode 100644 "200203/Han/\355\205\214\354\212\244\355\212\270.md" create mode 100644 200204/102092/Top.java diff --git "a/200203/Han/\355\205\214\354\212\244\355\212\270.md" "b/200203/Han/\355\205\214\354\212\244\355\212\270.md" deleted file mode 100644 index 8243beb..0000000 --- "a/200203/Han/\355\205\214\354\212\244\355\212\270.md" +++ /dev/null @@ -1,2 +0,0 @@ -테스트입니당 - diff --git a/200204/102092/Top.java b/200204/102092/Top.java new file mode 100644 index 0000000..a1b7489 --- /dev/null +++ b/200204/102092/Top.java @@ -0,0 +1,30 @@ +import java.util.Stack; + +/* +https://programmers.co.kr/learn/courses/30/lessons/42588 +*/ + +class Solution { + public int[] solution(int[] heights) { + int[] answer = new int[heights.length]; + Stack stk = new Stack(); + int top; + + for (int i = 0; i < heights.length; i++) { + stk.add(heights[i]); + } + + while (!stk.isEmpty()) { + top = stk.pop(); + + for (int j = stk.size(); j >= 0; j--) { + if (heights[j] > top) { + answer[stk.size()] = j + 1; + break; + } + } + } + + return answer; + } +} \ No newline at end of file From eee2675b12a86c3f060640a220a36630e03954e6 Mon Sep 17 00:00:00 2001 From: KIM DONG HWAN Date: Wed, 5 Feb 2020 13:19:29 +0900 Subject: [PATCH 6/9] =?UTF-8?q?Programmers=20=EB=AA=A8=EC=9D=98=EA=B3=A0?= =?UTF-8?q?=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 세가지 변수중에 최대값을 찾는 방법. Arraylist to List 바꾸는 방법을 찾을수 있었음. 다만 stream()으로 하는 방법은 성능상은 별로인듯함. --- 200205/102092/MockTest.java | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 200205/102092/MockTest.java diff --git a/200205/102092/MockTest.java b/200205/102092/MockTest.java new file mode 100644 index 0000000..e0eba66 --- /dev/null +++ b/200205/102092/MockTest.java @@ -0,0 +1,39 @@ +import java.util.*; + +/* +https://programmers.co.kr/learn/courses/30/lessons/42840 +*/ + +class Solution { + public int[] solution(int[] answers) { + int[] A = new int[] { 1, 2, 3, 4, 5 }; + int[] B = new int[] { 2, 1, 2, 3, 2, 4, 2, 5 }; + int[] C = new int[] { 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 }; + + List answer = new ArrayList<>(); + int a = 0; + int b = 0; + int c = 0; + + for (int i = 0; i < answers.length; i++) { + if (A[i % A.length] == answers[i]) + a += 1; + if (B[i % B.length] == answers[i]) + b += 1; + if (C[i % C.length] == answers[i]) + c += 1; + } + + int max = Math.max(a, Math.max(b, c)); + + if (a == max) + answer.add(1); + if (b == max) + answer.add(2); + if (c == max) + answer.add(3); + + int[] ret = answer.stream().mapToInt(Integer::intValue).toArray(); + return ret; + } +} \ No newline at end of file From 4d9f4d9fe5bae7045bf8895fbd6357144524e52d Mon Sep 17 00:00:00 2001 From: KIM DONG HWAN Date: Mon, 3 Feb 2020 17:29:45 +0900 Subject: [PATCH 7/9] Test Commit --- "200203/Han/\355\205\214\354\212\244\355\212\270.md" | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 "200203/Han/\355\205\214\354\212\244\355\212\270.md" diff --git "a/200203/Han/\355\205\214\354\212\244\355\212\270.md" "b/200203/Han/\355\205\214\354\212\244\355\212\270.md" new file mode 100644 index 0000000..8243beb --- /dev/null +++ "b/200203/Han/\355\205\214\354\212\244\355\212\270.md" @@ -0,0 +1,2 @@ +테스트입니당 + From 4cbf47d10169b78d1b4147e87890c3a077d9b839 Mon Sep 17 00:00:00 2001 From: KIM DONG HWAN Date: Tue, 4 Feb 2020 22:31:04 +0900 Subject: [PATCH 8/9] =?UTF-8?q?=EB=B8=8C=EB=9E=9C=EC=B9=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95,=20Top=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "200203/Han/\355\205\214\354\212\244\355\212\270.md" | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 "200203/Han/\355\205\214\354\212\244\355\212\270.md" diff --git "a/200203/Han/\355\205\214\354\212\244\355\212\270.md" "b/200203/Han/\355\205\214\354\212\244\355\212\270.md" deleted file mode 100644 index 8243beb..0000000 --- "a/200203/Han/\355\205\214\354\212\244\355\212\270.md" +++ /dev/null @@ -1,2 +0,0 @@ -테스트입니당 - From 966643f6ecaa4073ca04f6149b6c1e0addf5078b Mon Sep 17 00:00:00 2001 From: KIM DONG HWAN Date: Tue, 11 Feb 2020 23:34:24 +0900 Subject: [PATCH 9/9] =?UTF-8?q?=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=98?= =?UTF-8?q?=EB=A8=B8=EC=8A=A4=20=EC=B2=B4=EC=9C=A1=EB=B3=B5,=20sql=20(Grou?= =?UTF-8?q?pBy1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 200211/102092/groupby1.sql | 5 ++ 200211/102092/workoutClothes.java | 85 +++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 200211/102092/groupby1.sql create mode 100644 200211/102092/workoutClothes.java diff --git a/200211/102092/groupby1.sql b/200211/102092/groupby1.sql new file mode 100644 index 0000000..101dad8 --- /dev/null +++ b/200211/102092/groupby1.sql @@ -0,0 +1,5 @@ +/* +https://programmers.co.kr/learn/courses/30/lessons/59040 +*/ + +SELECT ANIMAL_TYPE,COUNT(ANIMAL_TYPE) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE; \ No newline at end of file diff --git a/200211/102092/workoutClothes.java b/200211/102092/workoutClothes.java new file mode 100644 index 0000000..8bd0abf --- /dev/null +++ b/200211/102092/workoutClothes.java @@ -0,0 +1,85 @@ +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/* +https://programmers.co.kr/learn/courses/30/lessons/42862 + +1. Greedy 문제 +2. 다중 for문을 돌려야하나? +3. 정확히 어떤 컨셉의 문제인지 빠르게 캐치가 안됨. +4. + */ + +class Solution { + + public int solution(int n, int[] lost, int[] reserve) { + int result = n; + result -= lost.length; + + for (int i = 0; i < lost.length; i++) { + for (int j = 0; j < reserve.length; j++) { + // 여분을 가져왔는데, 잃어버렸을 경우, 그러면 빌려줄 수 없으니까. + if (lost[i] == reserve[j]) { + result++; + lost[i] = -1; + reserve[j] = -1; + break; + } + } + + } + + for (int i = 0; i < lost.length; i++) { + for (int j = 0; j < reserve.length; j++) { + if (lost[i] == reserve[j] - 1 || lost[i] == reserve[j] + 1) { + result++; + reserve[j] = -1; + break; + } + } + + } + return result; + } +} + +public class workoutClothes { + + Solution solution; + + @BeforeEach + public void 객체생성() { + solution = new Solution(); + } + + @Test + public void 테스트1() { + int n = 5; + int[] lost = new int[] { 2, 4 }; + int[] reserve = new int[] { 1, 3, 5 }; + int result = 5; + assertEquals(solution.solution(n, lost, reserve), result); + } + + @Test + public void 테스트2() { + int n = 5; + int[] lost = new int[] { 2, 4 }; + int[] reserve = new int[] { 3 }; + int result = 4; + + assertEquals(solution.solution(n, lost, reserve), result); + } + + @Test + public void 테스트3() { + int n = 3; + int[] lost = new int[] { 3 }; + int[] reserve = new int[] { 1 }; + int result = 2; + + assertEquals(solution.solution(n, lost, reserve), result); + } +}