diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.cpp" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.cpp" new file mode 100644 index 0000000..c947ac3 --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.cpp" @@ -0,0 +1,51 @@ +#include +#include +#include +using namespace std; + +int main(void) +{ + char origin[100001]; + list lst; + int M; + + scanf("%s", origin); + for (int i = 0; origin[i]; i++) + lst.push_back(origin[i]); + + scanf("%d", &M); + list::iterator it = lst.end(); + while (M--) + { + char cmd; + scanf(" %c", &cmd); + if (cmd == 'L') + { + if (it != lst.begin()) + it--; + } + else if (cmd == 'D') + { + if (it != lst.end()) + it++; + } + else if (cmd == 'B') + { + if (it != lst.begin()) + { + it--; + it = lst.erase(it); + } + } + else if (cmd == 'P') + { + char c; + scanf(" %c", &c); + lst.insert(it, c); + } + } + + string result(lst.begin(), lst.end()); + printf("%s\n", result.c_str()); + return 0; +} diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.py" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.py" new file mode 100644 index 0000000..12ea2f2 --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Ch09_\353\246\254\354\212\244\355\212\270/\353\254\270\354\240\234\353\263\204\354\275\224\353\223\234/1406_\354\227\220\353\224\224\355\204\260/1406.py" @@ -0,0 +1,23 @@ +import sys +input = sys.stdin.readline + +origin = input().rstrip() +left_lst = list(origin) +right_lst = [] +M = int(input()) +while M > 0: + cmd = input().rstrip() + if cmd[0] == 'L': + if left_lst: + right_lst.append(left_lst.pop()) + elif cmd[0] == 'D': + if right_lst: + left_lst.append(right_lst.pop()) + elif cmd[0] == 'B': + if left_lst: + left_lst.pop() + elif cmd[0] == 'P': + left_lst.append(cmd[2]) + M -= 1 + +print(''.join(left_lst + right_lst[::-1])) diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1300_K\353\262\210\354\247\270\354\210\230/1300.cpp" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1300_K\353\262\210\354\247\270\354\210\230/1300.cpp" new file mode 100644 index 0000000..77b6ec2 --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1300_K\353\262\210\354\247\270\354\210\230/1300.cpp" @@ -0,0 +1,32 @@ +#include +#include +using namespace std; +typedef long long ll; + +int main() +{ + int N, K; + + scanf("%d", &N); + scanf("%d", &K); + + ll l = 1; + ll r = (ll)N * N; + ll ans = -1; + while (l <= r) + { + ll m = (l + r) / 2; + ll count = 0; + for (int i = 1; i <= N; i++) + count += min(m / i, (ll)N); + if (count >= K) + { + ans = m; + r = m - 1; + } + else + l = m + 1; + } + printf("%lld\n", ans); + return 0; +} diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1300_K\353\262\210\354\247\270\354\210\230/1300.py" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1300_K\353\262\210\354\247\270\354\210\230/1300.py" new file mode 100644 index 0000000..f2d0dc1 --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1300_K\353\262\210\354\247\270\354\210\230/1300.py" @@ -0,0 +1,17 @@ +N = int(input()) +K = int(input()) + +l = 1 +r = N * N +ans = -1 +while l <= r: + m = (l + r) // 2 + count = 0 + for i in range(1, N+1): + count += min(m // i, N) + if count >= K: + ans = m + r = m - 1 + else: + l = m + 1 +print(ans) diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1339_\353\213\250\354\226\264\354\210\230\355\225\231/1339.cpp" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1339_\353\213\250\354\226\264\354\210\230\355\225\231/1339.cpp" new file mode 100644 index 0000000..664dbd2 --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1339_\353\213\250\354\226\264\354\210\230\355\225\231/1339.cpp" @@ -0,0 +1,31 @@ +#include +#include +#include +using namespace std; + +int main() +{ + int N; + int alp_value[26] = {0, }; + char word[11]; + + scanf("%d", &N); + while (N--) + { + scanf("%s", word); + int place_value = 1; + for (int i = strlen(word) - 1; i >= 0; i--) + { + alp_value[word[i] - 'A'] += place_value; + place_value *= 10; + } + } + + sort(alp_value, alp_value + 26); + + int ans = 0; + for (int i = 0; i < 10; i++) + ans += alp_value[25 - i] * (9 - i); + printf("%d\n", ans); + return 0; +} diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1339_\353\213\250\354\226\264\354\210\230\355\225\231/1339.py" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1339_\353\213\250\354\226\264\354\210\230\355\225\231/1339.py" new file mode 100644 index 0000000..f049e1f --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1339_\353\213\250\354\226\264\354\210\230\355\225\231/1339.py" @@ -0,0 +1,17 @@ +N = int(input()) +alp_value = [0] * 26 + +for _ in range(N): + word = input() + place_value = 1 + for i in range(len(word)-1, -1, -1): + alp_value[ord(word[i]) - ord('A')] += place_value + place_value *= 10 + +alp_value = sorted(alp_value) + +ans = 0 +for i in range(10): + ans += alp_value[25 - i] * (9 - i) + +print(ans) diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1713_\355\233\204\353\263\264\354\266\224\354\262\234\355\225\230\352\270\260/1713.cpp" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1713_\355\233\204\353\263\264\354\266\224\354\262\234\355\225\230\352\270\260/1713.cpp" new file mode 100644 index 0000000..4ade824 --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1713_\355\233\204\353\263\264\354\266\224\354\262\234\355\225\230\352\270\260/1713.cpp" @@ -0,0 +1,52 @@ +#include +#include +#include +using namespace std; + +struct student { + int number; + int scr; + int posted_at; +}; + +int main() +{ + int N, R; + vector post; + + scanf("%d", &N); + scanf("%d", &R); + for (int i = 0; i < R; i++) + { + int voted_number; + scanf("%d", &voted_number); + + bool already_posted = false; + for (int j = 0; j < post.size(); j++) + { + if (post[j].number == voted_number) + { + post[j].scr++; + already_posted = true; + break; + } + } + + if (!already_posted) + { + if (post.size() < N) + post.push_back({voted_number, 1, i}); + else + { + sort(post.begin(), post.end(), [](student o1, student o2)->bool{ return o1.scr == o2.scr ? o1.posted_at < o2.posted_at : o1.scr < o2.scr; }); + post[0] = {voted_number, 1, i}; + } + } + } + + sort(post.begin(), post.end(), [](student o1, student o2)->bool{ return o1.number < o2.number; }); + for (int i = 0; i < post.size(); i++) + printf("%d ", post[i]); + printf("\n"); + return 0; +} diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1713_\355\233\204\353\263\264\354\266\224\354\262\234\355\225\230\352\270\260/1713.py" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1713_\355\233\204\353\263\264\354\266\224\354\262\234\355\225\230\352\270\260/1713.py" new file mode 100644 index 0000000..8ad1e61 --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/1713_\355\233\204\353\263\264\354\266\224\354\262\234\355\225\230\352\270\260/1713.py" @@ -0,0 +1,29 @@ +class student: + def __init__(self, number, scr, posted_at): + self.number = number + self.scr = scr + self.posted_at = posted_at + +N = int(input()) +R = int(input()) +voted_number_list = list(map(int,input().split())) +post = [] + +for i in range(R): + already_posted = False + + for j in range(len(post)): + if post[j].number == voted_number_list[i]: + post[j].scr += 1 + already_posted = True + break + + if not already_posted: + if len(post) < N: + post.insert(0, student(voted_number_list[i], 1, i)) + else: + post.sort(key=lambda s: (s.scr, s.posted_at)) + post[0] = student(voted_number_list[i], 1, i) + +post.sort(key=lambda s: s.number) +print(' '.join(str(s.number) for s in post)) diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/2877_4\354\231\2007/2877.cpp" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/2877_4\354\231\2007/2877.cpp" new file mode 100644 index 0000000..649b24c --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/2877_4\354\231\2007/2877.cpp" @@ -0,0 +1,26 @@ +#include +#include +#include +using namespace std; + +int main() +{ + int k; + string ans; + + scanf("%d", &k); + + k++; + while (k) + { + if (k % 2 == 0) + ans.push_back('4'); + else + ans.push_back('7'); + k /= 2; + } + reverse(ans.begin(), ans.end()); + + printf("%s\n", ans.c_str() + 1); + return 0; +} diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/2877_4\354\231\2007/2877.py" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/2877_4\354\231\2007/2877.py" new file mode 100644 index 0000000..103521b --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/2877_4\354\231\2007/2877.py" @@ -0,0 +1,5 @@ +K = int(input()) + +ans = str(bin(K + 1))[3:].replace('0', '4').replace('1', '7') + +print(ans) diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/3079_\354\236\205\352\265\255\354\213\254\354\202\254/3079.cpp" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/3079_\354\236\205\352\265\255\354\213\254\354\202\254/3079.cpp" new file mode 100644 index 0000000..779d06a --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/3079_\354\236\205\352\265\255\354\213\254\354\202\254/3079.cpp" @@ -0,0 +1,40 @@ +#include +#include +#include +using namespace std; +typedef long long ll; + +ll how_many_pass(ll given_time, vector &time_per_pass) +{ + ll count = 0; + for (int i = 0; i < time_per_pass.size(); i++) + count += given_time / time_per_pass[i]; + return count; +} + +int main() +{ + int N, M; + + scanf("%d %d", &N, &M); + vector time_per_pass(N); + for (int i = 0; i < N; i++) + scanf("%d", &time_per_pass[i]); + + ll ans; + ll l = 1; + ll r = (ll)(*min_element(time_per_pass.begin(), time_per_pass.end())) * M; + while (l <= r) + { + ll m = (l + r) / 2; + if (how_many_pass(m, time_per_pass) >= M) + { + ans = m; + r = m - 1; + } + else + l = m + 1; + } + printf("%lld\n", ans); + return 0; +} diff --git "a/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/3079_\354\236\205\352\265\255\354\213\254\354\202\254/3079.py" "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/3079_\354\236\205\352\265\255\354\213\254\354\202\254/3079.py" new file mode 100644 index 0000000..f9d75b8 --- /dev/null +++ "b/Part1_\352\260\225\354\235\230\354\236\220\353\243\214/Part1_\354\227\260\354\212\265\353\254\270\354\240\234_\355\222\200\354\235\264/3079_\354\236\205\352\265\255\354\213\254\354\202\254/3079.py" @@ -0,0 +1,23 @@ +def how_many_pass(given_time, time_per_pass): + count = 0 + for t in time_per_pass: + count += given_time // t + return count + +N, M = map(int, input().split()) + +time_per_pass = [int(input()) for _ in range(N)] + +ans = 0 +l = 1 +r = min(time_per_pass) * M + +while l <= r: + m = (l + r) // 2 + if how_many_pass(m, time_per_pass) >= M: + ans = m + r = m - 1 + else: + l = m + 1 + +print(ans)