์ ์ถ๋ ฅ
// 1. ์
๋ ฅ
// ๊ณต๋ฐฑ, ํญ ๋ฑ์ ํฌํจํ ํ ์ค ์ ์ฒด ๋ฌธ์์ด ์
๋ ฅ ๋ฐ๊ธฐ (C++)
getline(cin, string);
// ์ซ์ ํ ์๋ฆฌ์ฉ ์ฝ๊ธฐ (C)
scanf("%1d", &a[i]);
// ์
๋ ฅ ์ข
๋ฃ ์๊น์ง ์ซ์๋ฅผ ๊ณ์ ์
๋ ฅ ๋ฐ๊ธฐ (C, C++)
while (scanf("%d", &n) != EOF)
while (cin >> n)
// 2. ์ถ๋ ฅ
// ์๋ฆฟ์ ์ฑ์ฐ๊ธฐ (C)
printf("%02d", test); // ์ ์ ์ถ๋ ฅ ์, ์ต์ 2์๋ฆฌ๋ก ์ถ๋ ฅํ๋ฉฐ ๋น ์๋ฆฌ๋ 0์ผ๋ก ์ฑ์
// ์์์ ์๋ฆฌ ๊ณ ์ (C, C++)
printf("%.6lf"); // ์์์ ์๋ 6์๋ฆฌ๊น์ง ์ถ๋ ฅ
cout << fixed; // ์ค์๋ฅผ ๊ณ ์ ์์์ ํ์(fixed-point)์ผ๋ก ์ถ๋ ฅ
cout.precision(6); // ์์์ ์๋ 6์๋ฆฌ๊น์ง ์ถ๋ ฅ
๋ฌธ์/๋ฌธ์์ด ๋ณํ
// ๋ฌธ์(char)์ ์ซ์(int) ๋ณํ
int num = ch - '0'; // char to int
char ch = num + '0'; // int to char
// ๋ฌธ์์ด(char[])์ ์ซ์ ๋ณํ (C)
int n = atoi("123"); // char[] to int
double d = atof("3.14"); // char[] to double
long l = atol("1234567890"); // char[] to long
long long ll = atoll("1234567890123"); // char[] to long long
int num = strtol("123abc", nullptr, 10); // ์ซ์ ๋ถ๋ถ๋ง ๋ณํ
// ๋ฌธ์์ด(string)์ ์ซ์ ๋ณํ (C++)
int n = stoi("123"); // string to int
float f = stof("3.14"); // string to float
double d = stod("2.71828"); // string to double
long l = stol("1234567"); // string to long
long long ll = stoll("9876543210"); // string to long long
// ์ซ์๋ฅผ ๋ฌธ์์ด(char[]) ๋ณํ (C)
sprintf(buf, "%d", num); // int to char[]
sprintf(buf, "%.2f", f); // float to char[]
// ์ซ์๋ฅผ ๋ฌธ์์ด(string) ๋ณํ (C++)
string s = to_string(123); // int to string
string s2 = to_string(3.14); // float/double to string
๋๋ฌธ์์ ์๋ฌธ์ ๋ณํ
// ๋ฌธ์ ๋ณํ
char A = ‘a’ - 32; // a๋ 97๋ฒ
char a = ‘A’ + 32: // A๋ 65๋ฒ
// ๋ฌธ์์ด ๋ณํ - ์๊ณ ๋ฆฌ์ฆ ์ด์ฉ
transform(a.begin(), a.end(), a.begin(), toupper)); // ๋๋ฌธ์
transform(a.begin(), a.end(), a.begin(), tolower)); // ์๋ฌธ์
์ฌ๋ฆผ, ๋ฐ์ฌ๋ฆผ, ๋ด๋ฆผ
ceil() // ์ฌ๋ฆผ
round() // ๋ฐ์ฌ๋ฆผ
floor() // ๋ด๋ฆผ
N์ง๋ฒ ๋ณํ
- 8์ง๋ฒ: 0~7์ ํฌํจํ๊ณ ์์ '0'์ ๋ถ์ธ๋ค.
- 16์ง๋ฒ: 0~9์ A(10)~F(15)๋ฅผ ํฌํจํ๊ณ ์์ '0x'๋ฅผ ๋ถ์ธ๋ค.
// 10์ง์(num)๋ฅผ n์ง์๋ก
string NumtoN(int num, int n)
{
char c[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };
string s;
while (num / n) { // ๋ชซ์ด 0์ด ๋ ๋๊น์ง
s = c[num % n] + s; // ๋๋จธ์ง๋ฅผ ์์ ์ถ๊ฐ
num = num / n;
}
return c[num % n] + s;
}
// n์ด 10 ์ดํ์ผ ๋
string NumtoN(int num, int n)
{
string nums = "";
while (num > 0) {
nums = to_string(num % n) + nums;
num /= n;
}
return nums;
}
์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ด์ฉํ ์์ ๊ตฌํ๊ธฐ
bool prime[1000001] = { 1,1 };
for (int i = 2; i * i <= end; ++i)
if (!prime[i]) // ์์์ผ ๋
for (int j = i * i; j <= end; j += i)
prime[j] = true;
// ์์ ๊ตฌํ๊ธฐ (ver. ๊ฐ๋จ)
bool IsPrime(long long n)
{
if (n <= 1)
return false;
for (int i = 2; i <= sqrt(n); i++)
if (n % i == 0)
return false;
return true;
}
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์ด์ฉํ ์ต๋๊ณต์ฝ์(gcd) ๊ตฌํ๊ธฐ
// ๊ฐ๋จํ ๋ฒ์
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
// ํ ๋ฒ์
int gcd(int a, int b) {
while (true) {
if (a % b == 0)
break;
a = b;
b = a % b;
}
return b;
}
// ์ต์๊ณต๋ฐฐ์: (a * b) / gcd(a, b)
unique() ํจ์๋ฅผ ์ด์ฉํ vector์์ ์ค๋ณต ๊ฐ ์ญ์ ํ๊ธฐ
sort(v.begin(), v.end()); // ์ ๋ ฌ ํ unique() ํจ์ ์ ์ฉ
v.erase(unique(v.begin(),v.end()),v.end());
์ด์ค ์ ๋ ฌ
// X์ขํ๊ฐ ์ฆ๊ฐํ๋ ์์ผ๋ก X์ขํ๊ฐ ๊ฐ์ผ๋ฉด Y ์ขํ๊ฐ ์ฆ๊ฐํ๋ ์์๋ก ์ ๋ ฌ
sort(arr, arr + n, [](Point& a, Point& b) {
if (a.first == b.first)
return a.second < b.second;
return a.first < b.first;
});
๊ฑฐ๋ฆฌ ๊ตฌํ ๋
sqrt(pow(a.first - b.first, 2.0) + pow(a.second - b.second, 2.0));
ํ๋ ฌ์ ๊ณฑ
// N*M ํฌ๊ธฐ์ ํ๋ ฌ A์ M*K ํฌ๊ธฐ์ ํ๋ ฌ B๊ฐ ์ฃผ์ด์ก์ ๋, ๋ ํ๋ ฌ์ ๊ณฑ์?
for (int i = 0; i < n; i++)
for (int j = 0; j < k; j++)
for (int k = 0; k < m; k++)
result[i][j] += (arr[i][k] * arr2[k][j]);
๋ ์ ์ฌ์ด์ ๊ต์
if (x == x2) {
if (r1 == r2)
cout << "-1\n";
else
cout << "0\n";
continue;
}
dist = sprt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
if (r1 + r2 < dist || dist + r1 < r2 || dist + r2 < r1)
cout << "0\n";
else if (r1 + r2 == dist || dist + r1 == r2 || dist + r2 == r1)
cout << "1\n";
else
cout << "2\n";