์๊ณ ๋ฆฌ์ฆ [Algorithm] - ๊ธฐ์ด ์ ๋ ฌ๋ฌธ์ ํ์ด๋ณด๊ธฐ (5) (C, Python)
import sys
a = int(sys.stdin.readline())
data = [sys.stdin.readline().strip() for i in range(a)]
data_int = list(map(int,data))
data_int.sort()
for j in range(a):
print(data_int[j])
๊ธฐ์ด ์ ๋ ฌ ๋ฌธ์ ํ์ด๋ณด๊ธฐ
์ง๊ธ๊น์ง ์ ํ์ ๋ ฌ, ๋ฒ๋ธ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ, ํต์ ๋ ฌ์ ๋ฐฐ์ ๋ค. ์ด๋ฅผ ํ์ฉํด์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์!
1. ์ธ ์ซ์ ์ ๋ ฌ : https://www.acmicpc.net/problem/2752
2752๋ฒ: ์ธ์์ ๋ ฌ
์ซ์ ์ธ ๊ฐ๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์ซ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 1,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ์ด ์ซ์๋ ๋ชจ๋ ๋ค๋ฅด๋ค.
www.acmicpc.net
C
#include <stdio.h>
int main(void){
int array[3], i, j, temp, min, idx;
for (i = 0; i < 3; i++) {
scanf("%d", &array[i]);
}
for (i = 0; i < 3; i++) {
min = array[i];
idx = i;
for (j = i; j < 3; j++) {
if (min > array[j]) {
min = array[j];
idx = j;
}
}
temp = array[i];
array[i] = min;
array[idx] = temp;
}
for (i = 0; i < 3; i++) {
printf("%d ", array[i]);
}
}
Python
a = list(map(int,input().split()))
a.sort()
print(f"{a[0]} {a[1]} {a[2]}")
์์ ์ ์ถ์ C์ธ์ด๋ฅผ ํ์ฉํด ๋ฌธ์ ๋ฅผ ํผ ๊ฒ์ด๊ณ , ์๋๋ Python์ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํผ ๊ฒ์ด๋ค. C์ธ์ด๋ ๋ก์ฐ๋ ๋ฒจ ์ธ์ด์ด๊ณ , Python์ ํ์ด๋ ๋ฒจ ์ธ์ด๋๊ฐ์ ์ํ์๊ฐ์ด ๋ง์ด ์ฐจ์ด๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค! ๊ฐ์์๊ฒ ํ์ํ ์ธ์ด๋ฅผ ์ ์ ํ ์ฌ์ฉํ๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค ํํ
2. ๋จ์ ์ ๋ ฌ : https://www.acmicpc.net/problem/2750
2750๋ฒ: ์ ์ ๋ ฌํ๊ธฐ
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์ ์ฃผ์ด์ง๋ค. ์ด ์๋ ์ ๋๊ฐ์ด 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค. ์๋ ์ค๋ณต๋์ง ์๋๋ค.
www.acmicpc.net
C
#include <stdio.h>
int main(void){
//์ค์ต๋ฌธ์ 2
int n, i, j, tmp,array[1001],idx,min;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &array[i]);
}
for (i = 0; i < n; i++) {
min = 1001;
for (j = i; j < n; j++) {
if (min > array[j]) {
min = array[j];
idx = j;
}
}
tmp = array[i];
array[i] = array[idx];
array[idx] = tmp;
}
for (i = 0; i < n; i++) {
printf("%d\n", array[i]);
}
}
์ถ๋ ฅํ ๋ ์ค๋ฐ๊ฟ์ ์ํ์!
Python
import sys
n = int(sys.stdin.readline())
data = [sys.stdin.readline().strip() for i in range(n)]
data_int = list(map(int,data))
data_int.sort()
print(data)
print(data_int)
for i in range(n):
print(data_int[i])
๋๋ Python์ ์ฌ์ฉํ ๋ Visual Studio๋ณด๋ค Colab์ ์ฃผ๋ก ์ฌ์ฉํ๋๋ฐ, Colab์์๋ sys๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ ์ ๋ ฅ์ด ๋์ง ์๋๋ค. ๊ทธ๊ฒ๋ ๋ชจ๋ฅด๊ณ ๊ณ์ ์๋ํ ๋ฐ๋ณด... ์ฏง
์ ๊ทธ๋ฆฌ๊ณ Python์ ํ์ฉํ ๊ฒฝ์ฐ ๋ฆฌ์คํธ์ ์์๋ค์ intํ์ผ๋ก ํ๋ณํํด์ค์ผ ๋ฌธ์ ๊ฐ ํ๋ฆฐ๋ค. ์ฃผ์ํ์.
์ด๋ฒ์๋ ์คํ์๋๊ฐ ๊ต์ฅํ ๋ง์ด ์ฐจ์ด ๋๋๊ฒ์ ๋ณผ ์ ์๋ค !
3. ์ ์ ๋ ฌํ๊ธฐ : https://www.acmicpc.net/problem/2751
2751๋ฒ: ์ ์ ๋ ฌํ๊ธฐ 2
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 1,000,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์๋ ์ ๋๊ฐ์ด 1,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค. ์๋ ์ค๋ณต๋์ง ์๋๋ค.
www.acmicpc.net
์ด๋ฒ์๋ ์ ๋๋ฌธ์ ์ ๋ค๋ฅด๊ฒ ๋ฐ์ดํฐ์ ๊ฐฏ์๊ฐ 100๋ง๊ฐ์ด๋ค. ํ์ฌ๋ ์๊ฐ์ ํ์ด 2์ด๊ฐ ๋์์ง๋ง ๊ณผ๊ฑฐ์๋ 1์ด์ฌ์ ์๋ง O(N^2)๊ฐ ๊ฑธ๋ฆฌ๋ ์ ํ์ ๋ ฌ, ๋ฒ๋ธ์ ๋ ฌ ๋ฑ์ผ๋ก๋ ๋ฌธ์ ๊ฐ ์ํ๋ฆฐ๋ค. ํต์ ๋ ฌ์ผ๋ก ํ์ด๋ณด๊ณ ์ํ๋ฆฐ๋ค๋ฉด ๊ตฌ๊ธ๋ง์ ํตํด ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์.
Python
import sys
a = int(sys.stdin.readline())
data = [sys.stdin.readline().strip() for i in range(a)]
data_int = list(map(int,data))
data_int.sort()
for j in range(a):
print(data_int[j])
์ด ๊ธ์ ๋๋๋น๋์ ์ค์ ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ข (Algorithm Programming Tutorial)๋ฅผ ์ฐธ๊ณ ํด ์์ฑํ์์ต๋๋ค.
https://www.youtube.com/watch?v=qQ5iLNjpxSk&list=PLRx0vPvlEmdDHxCvAQS1_6XV4deOwfVrz