'์'์ ๋ํ '๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐฉ๋ฒ'
์ปดํจ์ด ๋ถ์ผ์์๋ '๊ณต์ํ๋', '๋จ๊ณ์ '์ด๋ผ๋ ์กฐ๊ฑด
์ ๋งค๋ชจํธํ๋ฉฐ ์ธ์ ๋๋ ์ง ๋ชจ๋ฅด๋ ์ ์ฐจ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ถ๋ฅผ ์ ์๋ค.
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
๋ ์ ์์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ
1. ๋ ์ ์์ ํฐ ์ชฝ - ์์ ์ชฝ, ์์ชฝ์ด ๊ฐ์์ง ๋๊น์ง ๋ฐ๋ณตํ๋ค.
2. ๊ฐ์์ง ๊ฐ์ด ์ต๋๊ณต์ฝ์๊ฐ ๋๋ค.
์) 50๊ณผ 30์ ์ต๋๊ณต์ฝ์ = 10
30 | 30 | 30-20=10 | 10 |
50 | 50-30=20 | 20 | 20-10=10 |
cf. ๋๋จธ์ง๋ก ์ต๋๊ณต์ฝ์ ๊ตฌํ๊ธฐ
ํฐ ์ชฝ์์ ์์ ์ชฝ์ ๋๋ ๋๋จธ์ง๋ฅผ ๊ณ์ ๊ตฌํ๋ค. ๋๋จธ์ง ๊ฐ์ด 0์ด ๋๋ ๋ชซ์ ์ต๋๊ณต์ฝ์๋ผ ํ๋ค.
์) 50๊ณผ 15์ ์ต๋๊ณต์ฝ์ = 5
1. 15 < 50 => 50 % 15 = 5 (50 -> 5)
2. 5 < 15 => 15 % 5 = 0
์ต์๊ณต๋ฐฐ์ ์๊ณ ๋ฆฌ์ฆ
๋ ๊ฐ ๊ณฑํ๊ณ ์ต๋๊ณต์ฝ์ ๋๋ ์ฃผ๊ธฐ
์) 50๊ณผ 30์ ์ต์๊ณต๋ฐฐ์ = 50 * 30 / 10 = 150
30 | 30*2=60 | 60 | 30*3=90 | 30*4=120 | 120 | 30*5=150 |
50 | 50 | 50*2=100 | 100 | 100 | 50*3=150 | 150 |
#include <stdio.h>
int main(void) {
int a, b;
scanf_s("%d %d", &a, &b);
while (a != b) {
if (a > b) {
a -= b;
}
else {
b -= a;
}
}
printf("%d\n", a);
return 0;
}
๐ฉ ์ฝ๋ฉํ ์คํธ ์ ์ ์๋ฉด ์ข์ ๊ฒ๋ค
๐ STL
ps(program solving)์ ๊ณต๋ถํ๊ธฐ ์ ์ตํ์ผ ํ๋ ์ด์ : ์๊ณ ๋ฆฌ์ฆ์ ๋น ๋ฅด๊ฒ ๊ตฌํ ๊ฐ๋ฅ
๋ฌธ์ ๋ฅผ ํธ๋ ์๊ฐ์ ๋๋ถ๋ถ์ ์๊ฐํด๋ธ ์๊ณ ๋ฆฌ์ฆ์ '๊ตฌํ'ํ๋ ์๊ฐ, ํ๋ก๊ทธ๋จ ์คํ ์๊ฐ์ ๋ฏธ๋ฏธํ๋ค.
STL = container(์๋ฃ๊ตฌ์กฐ), iterator, algorithm, functor
๊ฐ ์๋ฃ๊ตฌ์กฐ๋ง๋ค ๋ค๋ฅธ ํน์ง์ ๊ฐ์ง๊ณ ์์ง๋ง, ์ ์ธ๋ฒ์ ๋งค์ฐ ์ ์ฌํ๋ค.
๐ ์ปจํ ์ด๋๋ช <์๋ฃํ> ๋ณ์๋ช ;
pair <int, int> myPair;
vector<double> myVector;
queue<pair<int,int>> myQueue;
stack<char> myStack;
๐ ์ ์ญ๋ณ์
์ ์ญ๋ณ์๋ฅผ ์ ๊ทน ํ์ฉํ์ ๐ ์๊ฐ ์ ์ฝ, ์ผ์ด ์ฌ์์ง๋ค.
๋ง์ฝ, ์ ์ญ๋ณ์๋ณด๋ค ํจ์์ ํ๋ผ๋ฏธํฐ๋ก ๋ณ์๋ฅผ ๋๊ฒจ์ฃผ๋ ๊ฒ์ด ๋ ์๋ฏธ๊ฐ ๋ช ํํ ๊ฒฝ์ฐ, c++์ ์ฐธ์กฐ์(reference)๋ฅผ ์ด์ฉํ์ฌ ๋๊ฒจ์ฃผ๋ฉด, ๊ฐ์ ๋ณต์ฌํด์ค๋ ์ธ๋ฐ์๋ ์๊ฐ์ ์์จ ์ ์๋ค.
ํจ์์ ๋์๊ณผ ์๋ฏธ์ ๋ณ๋ก ๊ด๋ จ์ด ์๋ ๋ณ์ ๐ ์ ์ญ๋ณ์
ํจ์์ ๋์๊ณผ ์๋ฏธ์ ๊ด๋ จ์ด ์๋ ๋ณ์ ๐ ํ๋ผ๋ฏธํฐ๋ก ๋๊ฒจ์ฃผ๋, ์ฐธ์กฐ์๋ก!
int sumOfArray(int s, int e, int arr[]) {
int ret = 0;
for(int i = s; i <= e; ++i) {
ret += arr[i];
}
return ret;
} // before
int s, e, arr[1000];
int sumOfArray(vector<int>& arr) {
int ret = 0;
for(int i =s; i<= e; ++i) {
ret += arr[i];
}
return ret;
} // after
๐ ๋์ ํ ๋น
๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์ ๋ ฅ๋ฐ์ ์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ, malloc์ ๋์ ํ ๋น์ ํตํด ๊ตฌํํ๊ฒ ๋๋ค. ํ์ง๋ง ps๋ฅผ ํ ๋ ๋์ ํ ๋น์ ์ด์ฉํ๋ฉด ์๊ฐ ์ด๊ณผ๊ฐ ๋ ์ ์๋ค.
๋ฐ๋ผ์ ps๋ฅผ ํ ๋๋ ์ ๋ ฅ์ผ๋ก ๋ค์ด์จ ์ต๋ ํฌ๊ธฐ๋งํผ ๋ฐฐ์ด์ ๋๋ํ๊ฒ ์ก์๋๊ณ ๋ฌธ์ ๋ฅผ ํธ๋ ๊ฒ์ด ์ข๋ค. ์ต๋๊ฐ์ด 1000์ธ ๊ฒฝ์ฐ, ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ 1001๋ก ์ก๊ณ ํผ๋ค.
๐ i๋ฒ์งธ ๊ฐ์ ์ฑ์ธ ๋, i-1 ๊ฐ์ ์ฐธ์กฐํด์ ์ฑ์ฐ๊ฒ ๋๋๋ฐ, 0๋ฒ์งธ ํ๋ถํฐ ์ฑ์ฐ๊ฒ ๋๋ฉด -1๋ฒ์งธ ํ์ ์ฐธ์กฐํ๊ฒ ๋์ด ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ
์ ์ถ๋ ฅํ ๊ฐ์๊ฐ ๋ง๋ค๋ฉด, cin, cout๋ณด๋ค๋ scanf, printf๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. cin, cout์ ๋นํด ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ ํน๋ณํ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด, scanf, printf๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
ํนํ endl์ด ๋ง์ด ๋๋ฆฌ๋ค. ๋ฐ๋ผ์ endl ๋์ '\n'์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > ๐ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ (ํ์ ์๊ณ ๋ฆฌ์ฆ) (0) | 2024.03.27 |
---|---|
์ ํ ๊ฒ์ (๋ณด์ด๋ฒ) (0) | 2024.01.06 |
ํ๋ ธ์ด์ ํ (0) | 2024.01.06 |
์์ ํ๋ณ๋ฒ(ํ๋ฅด๋ง ํ ์คํธ) (1) | 2024.01.06 |
์๊ฐ๋ณต์ก๋ (1) | 2024.01.03 |