diff --git "a/\354\235\264\354\235\200\354\264\235/week5/backjonn_3613.cpp" "b/\354\235\264\354\235\200\354\264\235/week5/backjonn_3613.cpp" new file mode 100644 index 0000000..5e24b57 --- /dev/null +++ "b/\354\235\264\354\235\200\354\264\235/week5/backjonn_3613.cpp" @@ -0,0 +1,102 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define weight first +#define val second +#define INF 987654321987654321 +#define MOD 100000 +#define MAX 100010 +//this is not for development, but for PS. +//this line is super critical for development. + +using namespace std; + +void fastIO() { + std::ios_base::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); +} + +void result() { + string s; + cin >> s; + + if (s.empty()) { + cout << "Error!"; + return; + } + + if ('A' <= s[0] && s[0] <= 'Z') { + cout << "Error!"; + return; + } + + bool has_underscore = false; + bool has_uppercase = false; + + for (char c : s) { + if (c == '_') has_underscore = true; + if (c >= 'A' && c <= 'Z') has_uppercase = true; + } + + if (has_underscore && has_uppercase) { + cout << "Error!"; + return; + } + + if (has_underscore) { + if (s[0] == '_' || s.back() == '_') { + cout << "Error!"; + return; + } + for (int i = 0; i + 1 < s.size(); ++i) { + if (s[i] == '_' && s[i + 1] == '_') { + cout << "Error!"; + return; + } + } + + string java_style = ""; + bool capitalize_next = false; + for (char c : s) { + if (c == '_') { + capitalize_next = true; + } else { + if (capitalize_next) { + java_style += (c - ('a' - 'A')); + capitalize_next = false; + } else { + java_style += c; + } + } + } + cout << java_style; + } else { + string cpp_style = ""; + for (char c : s) { + if (c >= 'A' && c <= 'Z') { + cpp_style += '_'; + cpp_style += (c + ('a' - 'A')); + } else { + cpp_style += c; + } + } + cout << cpp_style; + } +} + +int main() { + fastIO(); + result(); + return 0; +} \ No newline at end of file diff --git "a/\354\235\264\354\235\200\354\264\235/week5/backjoon_1564.cpp" "b/\354\235\264\354\235\200\354\264\235/week5/backjoon_1564.cpp" new file mode 100644 index 0000000..e8a229e --- /dev/null +++ "b/\354\235\264\354\235\200\354\264\235/week5/backjoon_1564.cpp" @@ -0,0 +1,78 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define weight first +#define val second +#define INF 987654321987654321 +#define MOD 100000 +#define MAX 10000 +//this is not for development, but for PS. +//this line is super critical for development. + +using namespace std; + +ll n; +void fastIO() { + std::ios_base::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); +} + +void result() { + cin>>n; + ll result = 1; + ll cnt2, cnt5; + cnt2 = cnt5 = 0; + + for (ll i =1; i<=n; i++) { + ll tmp = i; + while (tmp % 2 == 0) { + cnt2++; tmp /= 2; + } + while (tmp % 5 == 0) { + cnt5++; tmp /= 5; + } + + result = (result % MOD) * (tmp % MOD); + result %= MOD; + } + + ll diff = cnt2 - cnt5; + if (diff < 0) { + cnt5 -= cnt2; + while (cnt5--) { + result = (result % MOD) * 5; + result %= MOD; + } + } + else { + cnt2 -= cnt5; + while (cnt2--) { + result = (result % MOD) * 2; + result %= MOD; + } + } + + string res_s = to_string(result); + ll str_diff = 5 - res_s.size(); + while (str_diff--) { cout << '0'; } + cout << result; +} + + +int main(){ + fastIO(); + result(); + return 0; +} + diff --git "a/\354\235\264\354\235\200\354\264\235/week5/backjoon_1629.cpp" "b/\354\235\264\354\235\200\354\264\235/week5/backjoon_1629.cpp" new file mode 100644 index 0000000..dc234e1 --- /dev/null +++ "b/\354\235\264\354\235\200\354\264\235/week5/backjoon_1629.cpp" @@ -0,0 +1,67 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define weight first +#define val second +#define INF 987654321987654321 +#define MAX 100010 +#define MOD 1'000'000'007 +using namespace std; + + +ll modpow(ll base, ll exp) { + ll res = 1; + while (exp) { + if (exp & 1) res = res * base % MOD; + base = base * base % MOD; + exp >>= 1; + } + return res; +} + +ll modinv(ll x) { + return modpow(x, MOD - 2); +} + +ll ncr(ll N, ll K) { + if (K < 0 || K > N) return 0; + if (K == 0 || K == N) return 1; + K = min(K, N - K); + ll res = 1; + for (ll i = 1; i <= K; ++i) { + res = res * (N - i + 1) % MOD; + res = res * modinv(i) % MOD; + } + return res; +} + +void fastIO() { + std::ios_base::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); +} + +void result() { + ll n; + cin >> n; + ll rec_count = 2LL * ncr(2 * n - 1, n - 1) % MOD; + ll dp_count = n * n % MOD; + + cout << rec_count << " " << dp_count << "\n"; +} + +int main() { + fastIO(); + result(); + return 0; +} \ No newline at end of file diff --git "a/\354\235\264\354\235\200\354\264\235/week5/backjoon_1699.cpp" "b/\354\235\264\354\235\200\354\264\235/week5/backjoon_1699.cpp" new file mode 100644 index 0000000..dd47938 --- /dev/null +++ "b/\354\235\264\354\235\200\354\264\235/week5/backjoon_1699.cpp" @@ -0,0 +1,56 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define weight first +#define val second +#define INF 987654321987654321 +#define MOD 100000 +#define MAX 100010 +//this is not for development, but for PS. +//this line is super critical for development. + +using namespace std; + +ll n; +void fastIO() { + std::ios_base::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); +} + +void result() { + cin>>n; + vector dp; + dp.resize(n+1); + + for (int i=0; i<=n; i++) { + dp[i] = i; + } + + for (ll i=1; i<=n; i++) { + dp[i] = i; + for (ll j=1; j*j <= i; j++) { + dp[i] = min(dp[i], dp[i - j*j]+1); + } + } + + cout << dp[n]; +} + + +int main(){ + fastIO(); + result(); + return 0; +} + diff --git "a/\354\235\264\354\235\200\354\264\235/week5/backjoon_24419.cpp" "b/\354\235\264\354\235\200\354\264\235/week5/backjoon_24419.cpp" new file mode 100644 index 0000000..dc234e1 --- /dev/null +++ "b/\354\235\264\354\235\200\354\264\235/week5/backjoon_24419.cpp" @@ -0,0 +1,67 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define weight first +#define val second +#define INF 987654321987654321 +#define MAX 100010 +#define MOD 1'000'000'007 +using namespace std; + + +ll modpow(ll base, ll exp) { + ll res = 1; + while (exp) { + if (exp & 1) res = res * base % MOD; + base = base * base % MOD; + exp >>= 1; + } + return res; +} + +ll modinv(ll x) { + return modpow(x, MOD - 2); +} + +ll ncr(ll N, ll K) { + if (K < 0 || K > N) return 0; + if (K == 0 || K == N) return 1; + K = min(K, N - K); + ll res = 1; + for (ll i = 1; i <= K; ++i) { + res = res * (N - i + 1) % MOD; + res = res * modinv(i) % MOD; + } + return res; +} + +void fastIO() { + std::ios_base::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); +} + +void result() { + ll n; + cin >> n; + ll rec_count = 2LL * ncr(2 * n - 1, n - 1) % MOD; + ll dp_count = n * n % MOD; + + cout << rec_count << " " << dp_count << "\n"; +} + +int main() { + fastIO(); + result(); + return 0; +} \ No newline at end of file diff --git "a/\354\235\264\354\235\200\354\264\235/week6/backjoon_11051.cpp" "b/\354\235\264\354\235\200\354\264\235/week6/backjoon_11051.cpp" new file mode 100644 index 0000000..3a59bc1 --- /dev/null +++ "b/\354\235\264\354\235\200\354\264\235/week6/backjoon_11051.cpp" @@ -0,0 +1,64 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define weight first +#define val second +#define INF 987654321987654321 +#define MAX 100010 +#define MOD 10'007 +using namespace std; + + +ll modpow(ll base, ll exp) { + ll res = 1; + while (exp) { + if (exp & 1) res = res * base % MOD; + base = base * base % MOD; + exp >>= 1; + } + return res; +} + +ll modinv(ll x) { + return modpow(x, MOD - 2); +} + +ll ncr(ll N, ll K) { + if (K < 0 || K > N) return 0; + if (K == 0 || K == N) return 1; + K = min(K, N - K); + ll res = 1; + for (ll i = 1; i <= K; ++i) { + res = res * (N - i + 1) % MOD; + res = res * modinv(i) % MOD; + } + return res; +} + +void fastIO() { + std::ios_base::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); +} + +void result() { + ll n, k; + cin>>n>>k; + cout << ncr(n, k) << "\n"; +} + +int main() { + fastIO(); + result(); + return 0; +} \ No newline at end of file diff --git "a/\354\235\264\354\235\200\354\264\235/week6/backjoon_11401.cpp" "b/\354\235\264\354\235\200\354\264\235/week6/backjoon_11401.cpp" new file mode 100644 index 0000000..3a59bc1 --- /dev/null +++ "b/\354\235\264\354\235\200\354\264\235/week6/backjoon_11401.cpp" @@ -0,0 +1,64 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define weight first +#define val second +#define INF 987654321987654321 +#define MAX 100010 +#define MOD 10'007 +using namespace std; + + +ll modpow(ll base, ll exp) { + ll res = 1; + while (exp) { + if (exp & 1) res = res * base % MOD; + base = base * base % MOD; + exp >>= 1; + } + return res; +} + +ll modinv(ll x) { + return modpow(x, MOD - 2); +} + +ll ncr(ll N, ll K) { + if (K < 0 || K > N) return 0; + if (K == 0 || K == N) return 1; + K = min(K, N - K); + ll res = 1; + for (ll i = 1; i <= K; ++i) { + res = res * (N - i + 1) % MOD; + res = res * modinv(i) % MOD; + } + return res; +} + +void fastIO() { + std::ios_base::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); +} + +void result() { + ll n, k; + cin>>n>>k; + cout << ncr(n, k) << "\n"; +} + +int main() { + fastIO(); + result(); + return 0; +} \ No newline at end of file diff --git "a/\354\235\264\354\235\200\354\264\235/week6/backjoon_1654.cpp" "b/\354\235\264\354\235\200\354\264\235/week6/backjoon_1654.cpp" new file mode 100644 index 0000000..658d07e --- /dev/null +++ "b/\354\235\264\354\235\200\354\264\235/week6/backjoon_1654.cpp" @@ -0,0 +1,72 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define weight first +#define val second +#define INF 987654321987654321 +#define MAX 1000000 +#define MOD 1'000'000'007 +using namespace std; + +void fastIO() { + std::ios_base::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); +} + +ll k, n; +vector v; + + +int isPassed(int mid, const vector & data) { + ll p_ret = 0; + for (int i=0; i= n; +} + + +int binarySearch(ll high, const vector& data) { + ll low = 1; + ll mid; + ll res = 0; + while (low <= high) { + mid = (low + high) / 2; + if (isPassed(mid, data)) { + low = mid + 1; + if (res < mid) { res = mid; } + } + else { high = mid - 1; } + } + return res; +} + + +void result() { + cin>>k>>n; + v.resize(k); + ll currMax = 0; + for (int i=0; i> v[i]; + currMax = max(currMax, v[i]); + } + + cout << binarySearch(currMax, v); +} + +int main() { + fastIO(); + result(); + return 0; +} \ No newline at end of file diff --git "a/\354\235\264\354\235\200\354\264\235/week6/backjoon_1850.cpp" "b/\354\235\264\354\235\200\354\264\235/week6/backjoon_1850.cpp" new file mode 100644 index 0000000..22998a8 --- /dev/null +++ "b/\354\235\264\354\235\200\354\264\235/week6/backjoon_1850.cpp" @@ -0,0 +1,43 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define weight first +#define val second +#define INF 987654321987654321 +#define MAX 100010 +#define MOD 1'000'000'007 +using namespace std; + +void fastIO() { + std::ios_base::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); +} + +void result() { + ll a, b; + cin>>a>>b; + + ll currGcd = __gcd(a, b); + + while (currGcd--) { + cout << 1; + } + cout << "\n"; +} + +int main() { + fastIO(); + result(); + return 0; +} \ No newline at end of file diff --git "a/\354\235\264\354\235\200\354\264\235/week6/backjoon_2805.cpp" "b/\354\235\264\354\235\200\354\264\235/week6/backjoon_2805.cpp" new file mode 100644 index 0000000..972ae34 --- /dev/null +++ "b/\354\235\264\354\235\200\354\264\235/week6/backjoon_2805.cpp" @@ -0,0 +1,72 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define weight first +#define val second +#define INF 987654321987654321 +#define MAX 1000000 +#define MOD 1'000'000'007 +using namespace std; + +void fastIO() { + std::ios_base::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); +} + +ll k, n; +vector v; + + +int isPassed(int mid, const vector & data) { + ll p_ret = 0; + for (int i=0; i= n; +} + + +int binarySearch(ll high, const vector& data) { + ll low = 1; + ll mid; + ll res = 0; + while (low <= high) { + mid = (low + high) / 2; + if (isPassed(mid, data)) { + if (res < mid) {res = mid;} + low = mid + 1; + } + else { high = mid - 1; } + } + return res; +} + + +void result() { + cin>>k>>n; + v.resize(k); + ll currMax = 0; + for (int i=0; i> v[i]; + currMax = max(currMax, v[i]); + } + + cout << binarySearch(currMax, v); +} + +int main() { + fastIO(); + result(); + return 0; +} \ No newline at end of file