From 728c0801e99c83cff38548c2629f2c19074e9b9e Mon Sep 17 00:00:00 2001 From: "Yong-Woo, Lee" <110705019+wooleejaan@users.noreply.github.com> Date: Fri, 21 Apr 2023 20:01:28 +0900 Subject: [PATCH 1/4] =?UTF-8?q?[level=204]=20Title:=20[3=EC=B0=A8]=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=EC=99=84=EC=84=B1,=20Time:=200.20=20ms,=20Me?= =?UTF-8?q?mory:=2037.3=20MB=20-BaekjoonHub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md" | 93 +++++++++++++++++++ ...20\353\217\231\354\231\204\354\204\261.js" | 43 +++++++++ 2 files changed, 136 insertions(+) create mode 100644 "\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv4/17685.\342\200\205\357\274\2733\354\260\250\357\274\275\342\200\205\354\236\220\353\217\231\354\231\204\354\204\261/README.md" create mode 100644 "\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv4/17685.\342\200\205\357\274\2733\354\260\250\357\274\275\342\200\205\354\236\220\353\217\231\354\231\204\354\204\261/\357\274\2733\354\260\250\357\274\275\342\200\205\354\236\220\353\217\231\354\231\204\354\204\261.js" diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv4/17685.\342\200\205\357\274\2733\354\260\250\357\274\275\342\200\205\354\236\220\353\217\231\354\231\204\354\204\261/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv4/17685.\342\200\205\357\274\2733\354\260\250\357\274\275\342\200\205\354\236\220\353\217\231\354\231\204\354\204\261/README.md" new file mode 100644 index 0000000..b584e01 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv4/17685.\342\200\205\357\274\2733\354\260\250\357\274\275\342\200\205\354\236\220\353\217\231\354\231\204\354\204\261/README.md" @@ -0,0 +1,93 @@ +# [level 4] [3차] 자동완성 - 17685 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/17685?language=javascript) + +### 성능 요약 + +메모리: 37.3 MB, 시간: 0.20 ms + +### 구분 + +코딩테스트 연습 > 2018 KAKAO BLIND RECRUITMENT + +### 채점결과 + +Empty + +### 문제 설명 + +
포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g 만 입력해도 go를 추천해주므로 o를 입력할 필요가 없어진다! 단, 학습에 사용된 단어들 중 앞부분이 같은 경우에는 어쩔 수 없이 다른 문자가 나올 때까지 입력을 해야 한다.
+효과가 얼마나 좋을지 알고 싶은 라이언은 학습된 단어들을 찾을 때 몇 글자를 입력해야 하는지 궁금해졌다.
예를 들어, 학습된 단어들이 아래와 같을 때
+go
+gone
+guild
+go를 찾을 때 go를 모두 입력해야 한다.gone을 찾을 때 gon 까지 입력해야 한다.
+(gon이 입력되기 전까지는 go 인지 gone인지 확신할 수 없다.)guild를 찾을 때는 gu 까지만 입력하면 guild가 완성된다.이 경우 총 입력해야 할 문자의 수는 7이다.
라이언을 도와 위와 같이 문자열이 입력으로 주어지면 학습을 시킨 후, 학습된 단어들을 순서대로 찾을 때 몇 개의 문자를 입력하면 되는지 계산하는 프로그램을 만들어보자.
+ +학습과 검색에 사용될 중복 없는 단어 N개가 주어진다.
+모든 단어는 알파벳 소문자로 구성되며 단어의 수 N과 단어들의 길이의 총합 L의 범위는 다음과 같다.
N <= 100,000L <= 1,000,000단어를 찾을 때 입력해야 할 총 문자수를 리턴한다.
+ +| words | +result | +
|---|---|
| ["go","gone","guild"] | +7 | +
| ["abc","def","ghi","jklm"] | +4 | +
| ["word","war","warrior","world"] | +15 | +
15 자를 입력해야 하고 설명은 아래와 같다.
+
+word는 word모두 입력해야 한다.war는 war 까지 모두 입력해야 한다.warrior는 warr 까지만 입력하면 된다.world는 worl까지 입력해야 한다. (word와 구분되어야 함을 명심하자)오늘도 서준이는 선택 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.
+ +N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 선택 정렬로 배열 A를 오름차순 정렬할 경우 K 번째 교환되는 수를 구해서 우리 서준이를 도와주자.
+ +크기가 N인 배열에 대한 선택 정렬 의사 코드는 다음과 같다.
+ +selection_sort(A[1..N]) { # A[1..N]을 오름차순 정렬한다.
+ for last <- N downto 2 {
+ A[1..last]중 가장 큰 수 A[i]를 찾는다
+ if (last != i) then A[last] <-> A[i] # last와 i가 서로 다르면 A[last]와 A[i]를 교환
+ }
+}
+
+### 입력
+
+ 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 10,000), 교환 횟수 K(1 ≤ K ≤ N)가 주어진다.
+ +다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109)
+ +### 출력 + +K 번째 교환되는 두 개의 수를 작은 수부터 한 줄에 출력한다. 교환 횟수가 K 보다 작으면 -1을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/23881.\342\200\205\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2051/\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2051.py" "b/\353\260\261\354\244\200/Bronze/23881.\342\200\205\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2051/\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2051.py" new file mode 100644 index 0000000..b34a24c --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/23881.\342\200\205\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2051/\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2051.py" @@ -0,0 +1,22 @@ +import sys + +# sys.stdin = open("input.txt", "r") +input = sys.stdin.readline + +n, k = map(int, input().split()) +l = list(map(int, input().split())) + +cnt = 0 + +for i in range(n - 1, 0, -1): + index = l.index(max(l[:i + 1])) + + if index != i: + l[index], l[i] = l[i], l[index] + cnt += 1 + + if cnt == k: + print(l[index], l[i]) + exit() + +print(-1) \ No newline at end of file From d8288bc184fe9acb69b39c6907e84b91e13ad4e1 Mon Sep 17 00:00:00 2001 From: "Yong-Woo, Lee" <110705019+wooleejaan@users.noreply.github.com> Date: Fri, 21 Apr 2023 20:04:05 +0900 Subject: [PATCH 3/4] =?UTF-8?q?[Bronze=20I]=20Title:=20=EC=95=8C=EA=B3=A0?= =?UTF-8?q?=EB=A6=AC=EC=A6=98=20=EC=88=98=EC=97=85=20-=20=EC=84=A0?= =?UTF-8?q?=ED=83=9D=20=EC=A0=95=EB=A0=AC=202,=20Time:=201372=20ms,=20Memo?= =?UTF-8?q?ry:=2032276=20KB=20-BaekjoonHub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md" | 37 +++++++++++++++++++ ...5\354\240\225\353\240\254\342\200\2052.py" | 22 +++++++++++ 2 files changed, 59 insertions(+) create mode 100644 "\353\260\261\354\244\200/Bronze/23882.\342\200\205\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052/README.md" create mode 100644 "\353\260\261\354\244\200/Bronze/23882.\342\200\205\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052/\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052.py" diff --git "a/\353\260\261\354\244\200/Bronze/23882.\342\200\205\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052/README.md" "b/\353\260\261\354\244\200/Bronze/23882.\342\200\205\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052/README.md" new file mode 100644 index 0000000..5243315 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/23882.\342\200\205\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052/README.md" @@ -0,0 +1,37 @@ +# [Bronze I] 알고리즘 수업 - 선택 정렬 2 - 23882 + +[문제 링크](https://www.acmicpc.net/problem/23882) + +### 성능 요약 + +메모리: 32276 KB, 시간: 1372 ms + +### 분류 + +구현, 시뮬레이션, 정렬 + +### 문제 설명 + +오늘도 서준이는 선택 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.
+ +N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 선택 정렬로 배열 A를 오름차순 정렬할 경우 K 번 교환이 발생한 직후의 배열 A를 출력해 보자.
+ +크기가 N인 배열에 대한 선택 정렬 의사 코드는 다음과 같다.
+ +selection_sort(A[1..N]) { # A[1..N]을 오름차순 정렬한다.
+ for last <- N downto 2 {
+ A[1..last]중 가장 큰 수 A[i]를 찾는다
+ if (last != i) then A[last] <-> A[i] # last와 i가 서로 다르면 A[last]와 A[i]를 교환
+ }
+}
+
+### 입력
+
+ 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 10,000), 교환 횟수 K(1 ≤ K ≤ N)가 주어진다.
+ +다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109)
+ +### 출력 + +K 번 교환이 발생한 직후의 배열 A를 한 줄에 출력한다. 교환 횟수가 K 보다 작으면 -1을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/23882.\342\200\205\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052/\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052.py" "b/\353\260\261\354\244\200/Bronze/23882.\342\200\205\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052/\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052.py" new file mode 100644 index 0000000..b67e1eb --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/23882.\342\200\205\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052/\354\225\214\352\263\240\353\246\254\354\246\230\342\200\205\354\210\230\354\227\205\342\200\205\357\274\215\342\200\205\354\204\240\355\203\235\342\200\205\354\240\225\353\240\254\342\200\2052.py" @@ -0,0 +1,22 @@ +import sys + +# sys.stdin = open("input.txt", "r") +input = sys.stdin.readline + +n, k = map(int, input().split()) +l = list(map(int, input().split())) + +cnt = 0 + +for i in range(n - 1, 0, -1): + index = l.index(max(l[:i + 1])) + + if index != i: + l[index], l[i] = l[i], l[index] + cnt += 1 + + if cnt == k: + print(*l) + exit() + +print(-1) \ No newline at end of file From 4815f924e4de466c578e10be10f14f9fbe20a447 Mon Sep 17 00:00:00 2001 From: "Yong-Woo, Lee" <110705019+wooleejaan@users.noreply.github.com> Date: Sun, 23 Apr 2023 08:30:48 +0900 Subject: [PATCH 4/4] =?UTF-8?q?[level=203]=20Title:=20=ED=92=8D=EC=84=A0?= =?UTF-8?q?=20=ED=84=B0=ED=8A=B8=EB=A6=AC=EA=B8=B0,=20Time:=2027.46=20ms,?= =?UTF-8?q?=20Memory:=2089.5=20MB=20-BaekjoonHub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md" | 100 ++++++++++++++++++ ...60\355\212\270\353\246\254\352\270\260.js" | 23 ++++ 2 files changed, 123 insertions(+) create mode 100644 "\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv3/68646.\342\200\205\355\222\215\354\204\240\342\200\205\355\204\260\355\212\270\353\246\254\352\270\260/README.md" create mode 100644 "\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv3/68646.\342\200\205\355\222\215\354\204\240\342\200\205\355\204\260\355\212\270\353\246\254\352\270\260/\355\222\215\354\204\240\342\200\205\355\204\260\355\212\270\353\246\254\352\270\260.js" diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv3/68646.\342\200\205\355\222\215\354\204\240\342\200\205\355\204\260\355\212\270\353\246\254\352\270\260/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv3/68646.\342\200\205\355\222\215\354\204\240\342\200\205\355\204\260\355\212\270\353\246\254\352\270\260/README.md" new file mode 100644 index 0000000..ca48707 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv3/68646.\342\200\205\355\222\215\354\204\240\342\200\205\355\204\260\355\212\270\353\246\254\352\270\260/README.md" @@ -0,0 +1,100 @@ +# [level 3] 풍선 터트리기 - 68646 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/68646) + +### 성능 요약 + +메모리: 89.5 MB, 시간: 27.46 ms + +### 구분 + +코딩테스트 연습 > 월간 코드 챌린지 시즌1 + +### 채점결과 + +Empty + +### 문제 설명 + +일렬로 나열된 n개의 풍선이 있습니다. 모든 풍선에는 서로 다른 숫자가 써져 있습니다. 당신은 다음 과정을 반복하면서 풍선들을 단 1개만 남을 때까지 계속 터트리려고 합니다.
+ +여기서 조건이 있습니다. 인접한 두 풍선 중에서 번호가 더 작은 풍선을 터트리는 행위는 최대 1번만 할 수 있습니다. 즉, 어떤 시점에서 인접한 두 풍선 중 번호가 더 작은 풍선을 터트렸다면, 그 이후에는 인접한 두 풍선을 고른 뒤 번호가 더 큰 풍선만을 터트릴 수 있습니다.
+ +당신은 어떤 풍선이 최후까지 남을 수 있는지 알아보고 싶습니다. 위에 서술된 조건대로 풍선을 터트리다 보면, 어떤 풍선은 최후까지 남을 수도 있지만, 어떤 풍선은 무슨 수를 쓰더라도 마지막까지 남기는 것이 불가능할 수도 있습니다.
+ +일렬로 나열된 풍선들의 번호가 담긴 배열 a가 주어집니다. 위에 서술된 규칙대로 풍선들을 1개만 남을 때까지 터트렸을 때 최후까지 남기는 것이 가능한 풍선들의 개수를 return 하도록 solution 함수를 완성해주세요.
+ +a[i]는 i+1 번째 풍선에 써진 숫자를 의미합니다.| a | +result | +
|---|---|
[9,-1,-5] |
+3 | +
[-16,27,65,-2,58,-92,-71,-68,-61,-33] |
+6 | +
입출력 예 #1
+ +[9, -1, -5] 에서 -1, -5가 써진 풍선을 고른 뒤, -1이 써진 풍선(번호가 더 큰 것)을 터트립니다.[9, -5] 에서 9, -5가 써진 풍선을 고른 뒤, -5가 써진 풍선(번호가 더 작은 것)을 터트립니다.[9, -1, -5] 에서 9, -1이 써진 풍선을 고른 뒤, 9가 써진 풍선(번호가 더 큰 것)을 터트립니다.[-1, -5] 에서 -1, -5가 써진 풍선을 고른 뒤, -5가 써진 풍선(번호가 더 작은 것)을 터트립니다.[9, -1, -5] 에서 9, -1이 써진 풍선을 고른 뒤, 9가 써진 풍선(번호가 더 큰 것)을 터트립니다.[-1, -5] 에서 -1, -5가 써진 풍선을 고른 뒤, -1이 써진 풍선(번호가 더 큰 것)을 터트립니다.입출력 예 #2
+ +