๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค with Python]_25_์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋น๊ต & ๋ฌธ์ ํ์ด ๋ณธ๋ฌธ
[์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค with Python]_25_์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋น๊ต & ๋ฌธ์ ํ์ด
์ง์ง์ํ์นด 2022. 2. 8. 01:45220208 ์์ฑ
<๋ณธ ๋ธ๋ก๊ทธ๋ ใ์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉ ํ ์คํธ๋คใ ์ youtube๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค>
https://www.youtube.com/watch?v=_kdE7ykab4Q&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=25
1. ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋น๊ต
: ์ต์ ์ ๊ฒฝ์ฐ์๋ O(NlogN) ์ ๋ณด์ฅ!
2. ์ ํ ์ ๋ ฌ๊ณผ ๊ธฐ๋ณธ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ํ ์๊ฐ ๋น๊ต
from random import randint
import time
# ๋ฐฐ์ด์ 10,000 ์ ์ ์ฝ์
array = []
for _ in range(10000) :
# 1~100 ๋๋ค ์ ์
array.append(randint(1, 100))
# ์๊ฐ ์ฌ๊ธฐ
start_time = time.time()
# ์ ํ ์ ๋ ฌ ์์ค์ฝ๋
for i in range(len(array)) :
min_index = i
for j in range(i+1, len(array)) :
if array[min_index] > array[j] :
min_index = j
array[i], array[min_index] = array[min_index], array[i]
# ์ธก์ ์ข
๋ฃ
end_time = time.time()
# ์ํ ์๊ฐ
print("์ ํ ์ ๋ ฌ ์ฑ๋ฅ ์ธก์ : ", end_time - start_time)
# ๋ฐฐ์ด ๋ค์ ์ด๊ธฐํ
array = []
for _ in range(10000) :
# 1~100 ๋๋ค ์ ์
array.append(randint(1, 100))
# ์๊ฐ ์ฌ๊ธฐ
start_time = time.time()
# ๊ธฐ๋ณธ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
array.sort()
# ์ธก์ ์ข
๋ฃ
end_time = time.time()
# ์ํ ์๊ฐ
print("๊ธฐ๋ณธ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฑ๋ฅ ์ธก์ : ", end_time - start_time)
< ๋ฌธ์ 1 > ๋ ๋ฐฐ์ด์ ์์ ๊ต์ฒด
: ๋๊ฐ์ ๋ฐฐ์ด A, B ( ๋ชจ๋ ์์ฐ์ )
: ์ต๋ K๋ฒ ๋ฐ๊ฟ์น๊ธฐ ์ฐ์ฐ ๊ฐ๋ฅ
: ๋ฐ๊ฟ์น๊ธฐ ์ฐ์ฐ์ด๋, ๋ฐฐ์ด A์ ์๋ ์์ ํ๋์ ๋ฐฐ์ด B์ ์๋ ์์๋ฅผ ์๋ก ๋ฐ๊พธ๋ ๊ฒ
: ์ต์ข ๋ชฉํ๋ ๋ฐฐ์ด A์ ๋ชจ๋ ์์์ ํฉ์ด ์ต๋๊ฐ ๋๋๋ก ใฑใฑ
: N, K, A์ B ๋ฐฐ์ด์ด ์ฃผ์ด์ก์ ๋ ์ต๋ K ๋ฒ ๋ฐ๊ฟ์น๊ธฐ ์ฐ์ฐ์ ์ํํ์ฌ ๋ง๋ค ์ ์๋ ๋ฐฐ์ด A ์ ๋ชจ๋ ์์์ ํฉ ์ต๋๊ฐ ์ถ๋ ฅ
1) ๋งค๋ฒ ๋ฐฐ์ด A์์ ๊ฐ์ฅ ์์ ์์, ๋ฐฐ์ด B์์ ๊ฐ์ฅ ํฐ ์์์ ๊ต์ฒด
2) A ์ ๋ํด์ ์ค๋ฆ ์ฐจ์, B ์ ๋ํด์ ๋ด๋ฆผ ์ฐจ์
3) ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค์ ์ฐจ๋ก๋๋ก ํ์ธํ๋ฉด์, A์ ์์๊ฐ B์ ์์๋ณด๋ค ์์ ๋๋ง ๊ต์ฒด ์ํ
- python
n, k = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a.sort() # ์ค๋ฆ์ฐจ์
b.sort(reverse = True) # ๋ด๋ฆผ์ฐจ์
for i in range(k) :
if a[i] < b[i] : # A ์์๊ฐ B ์์๋ณด๋ค ์์ผ๋ฉด
# ๊ต์ฒด
a[i], b[i] = b[i], a[i]
else :
break
print(sum(a))
print(a)
print(b)
- c++
#include <bits/stdc++.h>
using namespace std;
int n, k;
vector<int> a, b;
bool compare(int x, int y) {
return x > y;
}
int main(void) {
// N๊ณผ K๋ฅผ ์
๋ ฅ๋ฐ๊ธฐ
cin >> n >> k;
// ๋ฐฐ์ด A์ ๋ชจ๋ ์์๋ฅผ ์
๋ ฅ๋ฐ๊ธฐ
for (int i = 0; i < n; i++) {
int x;
cin >> x;
a.push_back(x);
}
// ๋ฐฐ์ด B์ ๋ชจ๋ ์์๋ฅผ ์
๋ ฅ๋ฐ๊ธฐ
for (int i = 0; i < n; i++) {
int x;
cin >> x;
b.push_back(x);
}
// ๋ฐฐ์ด A๋ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ์ํ
sort(a.begin(), a.end());
// ๋ฐฐ์ด B๋ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ์ํ
sort(b.begin(), b.end(), compare);
// ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ํ์ธํ๋ฉฐ, ๋ ๋ฐฐ์ด์ ์์๋ฅผ ์ต๋ K๋ฒ ๋น๊ต
for (int i = 0; i < k; i++) {
// A์ ์์๊ฐ B์ ์์๋ณด๋ค ์์ ๊ฒฝ์ฐ
if (a[i] < b[i]) swap(a[i], b[i]); // ๋ ์์๋ฅผ ๊ต์ฒด
// A์ ์์๊ฐ B์ ์์๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๋, ๋ฐ๋ณต๋ฌธ์ ํ์ถ
else break;
}
// ๋ฐฐ์ด A์ ๋ชจ๋ ์์์ ํฉ์ ์ถ๋ ฅ
long long result = 0;
for (int i = 0; i < n; i++) {
result += a[i];
}
cout << result << '\n';
}
- java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// N๊ณผ K๋ฅผ ์
๋ ฅ๋ฐ๊ธฐ
int n = sc.nextInt();
int k = sc.nextInt();
// ๋ฐฐ์ด A์ ๋ชจ๋ ์์๋ฅผ ์
๋ ฅ๋ฐ๊ธฐ
Integer[] a = new Integer[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
// ๋ฐฐ์ด B์ ๋ชจ๋ ์์๋ฅผ ์
๋ ฅ๋ฐ๊ธฐ
Integer[] b = new Integer[n];
for (int i = 0; i < n; i++) {
b[i] = sc.nextInt();
}
// ๋ฐฐ์ด A๋ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ์ํ
Arrays.sort(a);
// ๋ฐฐ์ด B๋ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ์ํ
Arrays.sort(b, Collections.reverseOrder());
// ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ํ์ธํ๋ฉฐ, ๋ ๋ฐฐ์ด์ ์์๋ฅผ ์ต๋ K๋ฒ ๋น๊ต
for (int i = 0; i < k; i++) {
// A์ ์์๊ฐ B์ ์์๋ณด๋ค ์์ ๊ฒฝ์ฐ
if (a[i] < b[i]) {
// ๋ ์์๋ฅผ ๊ต์ฒด
int temp = a[i];
a[i] = b[i];
b[i] = temp;
}
// A์ ์์๊ฐ B์ ์์๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๋, ๋ฐ๋ณต๋ฌธ์ ํ์ถ
else break;
}
// ๋ฐฐ์ด A์ ๋ชจ๋ ์์์ ํฉ์ ์ถ๋ ฅ
long result = 0;
for (int i = 0; i < n; i++) {
result += a[i];
}
System.out.println(result);
}
}
'๐ฆฅ ์ฝํ > ์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค with python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค with Python]_27_์ด์ง ํ์ ๋ฌธ์ ํ์ด (0) | 2022.02.09 |
---|---|
[์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค with Python]_26_์ด์งํ์ (0) | 2022.02.08 |
[์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค with Python]_24_๊ณ์์ ๋ ฌ (0) | 2022.02.08 |
[์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค with Python]_23_ํต์ ๋ ฌ (0) | 2022.02.08 |
[์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค with Python]_22_์ฝ์ ์ ๋ ฌ (0) | 2022.02.08 |