From 4553253cbc36c9b14812d6588a34017e600bcb85 Mon Sep 17 00:00:00 2001 From: nevasca1125 <90556146+nevasca1125@users.noreply.github.com> Date: Mon, 20 Feb 2023 03:02:21 +0900 Subject: [PATCH 1/3] =?UTF-8?q?11501/=EC=8B=A4=EB=B2=842?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dabincho/greedy/11501.py | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/dabincho/greedy/11501.py diff --git a/src/dabincho/greedy/11501.py b/src/dabincho/greedy/11501.py new file mode 100644 index 0000000..bf18339 --- /dev/null +++ b/src/dabincho/greedy/11501.py @@ -0,0 +1,37 @@ +#주식 +test_number = int(input()) +test_case = [] +for _ in range(test_number): + day = int(input()) + value = list(map(int, input().split())) + test_case.append([day, value]) + +def stock(day, value): + ''' + 1] 주어진 주가가 내림차순으로 되어있는지 확인 + : 이윤을 얻을 수 있는 경우가 존재하지 않음 + - 확인할 필요 x + + 2] 내림차순이 아니라면 + > 주어진 주가에서 가장 큰 주가를 선택 + : 가장 큰 주가의 앞쪽 날은 무조건 이윤을 얻을 수 있음. + : 첫 날부터 가장 큰 주가의 앞 날은 모두 사고 가장 큰 주가의 날에 모두 판다. + > 찾은 날이 마지막 날이 아니면 찾은 날의 다음 날부터 똑같은 과정을 반복 + > 과정을 반복하며 얻은 이윤을 모두 더한다. + ''' + test = [i for i in value] + test.sort(reverse=True) + result = 0 + if test != value: + best = max(value) + for i in range(day): + now = value[i] + if now != best: + result += (best-now) + else: + if i != day-1: + best = max(value[i+1:]) + print(result) + +for now in test_case: + stock(now[0], now[1]) \ No newline at end of file From 30fd76f236a656f0971ddeffb304b42543b090a9 Mon Sep 17 00:00:00 2001 From: nevasca1125 <90556146+nevasca1125@users.noreply.github.com> Date: Mon, 20 Feb 2023 04:22:32 +0900 Subject: [PATCH 2/3] =?UTF-8?q?10815/=EC=8B=A4=EB=B2=845?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dabincho/binary/10815.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/dabincho/binary/10815.py diff --git a/src/dabincho/binary/10815.py b/src/dabincho/binary/10815.py new file mode 100644 index 0000000..de194e0 --- /dev/null +++ b/src/dabincho/binary/10815.py @@ -0,0 +1,32 @@ +N = int(input()) +sample_num = list(map(int, input().split())) +M = int(input()) +sample_right = list(map(int, input().split())) + +def binary_search(arr, n, start, end): + while start <= end: + mid = (start + end) // 2 + + if arr[mid] == n: + return mid + elif arr[mid] > n: + end = mid - 1 + else: + start = mid + 1 + return -1 + +def find_num(number, right): + number.sort() + end = N - 1 + + for i in range(M): + ind = binary_search(number, right[i], 0, end) + if ind == -1: + right[i] = 0 + else: + right[i] = 1 + + for i in right: + print(i, end = ' ') + +find_num(sample_num, sample_right) \ No newline at end of file From 845dff26502d025d482d8eae4647e05c2e7e43a7 Mon Sep 17 00:00:00 2001 From: nevasca1125 <90556146+nevasca1125@users.noreply.github.com> Date: Mon, 20 Feb 2023 04:33:48 +0900 Subject: [PATCH 3/3] =?UTF-8?q?1822/=EC=8B=A4=EB=B2=844?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dabincho/binary/1822.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/dabincho/binary/1822.py diff --git a/src/dabincho/binary/1822.py b/src/dabincho/binary/1822.py new file mode 100644 index 0000000..e97c290 --- /dev/null +++ b/src/dabincho/binary/1822.py @@ -0,0 +1,34 @@ +ab = list(map(int, input().split())) +A = list(map(int, input().split())) +B = list(map(int, input().split())) + +def binary_search(arr, n, start, end): + while start <= end: + mid = (start + end) // 2 + + if arr[mid] == n: + return mid + elif arr[mid] > n: + end = mid - 1 + else: + start = mid + 1 + return -1 + + +def minus(a, b): + a.sort() + b.sort() + result = [] + + for i in a: + ind = binary_search(b, i, 0, ab[1]-1) + if ind == -1: + result.append(i) + + count = len(result) + print(count) + if count != 0: + for n in result: + print(n, end=' ') + +minus(A, B) \ No newline at end of file