From d28f3d00636bbc6b28051e89a7dc05ffc8ea5450 Mon Sep 17 00:00:00 2001 From: seogudwns <38065726+seogudwns@users.noreply.github.com> Date: Thu, 25 Aug 2022 21:45:54 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=ED=8F=B4=EB=8D=94=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HJ_Seo/BaekJoon/{07/05 => 08/01}/14427.py | 0 .../{07/05 => 08/01}/14502_not_try.py | 0 HJ_Seo/BaekJoon/{07/06 => 08/02}/14888.py | 0 HJ_Seo/BaekJoon/{07/06 => 08/02}/15989.py | 0 HJ_Seo/BaekJoon/{07/07 => 08/03}/15650_new.py | 0 HJ_Seo/BaekJoon/{07/07 => 08/03}/5430.py | 0 .../{07/08 => 08/04}/17352_done_bfs.py | 0 HJ_Seo/BaekJoon/{07/08 => 08/04}/17626.py | 0 HJ_Seo/BaekJoon/{07/09 => 08/05}/11286.py | 0 HJ_Seo/BaekJoon/{07/09 => 08/05}/1541.py | 0 HJ_Seo/BaekJoon/08/06/1074.py | 21 + HJ_Seo/BaekJoon/08/06/12865.py | 322 ++++++++++ HJ_Seo/etc/1003.py | 15 - HJ_Seo/etc/1009.py | 22 - HJ_Seo/etc/1017_notcomp.py | 588 ------------------ HJ_Seo/etc/1020_notcomp.py | 129 ---- HJ_Seo/etc/1021.py | 34 - HJ_Seo/etc/1038_notcomp.py | 35 -- HJ_Seo/etc/1057.py | 57 -- HJ_Seo/etc/10599.py | 8 - HJ_Seo/etc/1062_notcomp.py | 91 --- HJ_Seo/etc/1064.py | 27 - HJ_Seo/etc/10710.py | 41 -- HJ_Seo/etc/10816_good.py | 21 - HJ_Seo/etc/10828.py | 28 - HJ_Seo/etc/10845.py | 33 - HJ_Seo/etc/1088_notcomp.py | 52 -- HJ_Seo/etc/10971(notcomp).py | 50 -- HJ_Seo/etc/10989.py | 14 - HJ_Seo/etc/11012_-ing.py | 69 -- HJ_Seo/etc/1106_notcomp_q.py | 89 --- HJ_Seo/etc/1149.py | 18 - HJ_Seo/etc/1157.py | 13 - HJ_Seo/etc/11650.py | 13 - HJ_Seo/etc/11659.py | 10 - HJ_Seo/etc/1166_notcomp.py | 27 - HJ_Seo/etc/11725.py | 32 - HJ_Seo/etc/11726.py | 10 - HJ_Seo/etc/11758.py | 11 - HJ_Seo/etc/1198.py | 16 - HJ_Seo/etc/1215.py | 317 ---------- HJ_Seo/etc/1226_notcomp.py | 37 -- HJ_Seo/etc/1269.py | 8 - HJ_Seo/etc/1324_clear.py | 27 - HJ_Seo/etc/13265.py | 74 --- HJ_Seo/etc/13863.py | 102 --- HJ_Seo/etc/13910_notcomp.py | 41 -- HJ_Seo/etc/13915.py | 35 -- HJ_Seo/etc/1407.py | 143 ----- HJ_Seo/etc/1422_notcomp.py | 37 -- HJ_Seo/etc/1436.py | 42 -- HJ_Seo/etc/14573.py | 61 -- HJ_Seo/etc/1463.py | 34 - HJ_Seo/etc/14733_notcomp.py | 18 - HJ_Seo/etc/1546.py | 8 - HJ_Seo/etc/15487.py | 229 ------- HJ_Seo/etc/15760.py | 87 --- HJ_Seo/etc/15829.py | 14 - HJ_Seo/etc/1620.py | 13 - HJ_Seo/etc/16400.py | 38 -- HJ_Seo/etc/1654.py | 33 - HJ_Seo/etc/1662(notcomp).py | 45 -- HJ_Seo/etc/16861.py | 12 - HJ_Seo/etc/17103.py | 20 - HJ_Seo/etc/1715.py | 19 - HJ_Seo/etc/17163_pyX.py | 26 - HJ_Seo/etc/17285.py | 23 - HJ_Seo/etc/17366_notcomp.py | 111 ---- HJ_Seo/etc/17386_notcomp.py | 15 - HJ_Seo/etc/17404.py | 22 - HJ_Seo/etc/17615.py | 6 - HJ_Seo/etc/1769.py | 61 -- HJ_Seo/etc/18054.py | 36 -- HJ_Seo/etc/18111_notcomp.py | 35 -- HJ_Seo/etc/18665_notcomp.py | 21 - HJ_Seo/etc/18729.py | 14 - HJ_Seo/etc/18821_pyX_why.py | 71 --- HJ_Seo/etc/19134.py | 89 --- HJ_Seo/etc/1932.py | 21 - HJ_Seo/etc/19658_notcomp.py | 50 -- HJ_Seo/etc/1966_done.py | 98 --- HJ_Seo/etc/20419_notcomp.py | 44 -- HJ_Seo/etc/2042.py | 101 --- HJ_Seo/etc/21966_notcomp.py | 18 - HJ_Seo/etc/2250(notcomp).py | 39 -- HJ_Seo/etc/2263_notcomp.py | 92 --- HJ_Seo/etc/23253.py | 12 - HJ_Seo/etc/23330.py | 25 - HJ_Seo/etc/23587_notcomp.py | 30 - HJ_Seo/etc/24039.py | 20 - HJ_Seo/etc/24268_notcomp.py | 32 - HJ_Seo/etc/24523.py | 16 - HJ_Seo/etc/25393_whats_the_prob.py | 102 --- HJ_Seo/etc/25395.py | 53 -- HJ_Seo/etc/25418.py | 61 -- HJ_Seo/etc/25421.py | 21 - HJ_Seo/etc/25426.py | 17 - HJ_Seo/etc/2579.py | 32 - HJ_Seo/etc/2670.py | 26 - HJ_Seo/etc/2731.py | 36 -- HJ_Seo/etc/2749.py | 15 - HJ_Seo/etc/2775.py | 20 - HJ_Seo/etc/2805.py | 69 -- HJ_Seo/etc/3019.py | 41 -- HJ_Seo/etc/3273.py | 40 -- HJ_Seo/etc/3644.py | 20 - HJ_Seo/etc/3986.py | 19 - HJ_Seo/etc/4354.py | 46 -- HJ_Seo/etc/4949.py | 36 -- HJ_Seo/etc/4963_long_time_cle.py | 41 -- HJ_Seo/etc/5640.py | 110 ---- HJ_Seo/etc/6523(done_more_eff_exist).py | 76 --- HJ_Seo/etc/6588.py | 26 - HJ_Seo/etc/7469.py | 72 --- HJ_Seo/etc/8891.py | 34 - HJ_Seo/etc/8958.py | 13 - HJ_Seo/etc/9012.py | 24 - HJ_Seo/etc/9095.py | 20 - HJ_Seo/etc/9375.py | 18 - HJ_Seo/etc/elice_mistake_4.9.py | 151 ----- HJ_Seo/etc/elice_test_4.10.py | 139 ----- HJ_Seo/etc/prob_in_prob/1.py | 33 - .../logic_prac/2042_segment_tree/make_tree.py | 15 - HJ_Seo/logic_prac/bitmasking_done/1094.py | 16 - HJ_Seo/logic_prac/bitmasking_done/12813.py | 28 - HJ_Seo/logic_prac/bitmasking_done/1497.py | 55 -- .../logic_prac/bitmasking_done/2098_done.py | 28 - HJ_Seo/logic_prac/index.py | 0 HJ_Seo/prac.py | 240 ------- 129 files changed, 343 insertions(+), 5968 deletions(-) rename HJ_Seo/BaekJoon/{07/05 => 08/01}/14427.py (100%) rename HJ_Seo/BaekJoon/{07/05 => 08/01}/14502_not_try.py (100%) rename HJ_Seo/BaekJoon/{07/06 => 08/02}/14888.py (100%) rename HJ_Seo/BaekJoon/{07/06 => 08/02}/15989.py (100%) rename HJ_Seo/BaekJoon/{07/07 => 08/03}/15650_new.py (100%) rename HJ_Seo/BaekJoon/{07/07 => 08/03}/5430.py (100%) rename HJ_Seo/BaekJoon/{07/08 => 08/04}/17352_done_bfs.py (100%) rename HJ_Seo/BaekJoon/{07/08 => 08/04}/17626.py (100%) rename HJ_Seo/BaekJoon/{07/09 => 08/05}/11286.py (100%) rename HJ_Seo/BaekJoon/{07/09 => 08/05}/1541.py (100%) create mode 100644 HJ_Seo/BaekJoon/08/06/1074.py create mode 100644 HJ_Seo/BaekJoon/08/06/12865.py delete mode 100644 HJ_Seo/etc/1003.py delete mode 100644 HJ_Seo/etc/1009.py delete mode 100644 HJ_Seo/etc/1017_notcomp.py delete mode 100644 HJ_Seo/etc/1020_notcomp.py delete mode 100644 HJ_Seo/etc/1021.py delete mode 100644 HJ_Seo/etc/1038_notcomp.py delete mode 100644 HJ_Seo/etc/1057.py delete mode 100644 HJ_Seo/etc/10599.py delete mode 100644 HJ_Seo/etc/1062_notcomp.py delete mode 100644 HJ_Seo/etc/1064.py delete mode 100644 HJ_Seo/etc/10710.py delete mode 100644 HJ_Seo/etc/10816_good.py delete mode 100644 HJ_Seo/etc/10828.py delete mode 100644 HJ_Seo/etc/10845.py delete mode 100644 HJ_Seo/etc/1088_notcomp.py delete mode 100644 HJ_Seo/etc/10971(notcomp).py delete mode 100644 HJ_Seo/etc/10989.py delete mode 100644 HJ_Seo/etc/11012_-ing.py delete mode 100644 HJ_Seo/etc/1106_notcomp_q.py delete mode 100644 HJ_Seo/etc/1149.py delete mode 100644 HJ_Seo/etc/1157.py delete mode 100644 HJ_Seo/etc/11650.py delete mode 100644 HJ_Seo/etc/11659.py delete mode 100644 HJ_Seo/etc/1166_notcomp.py delete mode 100644 HJ_Seo/etc/11725.py delete mode 100644 HJ_Seo/etc/11726.py delete mode 100644 HJ_Seo/etc/11758.py delete mode 100644 HJ_Seo/etc/1198.py delete mode 100644 HJ_Seo/etc/1215.py delete mode 100644 HJ_Seo/etc/1226_notcomp.py delete mode 100644 HJ_Seo/etc/1269.py delete mode 100644 HJ_Seo/etc/1324_clear.py delete mode 100644 HJ_Seo/etc/13265.py delete mode 100644 HJ_Seo/etc/13863.py delete mode 100644 HJ_Seo/etc/13910_notcomp.py delete mode 100644 HJ_Seo/etc/13915.py delete mode 100644 HJ_Seo/etc/1407.py delete mode 100644 HJ_Seo/etc/1422_notcomp.py delete mode 100644 HJ_Seo/etc/1436.py delete mode 100644 HJ_Seo/etc/14573.py delete mode 100644 HJ_Seo/etc/1463.py delete mode 100644 HJ_Seo/etc/14733_notcomp.py delete mode 100644 HJ_Seo/etc/1546.py delete mode 100644 HJ_Seo/etc/15487.py delete mode 100644 HJ_Seo/etc/15760.py delete mode 100644 HJ_Seo/etc/15829.py delete mode 100644 HJ_Seo/etc/1620.py delete mode 100644 HJ_Seo/etc/16400.py delete mode 100644 HJ_Seo/etc/1654.py delete mode 100644 HJ_Seo/etc/1662(notcomp).py delete mode 100644 HJ_Seo/etc/16861.py delete mode 100644 HJ_Seo/etc/17103.py delete mode 100644 HJ_Seo/etc/1715.py delete mode 100644 HJ_Seo/etc/17163_pyX.py delete mode 100644 HJ_Seo/etc/17285.py delete mode 100644 HJ_Seo/etc/17366_notcomp.py delete mode 100644 HJ_Seo/etc/17386_notcomp.py delete mode 100644 HJ_Seo/etc/17404.py delete mode 100644 HJ_Seo/etc/17615.py delete mode 100644 HJ_Seo/etc/1769.py delete mode 100644 HJ_Seo/etc/18054.py delete mode 100644 HJ_Seo/etc/18111_notcomp.py delete mode 100644 HJ_Seo/etc/18665_notcomp.py delete mode 100644 HJ_Seo/etc/18729.py delete mode 100644 HJ_Seo/etc/18821_pyX_why.py delete mode 100644 HJ_Seo/etc/19134.py delete mode 100644 HJ_Seo/etc/1932.py delete mode 100644 HJ_Seo/etc/19658_notcomp.py delete mode 100644 HJ_Seo/etc/1966_done.py delete mode 100644 HJ_Seo/etc/20419_notcomp.py delete mode 100644 HJ_Seo/etc/2042.py delete mode 100644 HJ_Seo/etc/21966_notcomp.py delete mode 100644 HJ_Seo/etc/2250(notcomp).py delete mode 100644 HJ_Seo/etc/2263_notcomp.py delete mode 100644 HJ_Seo/etc/23253.py delete mode 100644 HJ_Seo/etc/23330.py delete mode 100644 HJ_Seo/etc/23587_notcomp.py delete mode 100644 HJ_Seo/etc/24039.py delete mode 100644 HJ_Seo/etc/24268_notcomp.py delete mode 100644 HJ_Seo/etc/24523.py delete mode 100644 HJ_Seo/etc/25393_whats_the_prob.py delete mode 100644 HJ_Seo/etc/25395.py delete mode 100644 HJ_Seo/etc/25418.py delete mode 100644 HJ_Seo/etc/25421.py delete mode 100644 HJ_Seo/etc/25426.py delete mode 100644 HJ_Seo/etc/2579.py delete mode 100644 HJ_Seo/etc/2670.py delete mode 100644 HJ_Seo/etc/2731.py delete mode 100644 HJ_Seo/etc/2749.py delete mode 100644 HJ_Seo/etc/2775.py delete mode 100644 HJ_Seo/etc/2805.py delete mode 100644 HJ_Seo/etc/3019.py delete mode 100644 HJ_Seo/etc/3273.py delete mode 100644 HJ_Seo/etc/3644.py delete mode 100644 HJ_Seo/etc/3986.py delete mode 100644 HJ_Seo/etc/4354.py delete mode 100644 HJ_Seo/etc/4949.py delete mode 100644 HJ_Seo/etc/4963_long_time_cle.py delete mode 100644 HJ_Seo/etc/5640.py delete mode 100644 HJ_Seo/etc/6523(done_more_eff_exist).py delete mode 100644 HJ_Seo/etc/6588.py delete mode 100644 HJ_Seo/etc/7469.py delete mode 100644 HJ_Seo/etc/8891.py delete mode 100644 HJ_Seo/etc/8958.py delete mode 100644 HJ_Seo/etc/9012.py delete mode 100644 HJ_Seo/etc/9095.py delete mode 100644 HJ_Seo/etc/9375.py delete mode 100644 HJ_Seo/etc/elice_mistake_4.9.py delete mode 100644 HJ_Seo/etc/elice_test_4.10.py delete mode 100644 HJ_Seo/etc/prob_in_prob/1.py delete mode 100644 HJ_Seo/logic_prac/2042_segment_tree/make_tree.py delete mode 100644 HJ_Seo/logic_prac/bitmasking_done/1094.py delete mode 100644 HJ_Seo/logic_prac/bitmasking_done/12813.py delete mode 100644 HJ_Seo/logic_prac/bitmasking_done/1497.py delete mode 100644 HJ_Seo/logic_prac/bitmasking_done/2098_done.py delete mode 100644 HJ_Seo/logic_prac/index.py delete mode 100644 HJ_Seo/prac.py diff --git a/HJ_Seo/BaekJoon/07/05/14427.py b/HJ_Seo/BaekJoon/08/01/14427.py similarity index 100% rename from HJ_Seo/BaekJoon/07/05/14427.py rename to HJ_Seo/BaekJoon/08/01/14427.py diff --git a/HJ_Seo/BaekJoon/07/05/14502_not_try.py b/HJ_Seo/BaekJoon/08/01/14502_not_try.py similarity index 100% rename from HJ_Seo/BaekJoon/07/05/14502_not_try.py rename to HJ_Seo/BaekJoon/08/01/14502_not_try.py diff --git a/HJ_Seo/BaekJoon/07/06/14888.py b/HJ_Seo/BaekJoon/08/02/14888.py similarity index 100% rename from HJ_Seo/BaekJoon/07/06/14888.py rename to HJ_Seo/BaekJoon/08/02/14888.py diff --git a/HJ_Seo/BaekJoon/07/06/15989.py b/HJ_Seo/BaekJoon/08/02/15989.py similarity index 100% rename from HJ_Seo/BaekJoon/07/06/15989.py rename to HJ_Seo/BaekJoon/08/02/15989.py diff --git a/HJ_Seo/BaekJoon/07/07/15650_new.py b/HJ_Seo/BaekJoon/08/03/15650_new.py similarity index 100% rename from HJ_Seo/BaekJoon/07/07/15650_new.py rename to HJ_Seo/BaekJoon/08/03/15650_new.py diff --git a/HJ_Seo/BaekJoon/07/07/5430.py b/HJ_Seo/BaekJoon/08/03/5430.py similarity index 100% rename from HJ_Seo/BaekJoon/07/07/5430.py rename to HJ_Seo/BaekJoon/08/03/5430.py diff --git a/HJ_Seo/BaekJoon/07/08/17352_done_bfs.py b/HJ_Seo/BaekJoon/08/04/17352_done_bfs.py similarity index 100% rename from HJ_Seo/BaekJoon/07/08/17352_done_bfs.py rename to HJ_Seo/BaekJoon/08/04/17352_done_bfs.py diff --git a/HJ_Seo/BaekJoon/07/08/17626.py b/HJ_Seo/BaekJoon/08/04/17626.py similarity index 100% rename from HJ_Seo/BaekJoon/07/08/17626.py rename to HJ_Seo/BaekJoon/08/04/17626.py diff --git a/HJ_Seo/BaekJoon/07/09/11286.py b/HJ_Seo/BaekJoon/08/05/11286.py similarity index 100% rename from HJ_Seo/BaekJoon/07/09/11286.py rename to HJ_Seo/BaekJoon/08/05/11286.py diff --git a/HJ_Seo/BaekJoon/07/09/1541.py b/HJ_Seo/BaekJoon/08/05/1541.py similarity index 100% rename from HJ_Seo/BaekJoon/07/09/1541.py rename to HJ_Seo/BaekJoon/08/05/1541.py diff --git a/HJ_Seo/BaekJoon/08/06/1074.py b/HJ_Seo/BaekJoon/08/06/1074.py new file mode 100644 index 0000000..fb6b1ec --- /dev/null +++ b/HJ_Seo/BaekJoon/08/06/1074.py @@ -0,0 +1,21 @@ +# https://www.acmicpc.net/problem/1074 + +# N,r,c = map(int,input().split()) + +# result = 0 +# for i in range(N+1): +# if r & (1<total: +# value = 0 +# items.append((weight,(1<total: +# continue + +# items.append((weight,value)) + +# N = len(items) +# items = sorted(items) + +# not_use_idx = [set(i for i in range(N)) for _ in range(total+1)] +# maxi_value_per_weight = [0]*(total+1) + +# for i in range(N): +# weight,value = items[i] +# if maxi_value_per_weight[weight]total: +# continue + +# items.append((weight,value)) + +# result = 0 + +# for i in range(1,(1<total: +# continue + +# weights.append(weight) +# values.append(value) + +# N = len(weights) + +# if N == 0: +# print(0) +# exit(0) + +# TF_idx = [False]*N + +# result = 0 +# Q = deque() +# for i in range(N): +# tmp = TF_idx.copy() +# tmp[i] = True +# Q.append([weights[i],tmp]) +# # print(Q) + +# while True: +# info = Q.popleft() +# # print(info) +# for idx in range(N): +# if info[0]+weights[idx]<=total and info[1][idx] == False: +# comb = [info[0]+weights[idx],info[1].copy()] +# comb[1][idx] = True +# if comb not in Q: +# Q.append(comb) +# else: +# tmp = 0 +# for i in range(N): +# tmp += values[i] if info[1][i] == True else 0 +# result = max(result,tmp) + +# if len(Q) == 0: +# print(result) +# break + +# ! 역시 시간초과. + +# ! https://hongcoding.tistory.com/50 .. 냅섹 알고리즘..?.. + +from sys import stdin +N,total = map(int,stdin.readline().strip().split()) + +weights = [0] +values = [0] +for i in range(N): + weight,value = map(int,stdin.readline().strip().split()) + if weight>total: + continue + + weights.append(weight) + values.append(value) + +N = len(weights) +goods_weight_per_value = [[0]*(total+1) for _ in range(N)] + +for i in range(1, N): + for j in range(1, total+1): + w = weights[i] + v = values[i] + + if j 2 4 6 10 12 16 18 22 28 30 36 40 42 46(358 round) -10 -34 39 32 4 9 35 14 17 1 4 ---> 9 39(16 round) -18 -1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ---> 2 4 6 10 12 16 18(82 round) -8 -34 39 32 4 9 35 14 17 ---> 9 39(10 round) -20 -941 902 873 841 948 851 945 854 815 898 806 826 976 878 861 919 926 901 875 864 ---> 806 926(35 round) -38 -757 97 337 221 971 496 138 12 5 342 275 159 467 523 270 118 273 846 564 597 698 931 200 745 205 914 172 372 339 826 26 777 351 436 180 1000 487 218 ---> 12 172 180 372 436 564 826(100421 round) -30 -937 824 721 524 517 722 43 251 379 611 993 256 717 970 462 571 789 696 96 630 94 132 233 699 980 695 854 959 572 290 ---> 94 96 132 256 462 970(1387 round) -6 -11 1 4 7 10 12 ---> 12(3 round) -50 -972 492 840 160 158 550 390 508 726 206 632 442 194 958 434 978 128 474 832 994 850 176 430 212 582 673 415 417 659 273 575 475 909 977 153 323 337 33 515 985 793 325 495 873 533 905 53 343 111 179 ---> 179 325 475 515 905 977 (386 round) -50 -846 286 682 952 566 138 544 678 478 10 128 574 914 786 28 94 768 470 668 870 284 954 242 368 8 179 545 5 537 91 451 567 473 791 597 417 17 39 321 793 627 841 609 741 963 107 461 401 349 463 ---> 17 91 107 451 461 473 791 (76542 round) -50 -53 641 733 429 995 627 945 127 979 989 543 521 805 201 345 611 91 211 931 783 363 913 269 77 401 738 668 440 324 170 212 42 514 534 232 308 558 598 724 286 304 160 120 698 962 130 834 760 832 428 ---> 120 170 534 698 834(11860 round) -50 -350 7 606 761 464 799 372 551 668 889 628 353 916 611 868 779 332 599 644 59 638 469 844 967 630 871 950 909 708 295 824 711 962 259 786 753 480 213 670 895 490 411 932 543 120 179 164 145 352 725 ---> 213 411 711 753 779 909 -''' \ No newline at end of file diff --git a/HJ_Seo/etc/1020_notcomp.py b/HJ_Seo/etc/1020_notcomp.py deleted file mode 100644 index 5980fb3..0000000 --- a/HJ_Seo/etc/1020_notcomp.py +++ /dev/null @@ -1,129 +0,0 @@ -def num_sum(arr): - dic = {i:0 for i in range(2,8)} - for x in arr: - if x == '1': - dic[2] += 2 - elif x == '7': - dic[3] += 3 - elif x == '4': - dic[4] += 4 - elif x in ['2','3','5','9']: - dic[5] += 5 - elif x in ['0','6']: - dic[6] += 6 - elif x == '8': - dic[7] += 7 - - return sum(dic.values()) - -def next_num(arr,leng): - x = str(int(arr)+1) - if len(x)>leng: - return '0'*leng - else: - return '0'*(leng-len(x))+x - -num = input() -leng = len(num) -cnt = 1 -num_sum_init = num_sum(num) - -while True: - num = next_num(num,leng) - # print(num) - if num_sum(num) == num_sum_init: - print(cnt) - break - - cnt += 1 - -# ! 3rd.. 더느림.. - -# num = input() -# leng = len(num) - -# if num.count('1') == leng or num.count('8') == leng: -# print('1'+'0'*leng) -# exit(0) - -# cnt1 = 0 -# if num.endswith('1') or num.endswith('8'): -# temp = num[-1] -# for i in range(len(num)): -# if num[-i] == temp: -# cnt1 += 1 -# else: -# break - -# num = num[:-cnt1] -# leng = len(num) - -# cnt_dict = {'1':2,'2':5,'3':5,'4':4,'5':5,'6':6,'7':3,'8':7,'9':5,'0':6} -# num_sum = 0 -# for i in num: -# num_sum += cnt_dict[i] - -# print(num,num_sum) -# cnt = 1 -# num = int(num) - -# while True: -# result = 0 -# num += 1 -# str_num = str(num) - -# if len(str_num) > leng: -# str_num = '0' -# num = 0 - -# for i in str_num: -# result += cnt_dict[i] - -# result += (leng - len(str_num)) * 6 - -# if num_sum == result: -# print(cnt* (10**cnt1)) -# break -# cnt += 1 - - -# 어떤 이유일까?? -# ex 1111111111 (1 10개.) -# ex2 71111111 - - -# # ! inital code. -# num = input() -# leng = len(num) - -# cnt_dict = {'0':6,'1':2,'2':5,'3':5,'4':4,'5':5,'6':6,'7':3,'8':7,'9':5} # '0':6 -# num_sum = 0 -# for i in num: -# num_sum += cnt_dict[i] - - -# cnt = 1 -# num = int(num) - -# while True: -# result = 0 -# num += 1 -# str_num = str(num) - -# if len(str_num) > leng: -# str_num = '0' -# num = 0 - -# for i in str_num: -# result += cnt_dict[i] - -# result += (leng - len(str_num)) * 6 - -# if num_sum == result: -# print(cnt) -# print('0'*(leng-len(str(num)))+str(num)) -# break -# cnt += 1 - - - diff --git a/HJ_Seo/etc/1021.py b/HJ_Seo/etc/1021.py deleted file mode 100644 index ac6d83b..0000000 --- a/HJ_Seo/etc/1021.py +++ /dev/null @@ -1,34 +0,0 @@ -from sys import stdin -from collections import deque - -def sec_proc(Q,n): - for _ in range(n): - Q.append(Q.popleft()) - -def thr_proc(Q,n): - for _ in range(n): - Q.appendleft(Q.pop()) - -N,M = map(int,stdin.readline().strip().split()) -cnt = 0 -nums = tuple(map(int,stdin.readline().strip().split())) -idx = 0 - -Q = deque() -for i in range(1,N+1): - Q.append(i) - -for _ in range(M): - left = Q.index(nums[idx]) - right = len(Q)-left - if right>=left: - cnt += left - sec_proc(Q,left) - else: - cnt += right - thr_proc(Q,right) - Q.popleft() - - idx += 1 - -print(cnt) \ No newline at end of file diff --git a/HJ_Seo/etc/1038_notcomp.py b/HJ_Seo/etc/1038_notcomp.py deleted file mode 100644 index 438f4f0..0000000 --- a/HJ_Seo/etc/1038_notcomp.py +++ /dev/null @@ -1,35 +0,0 @@ -num = [10 for i in range(11)] - -def add_num(idx): - if num[idx] == 10: - num[idx] = 1 - elif num[idx]=3317: - print(-1) - exit(0) -elif n == 0: - print(0) - exit(0) - -for i in range(n): - add_num(10) - print(num,i+1) # 체크용 code. - -while num[0] == 10: - num.pop(0) - -result = '' -for i in num: - result += str(i) - -print(result) - - -# ! ex. 100은 맨 뒤에 00때문에 감소하는 수가 아님. \ No newline at end of file diff --git a/HJ_Seo/etc/1057.py b/HJ_Seo/etc/1057.py deleted file mode 100644 index 7b9ad6e..0000000 --- a/HJ_Seo/etc/1057.py +++ /dev/null @@ -1,57 +0,0 @@ -# def div_num(num): -# if num%2 == 0: -# return num//2 -# return num//2 + 1 - -# N,kim,lim = map(int,input().split()) - -# if kim > lim: -# kim,lim = lim,kim - -# cnt = 1 -# while True: -# if (kim+1)//2 == (lim+1)//2: -# print(cnt) -# break -# # print(kim,lim) -# kim = div_num(kim) -# lim = div_num(lim) -# cnt += 1 - -N,kim,lim = map(int,input().split()) - -cnt = 1 -while True: - if (kim+1)//2 == (lim+1)//2: - print(cnt) - break - - kim = (kim+1)//2 - lim = (lim+1)//2 - cnt += 1 - -''' -20 31 -- 1 -10 16 -- 2 -5 8 -- 3 -3 4 -- 4 -''' - -''' -1000 35000 -- 1 -500 17500 -- 2 -250 8750 -- 3 -125 4375 -- 4 -63 2188 -- 5 -32 1094 -- 6 -16 547 -- 7 -8 274 -- 8 -4 137 -- 9 -2 69 -- 10 -1 40 -- 11 -1 20 -- 12 -1 10 -- 13 -1 5 -- 14 -1 3 -- 15 -1 2 -- 16 -''' \ No newline at end of file diff --git a/HJ_Seo/etc/10599.py b/HJ_Seo/etc/10599.py deleted file mode 100644 index 8877e01..0000000 --- a/HJ_Seo/etc/10599.py +++ /dev/null @@ -1,8 +0,0 @@ -while True: - k = input().strip() - if k == '0 0 0 0': - break - - a,b,c,d = map(int,k.split()) - - print(c-b,d-a) \ No newline at end of file diff --git a/HJ_Seo/etc/1062_notcomp.py b/HJ_Seo/etc/1062_notcomp.py deleted file mode 100644 index 7fec24a..0000000 --- a/HJ_Seo/etc/1062_notcomp.py +++ /dev/null @@ -1,91 +0,0 @@ -from itertools import combinations -from sys import stdin - -N,K = map(int,stdin.readline().strip().split()) - -lst = [set(map(ord,stdin.readline().strip()[4:-4])) for _ in range(N)] -#각 단어에서 앞뒤 4글자를 제외한 글자들을 쪼개서 아스키코드로 변경, 겹치는 것을 제거하기 위해 set. - -if K<5: - print(0) - exit(0) -elif K == 26: - print(N) - exit(0) -# 최소 알아야하는 글자 = a,n,t,i,c. 그리고 모든 글자를 알려주면 모든 단어를 알려주는 것과 같으니 두번째가 있으면 시간이 약간 줄겠지? - -know = {ord('a'),ord('n'),ord('t'),ord('i'),ord('c')} -# alp_except_know = set([i for i in range(97,123)]) #ord('a') = 97, ord('z') = 122 -# for i in know: -# alp_except_know.remove(i) - -# print('know = ',know) -K -= 5 -#know가 5 이상이니 5글자를 배웠다고 판단. - -for i in range(len(lst)): - lst[i] = lst[i] - know - -cnt = lst.count(set()) - -for i in lst: - if len(i) == 0: - lst.remove(i) - elif len(i) > K: - lst.remove(i) - -# lst의 글자중 know에 있는 글자들 제거. -# antic로만 만들어진 단어 제거 및 cnt에 추가. -# 정렬된 단어중 글자의 갯수가 K보다 많으면 제거. 검사케이스 줄이기. -# print(lst) - -total_lst = set().union(*lst) -# check = combinations(total_lst,K) - -result = 0 -for i in combinations(total_lst,K): - result = max(result, len(['' for subset in lst if subset & set(i) == subset])) - -print(result+cnt) - -# print(lst) -# print(total_lst) - -# if len(total_lst) <= K: -# print(N) -# exit(0) - - -# n = len(total_lst) # 원소의 개수 -# result_list = [] # 생성된 부분 수열 저장 -# for i in range(1< 이때는 minleng==0이 된다. -# 2. 세 점이 서로 다르지만 일직선 상에 있을때.. 가장 긴 변의 길이가 나머지 두 변의 길이의 합과 같게 된다. -# ==> 2*maxleng == leng1+leng2+leng3가 된다. -# 51%?에서 틀렸는데 왜 틀린걸까??.... 아마도 계산상의 문제인 것 같다는 생각이 든다. 기울기로 변경후 end. - -import math - -x1,x2,y1,y2,z1,z2 = map(int,input().strip().split()) - - -leng1 = math.sqrt((x1-y1)**2+(x2-y2)**2) -leng2 = math.sqrt((x1-z1)**2+(x2-z2)**2) -leng3 = math.sqrt((y1-z1)**2+(y2-z2)**2) - -maxleng = max(leng1,leng2,leng3) -minleng = min(leng1,leng2,leng3) - -if ((x1-y1)*(x2-z2)==(x1-z1)*(x2-y2)): - print(-1.0) -else: - print(2*(maxleng-minleng)) \ No newline at end of file diff --git a/HJ_Seo/etc/10710.py b/HJ_Seo/etc/10710.py deleted file mode 100644 index ef43203..0000000 --- a/HJ_Seo/etc/10710.py +++ /dev/null @@ -1,41 +0,0 @@ -# from sys import stdin - -# N,M = map(int,stdin.readline().strip().split()) - -# D_i = [int(stdin.readline().strip()) for _ in range(N)] -# C_i = [int(stdin.readline().strip()) for _ in range(M)] -# x = max(C_i)*M*max(D_i)*N+1 -# need = [[0]*(M+1)]+[[x]*(M+1) for _ in range(N)] - -# for i in range(1,N+1): # i번째 도시. -# for j in range(i,M+1): #j번째 날에 방문., i날에 방문가능한 최소 도시 번호 = i -# need[i][j] = min(need[i][j],min(need[i-1][i-1:j])+C_i[j-1]*D_i[i-1]) - -# print(min(need[-1])) - -# ! 이거 왜 시간초과니?? -# for i in need: -# print(i) - -from sys import stdin - -N,M = map(int,stdin.readline().strip().split()) - -D_i = [int(stdin.readline().strip()) for _ in range(N)] -C_i = [int(stdin.readline().strip()) for _ in range(M)] -x = max(C_i)*M*max(D_i)*N+1 -temp = [0 for _ in range(M+1)] #기준 도시 -temp2 = [x for _ in range(M+1)] #init. -temp3 = temp2.copy() # 다음 도시. - -for i in range(1,N+1): # i번째 도시. - # print(temp) # ! check1 - for j in range(i,M+1): #j번째 날에 방문., i날에 방문가능한 최소 도시 번호 = i - # print(i,j) - temp3[j] = min(temp3[j],min(temp[i-1:j])+C_i[j-1]*D_i[i-1]) - temp = temp3 - temp3 = temp2.copy() -# print(temp) # ! check2 -print(min(temp)) - -# ! 이건 맞는데.... 시간이 너무 괴랄...,,ㅠ \ No newline at end of file diff --git a/HJ_Seo/etc/10816_good.py b/HJ_Seo/etc/10816_good.py deleted file mode 100644 index 10d7b38..0000000 --- a/HJ_Seo/etc/10816_good.py +++ /dev/null @@ -1,21 +0,0 @@ -from sys import stdin - -N = int(stdin.readline().strip()) -lst = sorted(stdin.readline().strip().split()) - -M = int(stdin.readline().strip()) -lst2 = stdin.readline().strip().split() - -temp = lst2[0] -catch_one = {} -cnt = 0 - -for i in lst: - if i in catch_one.keys(): - catch_one[i] += 1 - else: - catch_one[i] = 1 - -print(' '.join(str(catch_one[m]) if m in catch_one else '0' for m in lst2)) - -#! dic에 대한 좋은 사실을 알게 되었다. \ No newline at end of file diff --git a/HJ_Seo/etc/10828.py b/HJ_Seo/etc/10828.py deleted file mode 100644 index 20d839d..0000000 --- a/HJ_Seo/etc/10828.py +++ /dev/null @@ -1,28 +0,0 @@ -from collections import deque -from sys import stdin - -N = int(stdin.readline().strip()) - -nums = deque() - -for _ in range(N): - arr = stdin.readline().strip() - if arr.startswith('push'): - nums.append(arr[5:]) - elif arr.startswith('pop'): - if len(nums) == 0: - print(-1) - else: - print(nums.pop()) - elif arr.startswith('size'): - print(len(nums)) - elif arr.startswith('empty'): - if len(nums) == 0: - print(1) - else: - print(0) - elif arr.startswith('top'): - if len(nums) == 0: - print(-1) - else: - print(nums[-1]) \ No newline at end of file diff --git a/HJ_Seo/etc/10845.py b/HJ_Seo/etc/10845.py deleted file mode 100644 index 690244c..0000000 --- a/HJ_Seo/etc/10845.py +++ /dev/null @@ -1,33 +0,0 @@ -from collections import deque -from sys import stdin - -N = int(stdin.readline().strip()) - -nums = deque() - -for _ in range(N): - arr = stdin.readline().strip() - if arr.startswith('push'): - nums.append(arr[5:]) - elif arr.startswith('pop'): - if len(nums) == 0: - print(-1) - else: - print(nums.popleft()) - elif arr.startswith('size'): - print(len(nums)) - elif arr.startswith('empty'): - if len(nums) == 0: - print(1) - else: - print(0) - elif arr.startswith('front'): - if len(nums) == 0: - print(-1) - else: - print(nums[0]) - elif arr.startswith('back'): - if len(nums) == 0: - print(-1) - else: - print(nums[-1]) \ No newline at end of file diff --git a/HJ_Seo/etc/1088_notcomp.py b/HJ_Seo/etc/1088_notcomp.py deleted file mode 100644 index 8b87487..0000000 --- a/HJ_Seo/etc/1088_notcomp.py +++ /dev/null @@ -1,52 +0,0 @@ -from sys import stdin,maxsize - -n = int(stdin.readline().strip()) - -pieces = list(map(int,stdin.readline().strip().split())) - -m = int(stdin.readline().strip()) -# ! m 이하로 짤라서 최대 - 최소... - -''' -5 -13 69 41 37 80 -27 -''' - -# about_size = sum(pieces)/(m+n-1) -# # print(about_size) -# lst = [pieces[i]/about_size for i in range(n)] -# print(lst) - -# lst = [[int(pieces[i]/about_size) for i in range(n)],[]] -# print(lst[0]) - -# def diff_min_max(n,lst,pieces): -# x = pieces.copy() -# for i in range(n): -# x[i] = pieces[i]/lst[i] -# return x - - -# x = diff_min_max(n,lst[0],pieces) -# print(x, max(x)-min(x)) - -''' -qq - -''' -# while m != 0: -# max_piece = max(pieces) -# if pieces[max_piece] == 1: -# del pieces[max_piece] -# else: -# pieces[max_piece] -= 1 - -# if max_piece/2 not in pieces: -# pieces[max_piece/2] = 0 -# pieces[max_piece/2] += 2 - -# m -= 1 - -# print(pieces) -# print(max(pieces) - min(pieces)) \ No newline at end of file diff --git a/HJ_Seo/etc/10971(notcomp).py b/HJ_Seo/etc/10971(notcomp).py deleted file mode 100644 index edc6f93..0000000 --- a/HJ_Seo/etc/10971(notcomp).py +++ /dev/null @@ -1,50 +0,0 @@ -''' -입력 -첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. -각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. -W[i][j]는 도시 i에서 j로 가기 위한 비용을 나타낸다. - -항상 순회할 수 있는 경우만 입력으로 주어진다. - -출력 -첫째 줄에 외판원의 순회에 필요한 최소 비용을 출력한다. -============ -4 -0 10 15 20 -5 0 9 10 -6 13 0 12 -8 8 9 0 -==> 35 () -''' - -# def isAnagram(str1, str2): -# dict1 = {} -# dict2 = {} - -# for i in str1: -# if i not in dict1.keys(): -# dict1[i]=1 -# else: -# dict1[i] += 1 - -# for i in str2: -# if i not in dict2.keys(): -# dict2[i]=1 -# else: -# dict2[i] += 1 - -# if dict1 == dict2: -# return True -# else: -# return False - -# def main(): -# print(isAnagram('iamlordvoldemort', 'tommarvoloriddle')) # should return True -# print(isAnagram('cat', 'cap')) #should return False - - -# if __name__ == "__main__": -# main() - - -#a = <3, 5, 7> 없는 타입.. print할 때 join등을 이용해서 박아주기.. diff --git a/HJ_Seo/etc/10989.py b/HJ_Seo/etc/10989.py deleted file mode 100644 index 996079c..0000000 --- a/HJ_Seo/etc/10989.py +++ /dev/null @@ -1,14 +0,0 @@ -from sys import stdin - -n = int(stdin.readline().strip()) - -nums = [0]*10001 - -for i in range(n): - nums[int(stdin.readline().strip())] += 1 - -for j in range(1,10001): - if nums[j] != 0: - for k in range(nums[j]): - print(j) - diff --git a/HJ_Seo/etc/11012_-ing.py b/HJ_Seo/etc/11012_-ing.py deleted file mode 100644 index bf2113e..0000000 --- a/HJ_Seo/etc/11012_-ing.py +++ /dev/null @@ -1,69 +0,0 @@ -# from sys import stdin - -# def getnum(x1,x2,y1,y2,lst): -# cnt = 0 -# lst = filter(lambda x: x[0] >= x1 and x[0]<=x2,lst) -# lst = set(filter(lambda x: x[1] >= y1 and x[1]<=y2,lst)) -# return len(lst) - -# case = int(input()) - -# for i in range(case): -# cnt = 0 -# n,m = map(int,stdin.readline().strip().split()) - -# dots = {tuple(map(int,stdin.readline().strip().split())) for _ in range(n)} # O(n + log(n)) - -# while m != 0: -# m -= 1 -# x1,x2,y1,y2 = map(int,stdin.readline().strip().split()) -# cnt += getnum(x1,x2,y1,y2,dots) -# # O(n) for each. - -# print(cnt) - -# O(n*m) alg. -# ! initial code. - -from sys import stdin - -def count_leng(lst,y1,y2): - return len(tuple(filter(lambda x : x>=y1 and x<=y2,lst))) - -def count_dots(x1,x2,y1,y2,start,end): - if x2= C: - res_set.add(lst[i][0]) - -for i in range(len(lst)): - if lst[i][1] <= C: - x = C//lst[i][1] - - - - - - - -# result_set = set() -# lst = [] -# for i in range(N): -# lst.append(list(map(int,stdin.readline().strip().split()))) - -# lst = sorted(lst,key = lambda x: -x[1]/x[0]) - -# cut = 0 -# for i in lst: -# if i[1] <= C: -# x = C//i[1] -# C = C%i[1] -# cut += x*i[0] -# break - -# if C == 0: -# print(cut) -# exit(0) - -# cal_dict = {0:0} -# for i in lst: -# cal_dict[i[1]] = i[0] # key:고용인원. val:(최소)비용 - -# while len(cal_dict) != 0: -# # print(cal_dict) -# temp_dict = {} -# for i in cal_dict.items(): -# for j in lst: -# if i[0]+j[1]>=C: -# # print('result_set_input = ',i[1]+j[0]) -# result_set.add(i[1]+j[0]) -# elif i[0]+j[1] in temp_dict.keys(): -# temp_dict[i[0]+j[1]] = min(temp_dict[i[0]+j[1]],i[1]+j[0]) -# else: -# temp_dict[i[0]+j[1]] = i[1]+j[0] -# cal_dict = temp_dict - -# # print(cut,C) -# # # print(lst) -# # print(result_set) -# print(cut+min(result_set)) - -# ! 틀림... 왜?? - -# ex. 12명 필요, lst = [[11,30],[1,1]] --> 11 -# ex2. 12명 필요. [[5,6],[4,4]] --> 10 -# ex3. 12명 필요. [[100,300],[5,1]] --> 1*12 = 12 .. # ! 5*12 = 60 -# ex4. 12명 필요. [[3,300],[5,1]] --> 300*1 > 12 .. # ! 3 -# ex5. 100명 필요. [[4,9],[1,2]] --> 9*11 + 2*1 = 101 >= 100. -# ex6. 12명 필요. [[100,300],[44,15],[5,1]] --> 15 >= 12 .. 44 \ No newline at end of file diff --git a/HJ_Seo/etc/1149.py b/HJ_Seo/etc/1149.py deleted file mode 100644 index d4ab3ae..0000000 --- a/HJ_Seo/etc/1149.py +++ /dev/null @@ -1,18 +0,0 @@ -from sys import stdin - -n = int(stdin.readline().strip()) - -house = [list(map(int,stdin.readline().strip().split())) for _ in range(n)] - -m = 1 - -while m != n: - for i in range(3): - temp = house[m-1].copy() - temp.pop(i) - house[m][i] += min(temp) - - m += 1 - -print(min(house[-1])) - diff --git a/HJ_Seo/etc/1157.py b/HJ_Seo/etc/1157.py deleted file mode 100644 index fa1f982..0000000 --- a/HJ_Seo/etc/1157.py +++ /dev/null @@ -1,13 +0,0 @@ -arr = input() -arr = arr.upper() - -alp = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] -num = [] - -for i in alp: - num.append(arr.count(i)) - -if num.count(max(num)) > 1: - print('?') -else: - print(alp[num.index(max(num))]) diff --git a/HJ_Seo/etc/11650.py b/HJ_Seo/etc/11650.py deleted file mode 100644 index 3f9d1ec..0000000 --- a/HJ_Seo/etc/11650.py +++ /dev/null @@ -1,13 +0,0 @@ -from sys import stdin - -N = int(stdin.readline()) - -lst = [] - -for _ in range(N): - lst.append(list(map(int,stdin.readline().strip().split()))) - -lst = sorted(lst,key = lambda x: (x[0],x[1])) - -for i in lst: - print(*i) diff --git a/HJ_Seo/etc/11659.py b/HJ_Seo/etc/11659.py deleted file mode 100644 index 531cc9b..0000000 --- a/HJ_Seo/etc/11659.py +++ /dev/null @@ -1,10 +0,0 @@ -from sys import stdin -N,M = map(int,stdin.readline().strip().split()) - -nums = [0]+list(map(int,stdin.readline().strip().split())) -for i in range(N): - nums[i+1] += nums[i] - -for _ in range(M): - a,b = map(int,stdin.readline().strip().split()) - print(nums[b]-nums[a-1]) diff --git a/HJ_Seo/etc/1166_notcomp.py b/HJ_Seo/etc/1166_notcomp.py deleted file mode 100644 index 4d16e07..0000000 --- a/HJ_Seo/etc/1166_notcomp.py +++ /dev/null @@ -1,27 +0,0 @@ -# 상자가 들어갈 수 있는 최대 갯수 = L//A * W//A * H//A.. -# 상자의 갯수 = N.. -# N, L, W, H가 주어질 때 max(A) = ?.... 오차는 10**-9 까지. -#! 어려운데..?.. - -N, L, W, H = map(int,input().strip().split()) - -if N < min(L,W,H): - print(0) - exit(0) - -unit = 0 -nbr = 1 -cnt = 0 -while True: - if cnt == 14: - print(unit) - break - - Ldiv = L//(unit+nbr) - Wdiv = W//(unit+nbr) - Hidv = H//(unit+nbr) - if Ldiv * Wdiv * Hidv >= N: - unit += nbr - else: - nbr = nbr/10 - cnt += 1 diff --git a/HJ_Seo/etc/11725.py b/HJ_Seo/etc/11725.py deleted file mode 100644 index a3fc8c5..0000000 --- a/HJ_Seo/etc/11725.py +++ /dev/null @@ -1,32 +0,0 @@ -# https://www.acmicpc.net/problem/11725 -# ! 대강 짜가지고 업데이트 할 필요는 있어보인다... 생각나면 하겠지?? - -n = int(input()) - -tree = dict() - -for _ in range(n-1): - node1,node2 = map(int,input().split()) - if node1 not in tree: - tree[node1] = [] - tree[node1].append(node2) - - if node2 not in tree: - tree[node2] = [] - tree[node2].append(node1) - -result = [None for _ in range(n+1)] - -tmp = [(1,tree[1])] - -while len(tmp) != 0: - tmp2 = [] - for i in tmp: - for j in i[1]: - if result[j] == None: - result[j] = i[0] - tmp2.append((j,tree[j])) - tmp = tmp2 - -for i in range(2,n+1): - print(result[i]) \ No newline at end of file diff --git a/HJ_Seo/etc/11726.py b/HJ_Seo/etc/11726.py deleted file mode 100644 index 03ef95d..0000000 --- a/HJ_Seo/etc/11726.py +++ /dev/null @@ -1,10 +0,0 @@ -n = int(input()) -lst = [1,1,2] - -if n <= 2: - print(lst[n]) -else: - for i in range(n-2): - lst.append(lst[-1]+lst[-2]) - - print(lst[-1]%10007) diff --git a/HJ_Seo/etc/11758.py b/HJ_Seo/etc/11758.py deleted file mode 100644 index 17a449f..0000000 --- a/HJ_Seo/etc/11758.py +++ /dev/null @@ -1,11 +0,0 @@ -# https://www.acmicpc.net/problem/11758 - -dots = [tuple(map(int,input().split())) for _ in range(3)] -a,b,c = dots - -if (b[0]-a[0])*(c[1]-a[1]) == (c[0]-a[0])*(b[1]-a[1]): - print(0) -elif (b[0]-a[0])*(c[1]-a[1]) > (c[0]-a[0])*(b[1]-a[1]): - print(1) -else: - print(-1) \ No newline at end of file diff --git a/HJ_Seo/etc/1198.py b/HJ_Seo/etc/1198.py deleted file mode 100644 index 9cf31ad..0000000 --- a/HJ_Seo/etc/1198.py +++ /dev/null @@ -1,16 +0,0 @@ -# https://www.acmicpc.net/problem/1198 -# 넓이의 최댓값..!.. - -from sys import stdin - -n = int(stdin.readline().strip()) - -dots = tuple(tuple(map(int,stdin.readline().strip().split())) for _ in range(n)) -wide = 0 - -for i in range(n-2): - for j in range(i+1,n-1): - for k in range(j+1,n): - wide = max(wide,abs((dots[i][0]*dots[j][1]+dots[j][0]*dots[k][1]+dots[k][0]*dots[i][1])-(dots[i][0]*dots[k][1]+dots[k][0]*dots[j][1]+dots[j][0]*dots[i][1]))/2) - -print(round(wide,1)) \ No newline at end of file diff --git a/HJ_Seo/etc/1215.py b/HJ_Seo/etc/1215.py deleted file mode 100644 index 2904f23..0000000 --- a/HJ_Seo/etc/1215.py +++ /dev/null @@ -1,317 +0,0 @@ -#### 추후 고민 후 꼭 풀어볼 것!! - -# import time - -import math -n,k = map(int,input().strip().split()) - -x = int(math.sqrt(k)) - -c = 0 - -if k<=n: # done. - - y = 0 - z = 0 - - for i in range(1,x+1): - c += k//i * i - c += ( (k//i + 1 + y) * (y - (k//i + 1) + 1) )//2 * z - y = k//i - z = i - - c += ( (y + z+1) * (y - (z+1) + 1) )//2 * z - -elif x= k//i: - c += ( (k//i + 1 + y) * (y - (k//i + 1) + 1) )//2 * z - y = min(k//i,n) - z = i - - c += ( (y + z+1) * (y - (z+1) + 1) )//2 * z - -else: # n <= x == sqrt(k) .. done - for i in range(1,n+1): - c += k//i*i - -print(n*k - c) - -#! k<=n case에 대해서는 클리어, but n 15*(1) - -2 몫 7, -2+1 몫 5 --> 7*(2) - -3 몫 5, -3+1 몫 3 --> 5*(3) - -4몫 3, -4+2 몫 2 --> 3*(4+5) - -6 몫 2, -6+2 몫 1 --> 2*(6+7) - -8 몫 1, -8+8 몫 0 --> 1*(sum_(i=8)^(8+7)) - -a~a+1 = a -a~b+1 = ((b-a+1)(b+a)/2) * (k//a) (a=b)가능. - -15 1 15 -7 2 14 -5 3 15 -/3 4 12 -3 5 15 -2 6 12 -2 7 14 -1 8 8 -1 9 9 -1 10 10 -1 11 11 -1 12 12 -1 13 13 -1 14 14 -1 15 15 -''' - -# def lst_partition(iter,n,k): -# leng = len(iter) -# if leng%n == 0: -# yield leng//n -# else: -# yield leng//n+1 -# a=0 -# while True: -# b=0 -# c = a+n -# if c>leng: -# c = -1 -# for i in iter[a:c]: #요거 어떻게 수정이 안되나???..,,,, -- 이게 수정되야함. 수정이 잘 될시 아래 if문의 숫자를 많이 줄여도 좋음. -# b += k%i #lst와 sum을 적용시키는 것은 시간효율이 떨어짐. -# a += n -# yield b - -# a = 0 -# if min(k,n)>10000000: -# iter = range(2,min(k//2+1,n+1)) -# x = lst_partition(iter,100000,k) - -# for i in range(next(x)): #1번식_new!.. 덧셈 분산을 해서 메모리를 조금 더 쓰고 시간을 약간 줄임(3/4정도, 10^8 10^8 기준.) but 작은 케이스에 대해서는 느림. 그런데 이것도 시간초과네??...,,,,ㅠㅠ -# a += next(x) - -# else: -# for i in range(2,min(k//2+1,n+1)): #1번식. i 가 k//2 보다 작을때는 나머지, i가 k//2보다 큰 경우 2번식과 3번식을 이용.. -# a += (k%i) -# # k%i 를 재활용 할 수 있는 방법? - -# # print('a =',a) #10 6일 때 0. - -# ''' -# k의 약수일 때 나머지는 0. -# k-1의 약수 i일 때 나머지는 항상 1%i. -# k-2의 약수 i일 때 나머지는 항상 2%i. -# ... -# k-x의 약수 i일 때 나머지는 항상 x%i -# ~~~ when i <= k//2., 자연스럽게 겹쳐지고 항상 잘 계산됨. - -# --> 역산이 가능할까?? 별수없이 요걸 해야하네..,,, -# k%2 -# k%3 -# k%4 -# k%5 -# ... -# k%(k//2) == 1 or 0 -# k%(k//2+1) == k//2 - 1 -# ... -# k%(k-1) == 1 - -# 19%15 = 4 -# 19%5 = 4 -# 19%3 = 1 -# else? - -# ''' - -# # a = 0 -# # for i in range(2,min(k//2+1,n+1)): -# # a += divmod(k,i)[1] # 몫과 나머지 두개를 다 구하는 것이기 때문에 더 많은 시간이 걸림. - - -# mid_time = time.time() -# print(a) - - -# if k//2 < n: # 2번식. n이 k의 반 이상, 1 이하의 비율에 위치해 있을 때 n*n(+1)/2의 부분 식이 나옴. 따로 뺌. -# col = max(k-k//2-1 + k-n, k-k//2) -# row = min(n - k//2, k-k//2-1) -# # print('row & col =',row,col) -# # print('col * row = ',col * row) #10 6일 때 3. -# a += col*row // 2 - -# if k <= n: -# a += k*(n-k) #3번식. i가 k보다 큰 경우 나머지는 단순히 k, 이때 등호는 n-k로 인해 들어가도 가능. - -# print(a) - -# end_time = time.time() - -# print('걸린 시간 =',end_time - start_time) -# print('걸린 시간 =',end_time - mid_time) - -''' -1775329727317353 <-- input : 100000000 99999999 -2416832290696316 <-- input : 99999999 999999998 -2416832300935302 <-- input : 100000000 999999999 -24168334560047 <-- input : 10000000 99999999 -241684602728 <-- input : 1000000 9999999 ... 어떤 반복이 있다는 소리인데 ... -100000000 999999999 -ex 10일때 -sum( - 10 - 1*10//1 = 10 - 10 - 10 - 2*10//2 = 10 - 10 - 10 - 3*10//3 = 10 - 9 - 10 - 4*10//4 = 10 - 8 -) - -k, n ~= 3/4k. - b = (k+1)//2 - sum(b ~ k-n ) - -반 이상의 정수... k = (n-1)//2 sum = k*(k+1)/2 -(ex 5/2 = 2.5.. 최소정수 = 3~4 --> 나머지는 차례대로 2 1) - -약수, 서로소, (X) ... 11 --> -5 => 1, 6 => 5 - -n = a + k*i for some k = n//i. -n = a-n//i = a - n//i + i+1 (mod i+1) - -P(i) = a. -P(i+1) = P(i) - n//i if P(i)>=n//i - -30%1 = 0 -30%2 = 0 - 30 + (1+1) * 15 = 0 -30%3 = 0 - 15 + 3*5 = 0 -30%4 = 0 -10 + 4*3 = 2 - -... -30%10 = 0 -30%(10+1) = 0 - 30//10 = -3 + 10 + 1 -30%(11+1) = 8 - 30//11 = 8 - 2 = 6 -30%(12+1) = 6 - 30//12 = 6 - 2 = 4 - -10%3 = 1 -10%7 = 3 -10%9 = 1 - -10%4 = 2 -10%6 = 4 -10%8 = 2 - -1,2,5,10 = 0 -2 --> (cycle(range(0)))..... 1 짜르고 2부터. -3 --> -4 --> 0(cycle(range(1))) -5 --> 1 -6 --> 0,0(cycle(range(2))) -7 --> 1,1 -8 --> 0,2,0(cycle(range(3))) -9 --> 1,0,1 -10 --> 0,1,2,0(cycle(range(4))) -11 --> 1,2,3,1 // 5,4,3,2,1,0 = 22 -12 --> 0,0,0,2,0 // 5,4,3,2,1 = 17 -13 --> 1,1,1,3,1 // 6,5,4,3,2,1 = 28 -14 --> 0,2,2,4,2,0(cycle(range(6))) -15 --> 1,0,3,0,3,1 - -10 = 0,1,2,0,4 ,3 -4 = 0,1,0,4,4 ,4 -14 = 0,2,2,4,8-6,7-7..... - -... -120 = 6! --> 0,0,0,0,0,1,0,3,0,10, ... - -추가되는 cycle.. -n == 2k, cycle(range(k-1)), last = 0 -n == 2k+1, last = 1 -0부터 k 미만의 숫자들.. 합은 k^2 미만. - -ex) 8, cycle3을 따져보면 (8-6)%3 -13 cycle5 --> (13-10)%5 = 3 - -a=0 -for i in range(2,min(k//2+1,n+1)): - a += (k-2*i)%i .... == k%i - -n,k = 6,10 -i = 1 --> 0 -0 -1 -2 -0 -4 = 6 - -3 -2 -1 -0 - -ex. -301%4 = 3 -301%6 = 1 -301%3 = 1 -301%2 = 1 -''' - - diff --git a/HJ_Seo/etc/1226_notcomp.py b/HJ_Seo/etc/1226_notcomp.py deleted file mode 100644 index f7cfc62..0000000 --- a/HJ_Seo/etc/1226_notcomp.py +++ /dev/null @@ -1,37 +0,0 @@ -from sys import stdin -n = int(input()) -dang = [0] + list(map(int,stdin.readline().strip().split())) - -total = sum(dang) - - -# Link : https://www.acmicpc.net/problem/1226 -# ! inital code.. 작은 N case에 대해서는 쉽게 done.. 30개 넘어가면 x. -# from sys import stdin -# from itertools import combinations - -# n = int(input()) -# dang = [0] + list(map(int,stdin.readline().strip().split())) - -# total = sum(dang) - -# complete = [] -# for i in range(1,n): -# for j in combinations(dang[1:],i): -# if sum(j)>=total/2: -# if sum(j)-min(j) t[j]): - t[j] = cnt + 1 - - if (arr1[i] > arr2[j]): - if (t[j] > cnt): - cnt = t[j] - # print(t) - return max(t) - -print(maxleng(arr1, arr2, N)) - -# 좋은 dp문제였다. - \ No newline at end of file diff --git a/HJ_Seo/etc/13265.py b/HJ_Seo/etc/13265.py deleted file mode 100644 index 3674a8a..0000000 --- a/HJ_Seo/etc/13265.py +++ /dev/null @@ -1,74 +0,0 @@ -# https://www.acmicpc.net/problem/13265 - -from sys import stdin - - - -case = int(stdin.readline().strip()) - -for _ in range(case): - result = 'possible' - v,e = map(int,stdin.readline().strip().split()) - - red = set() - blue = set() - Vtx = set() - tmp = [] - - a,b = map(int,stdin.readline().strip().split()) - - red.add(a) - blue.add(b) - Vtx.update([a,b]) - - for _ in range(e-1): - a,b = map(int,stdin.readline().strip().split()) - if a in Vtx or b in Vtx: - if a in red: - if b in blue: - continue - elif b in red: - result = 'impossible' - break - else: - blue.add(b) - Vtx.add(b) - elif a in blue: - if b in red: - continue - elif b in blue: - result = 'impossible' - break - else: - red.add(b) - Vtx.add(b) - elif b in red: - if a in blue: - continue - elif a in red: - result = 'impossible' - break - else: - blue.add(a) - Vtx.add(a) - elif b in blue: - if a in red: - continue - elif a in blue: - result = 'impossible' - break - else: - red.add(a) - Vtx.add(a) - - else: - tmp.append((a,b),(b,a)) - - if result == 'impossible': - break - - # tmp에 남은거 처리하기.. - if result == 'possible': - 1 - - print(result) \ No newline at end of file diff --git a/HJ_Seo/etc/13863.py b/HJ_Seo/etc/13863.py deleted file mode 100644 index d5fd388..0000000 --- a/HJ_Seo/etc/13863.py +++ /dev/null @@ -1,102 +0,0 @@ -# https://www.acmicpc.net/problem/13863 - -# num = int(input()) -# last = int(num**(1/3))+1 -# three_sqr = [i**3 for i in range(1,last)] # 44777444 < 356**3 --> len(three_sqr) <= 356 -# origin = [i for i in range(1,last)] -# def sum_max(num,lst): -# lst2 = [] -# for i in lst[::-1]: -# tmp = num//i -# lst2.append(tmp) -# num -= i*tmp - -# return lst2[::-1],sum(lst2) - -# def check_comb(num,lst,origin): -# leng = len(lst) -# result1 = 44777444 -# result2 = [] -# for i in range(leng,0,-1): -# mult,cnt = sum_max(num,lst[:i]) # --> 재귀로 들어가야 할 것 같은데..?.. -# # print(mult,cnt) -# if cnt len(three_sqr) <= 356 -origin = [i for i in range(1,last)] - -def sum_max(num,lst,lst2=[]): - if len(lst) == 0 or num == 0: - return lst2,sum(lst2) - - first = lst[-1] - tmp0 = num//first - # for i in range(tmp0): - # num -= first - # comp1,comp2 = sum_max(num,lst,lst2) - # if ~~~ - - lst2.append(tmp0) - - num -= first*tmp0 - - comp1,comp2 = sum_max(num,lst[:-2],lst2) - - for i in lst[1:][::-1]: - tmp = num//i - lst2.append(tmp) - num -= i*tmp - - if comp2 < sum(lst2): - return comp1,comp2+tmp0 - - return lst2,sum(lst2)+tmp0 - -### 42를 넣었을 때 mult,cnt에는 [2,5],7 가 들어가있어야 함. - -def check_comb(num,lst,origin): - leng = len(lst) - result1 = 44777444 - result2 = [] - for i in range(leng,0,-1): - mult,cnt = sum_max(num,lst[:i]) # --> 재귀가 들어가야 할 것 같은데..?.. - print(mult,cnt) - # if cnt ??????????????????????????????????????????????????????? -3. ex) 1999 3 \n 999 997 996 - -M >= 3이고, 각 윅의 크기가 다른 경우..?.. -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -Does exist (x1, ... , x_M) in Z^M s.t. sigma x_i * wicks[i] = N, and if it exist, what is the possible of the nimimum of max([x1, ... , x_M])?. - - -''' -def mulsum(wicks,cnt,M): - return sum([wicks[i]*cnt[i] for i in range(M)]) - -N,M = map(int,input().strip().split()) -wicks = list(map(int,input().strip().split())) - -wick_set = set(wicks) -wick_num = [] -for i in wick_set: - wick_num.append(wicks.count(i)) - - - -# maxi = N//wicks[-1] + 1 -# cnt = [maxi]*M - -# poss_nbr = set() - -# while cnt != [0]*M: -# if mulsum(wicks,cnt,M) == N: -# poss_nbr.add(max(mulsum(wicks,cnt,M))) #100개의 1이 있을때는?... 10000만 되도 10000**100..,,,, - - -# if len(poss_nbr) == 0: -# print(-1) -# else: -# print(min(poss_nbr)) - diff --git a/HJ_Seo/etc/13915.py b/HJ_Seo/etc/13915.py deleted file mode 100644 index 43e8107..0000000 --- a/HJ_Seo/etc/13915.py +++ /dev/null @@ -1,35 +0,0 @@ -from sys import stdin - -while True: - try: - cases = set() - n = int(stdin.readline().rstrip()) - for _ in range(n): - user = stdin.readline().rstrip() - case = set() - for i in user: - if i not in case: - case.add(int(i)) - - cases.add(tuple(case)) - - print(len(cases)) - - except: - break - -# ! ??????????? 이거 왜틀리나??... - -# cases = set() -# n = int(stdin.readline().rstrip()) -# for _ in range(n): -# user = stdin.readline().rstrip() -# case = set() -# for i in user: -# if i not in case: -# case.add(int(i)) - -# cases.add(tuple(case)) - -# print(len(cases)) -# print(cases) \ No newline at end of file diff --git a/HJ_Seo/etc/1407.py b/HJ_Seo/etc/1407.py deleted file mode 100644 index 90e7334..0000000 --- a/HJ_Seo/etc/1407.py +++ /dev/null @@ -1,143 +0,0 @@ -''' -5 9 ---> 1 2 1 8 1 ==> sum : 13 -''' - -# from sys import stdin - -# seq = [0] -# sum_seq = [0] - -# N,M = map(int,stdin.readline().strip().split()) -# target = 0 -# for i in range(1,M+1): -# if i%2 == 1: -# target = 1 -# else: -# target = 2 * seq[i//2] - -# seq.append(target) -# sum_seq.append(target+sum_seq[-1]) - -# print(sum_seq[M] - sum_seq[N-1]) - -# ! 메모리 초과. - -# from sys import stdin - -# sum_seq = 0 - -# def div_two(num): -# cnt = 1 -# while True: -# if num%2 != 0: -# return cnt - -# cnt *= 2 -# num = num//2 - -# N,M = map(int,stdin.readline().strip().split()) - -# for i in range(N,M+1): -# if i%2 == 1: -# sum_seq += 1 -# else: -# sum_seq += div_two(i) - -# print(sum_seq) - -# ! 시도 X but 안봐도 시간이든 메모리든 초과. - -# from sys import stdin - -# N,M = map(int,stdin.readline().strip().split()) - -# nums = {i for i in range(N,M)} -# result = 0 -# tmp = 1 - -# while True: -# tmp_nums = set() -# cnt = 0 -# while len(nums) != 0: -# x = nums.pop() -# if x%2 == 1: # 홀수이면 -# cnt += 1 -# else: -# tmp_nums.add(x//2) - -# result += tmp*cnt -# tmp *= 2 -# if len(tmp_nums) == 0: -# break - -# nums = tmp_nums - -# print(result) - -# ! 이것도 메모리 초과.. 그냥 받으면 무조껀 메모리초과 나겠네.. - -# from sys import stdin - -# N,M = map(int,stdin.readline().strip().split()) - -# result = 0 -# tmp = 1 -# M+=1 - -# while True: -# cnt = 0 -# tmp1 = (N+1)//2 -# tmp2 = (M+1)//2 -# for i in range(N,M): -# if i%2 == 1: -# cnt += 1 - -# result += tmp*cnt -# tmp *= 2 - -# if tmp1 == tmp2: -# break - -# N,M = tmp1,tmp2 - -# print(result) - -# ! 이건 시간초과. for문을 이용해서 푸는게 또 아니네.. cnt는 홀수의 갯수. - -from sys import stdin - -N,M = map(int,stdin.readline().strip().split()) - -result = 0 -tmp = 1 -M+=1 - -while True: - cnt = M//2 - N//2 - tmp1 = (N+1)//2 - tmp2 = (M+1)//2 - - result += tmp*cnt - tmp *= 2 - - if tmp1 == tmp2: - break - - N,M = tmp1,tmp2 - -print(result) - -''' -176 177(178) * 1 -88 (89) * -44 (45) * -22 (23) * -11 (12) 16 - -5 6 7 8 9 (4,10) 1 * 1 * 1 - 3 4 (2,5 ) 2 * - 2 (1,3 ) * - 1 8 - -''' \ No newline at end of file diff --git a/HJ_Seo/etc/1422_notcomp.py b/HJ_Seo/etc/1422_notcomp.py deleted file mode 100644 index a8f81dc..0000000 --- a/HJ_Seo/etc/1422_notcomp.py +++ /dev/null @@ -1,37 +0,0 @@ -from sys import stdin - -K,N = map(int,stdin.readline().strip().split()) - -nums = [] - -for _ in range(K): - nums.append(stdin.readline().strip()) - -nums = sorted(nums, key = lambda x: (len(x),-int(x))) -maxnum = str(max(map(int,nums))) - -result = '' -temp = '' -choose = 1 if len(nums[0]) == len(nums[-1]) else 0 - -for i in range(N): - if i= 9201: - print(2656799 + aim) - exit(0) - -while True: - n+=1 - - if '666' in str(n): - cnt +=1 - - if cnt == aim: - print(n) - break diff --git a/HJ_Seo/etc/14573.py b/HJ_Seo/etc/14573.py deleted file mode 100644 index 49ed681..0000000 --- a/HJ_Seo/etc/14573.py +++ /dev/null @@ -1,61 +0,0 @@ -from sys import stdin - -seq = [0,1,1] -sum_seq = [0,1,2] -num = 1000000007 -init_num = 2 -for i in range(3,1000001): - nex = (seq[-1]*(2+init_num))%num - sum_seq.append((sum_seq[-1]+nex)%num) - seq.append(nex) # ! --> 요거 계산수가 문제인데.. - init_num = (init_num*2)%num -# print(seq[:15]) -# print(sum_seq[:15]) - -case = int(stdin.readline().strip()) - -def sec_ord(numb): - cnt = 0 - while True: - if numb%2 != 0: - return cnt # 이거도 업데이트가 가능할텐데... X --> at most O(16) - - numb = numb//2 - cnt += 1 - -for _ in range(case): - - arr = stdin.readline().strip() - - if arr.startswith('4'): - order,one,i = map(int,arr.split()) - # if len(seq)-1 < i: - # for k in range(len(seq),i+1): - # seq.append((seq[-1]*(2+2**(k-2)))%num) # index update. - - print((one*seq[i])%num) - continue - - order,one,i,j = map(int,arr.split()) - if i>j: - i,j = j,i - # if len(seq)-1 < max(i,j): - # for k in range(len(seq),max(i,j)+1): - # seq.append((seq[-1]*(2+2**(k-2)))%num) # index update. - - if order == 1: # a_i - print((one*seq[i])%num) - - elif order == 2: #a_j를 2로 나눈 count - # sec_ord(one*seq[max(i,j)]) - if j <=2: - print(sec_ord(one)) # update1.. one을 2로 나눈 수에 각각의 init a_j들의 2의 지수들은 계산상 j-1와 동일. - else: - print(sec_ord(one)+(j-1)) # update2.. j가 1인 경우와 연산이 곱셈이 아닌 덧셈!!! - - elif order == 3: # 이거 로직 맞는데...,,,,ㅠ - print((one*(sum_seq[j] - sum_seq[i-1]))%num) - # update2.. 여기도 one을 곱해줬어야했는데...,,, - # print(sum(seq[i:j+1])%num) # 만약 줄인다면 이거...? - -# ! 로직은 이게 맞는데... 좀 더 빠르게 쓸 방법은..?.. 이게 틀렸다고??.. \ No newline at end of file diff --git a/HJ_Seo/etc/1463.py b/HJ_Seo/etc/1463.py deleted file mode 100644 index e61ddb6..0000000 --- a/HJ_Seo/etc/1463.py +++ /dev/null @@ -1,34 +0,0 @@ -n = int(input()) - -if n == 1: - print(0) - exit(0) - -init = {n} -next = set() -cnt = 1 -total = [False]*(n+1) -total[n] = True - -while True: - for i in init: - if i-1>0 and not total[i-1]: - next.add(i-1) - total[i-1] = True - if i%2 == 0 and i//2>0: - if not total[i//2]: - next.add(i//2) - total[i//2] = True - if i%3 == 0 and i//3>0: - if not total[i//3]: - next.add(i//3) - total[i//3] = True - - if 1 in next: - print(cnt) - break - - init = next - next = set() - - cnt += 1 diff --git a/HJ_Seo/etc/14733_notcomp.py b/HJ_Seo/etc/14733_notcomp.py deleted file mode 100644 index 08c6176..0000000 --- a/HJ_Seo/etc/14733_notcomp.py +++ /dev/null @@ -1,18 +0,0 @@ -from sys import stdin - -N = int(input()) - -x1,y1,x2,y2 = map(int,stdin.readline().strip().split()) - -x_min,y_min,x_max,y_max = (x1+x2)/2,(y1+y2)/2,(x1+x2)/2,(y1+y2)/2 - -for i in range(N-1): - x1,y1,x2,y2 = map(int,stdin.readline().strip().split()) - x_min = min(x_min,x1) - x_max = max(x_max,x2) - y_min = min(y_min,y1) - y_max = max(y_max,y2) - -print((x_max-x_min) * (y_max-y_min)) - -# ! 그냥 직사각형들의 합이 아님... 직사각형이 포개져있으면 짤린 넓이를 생각해야 함. \ No newline at end of file diff --git a/HJ_Seo/etc/1546.py b/HJ_Seo/etc/1546.py deleted file mode 100644 index df4edfd..0000000 --- a/HJ_Seo/etc/1546.py +++ /dev/null @@ -1,8 +0,0 @@ -from sys import stdin - -n = int(input()) -nums = list(map(int,stdin.readline().strip().split())) - -maxnum = max(nums) - -print(sum(nums)/(n*maxnum)*100) \ No newline at end of file diff --git a/HJ_Seo/etc/15487.py b/HJ_Seo/etc/15487.py deleted file mode 100644 index 4a0854c..0000000 --- a/HJ_Seo/etc/15487.py +++ /dev/null @@ -1,229 +0,0 @@ -# A[j]-A[i]+A[l]-A[k] -''' -원하는거.. -작,크,작,크 순서중에 재일 양질의 수. - -''' - -''' -# # test용 -# import time -# import random - -# n = 300 -# nums = [] -# for i in range(300): -# nums.append(random.randint(1,10000)) - -# print(n,nums) -''' - -# from sys import stdin -# from math import inf -# n = int(stdin.readline()) -# nums = list(map(int,stdin.readline().strip().split())) - -# start_time = time.time() ##################################### -# def getMax(lst): -# result = -inf -# for i in range(0,len(lst)-1): -# for j in range(i+1,len(lst)): -# result = max(result,lst[j]-lst[i]) - -# return result - -# result = -inf -# for i in range(1,n-1): -# front = getMax(nums[:i]) -# back = getMax(nums[i:]) -# result = max(result,front + back) - -# print(result) -# print('case1 =',time.time()-start_time) -#100만개의 숫자가 들어가있는 케이스가 시간초과..,, -# default code. - - -# from sys import stdin -# from math import inf - -# def getMax2(lst,n): - -# def getMax(start,end): -# result = -inf -# for i in range(start,end-1): -# for j in range(i+1,end): -# result = max(result,lst[j]-lst[i]) - -# return result - -# result = -inf -# lst = tuple(lst) -# front_max = lst[1] -# front_min = lst[0] -# check_max_ord = 1 -# check_min = [lst[0],0] - -# for i in range(2,n-1): -# back = getMax(i,n) -# # print('back = ',back) -# # print('front =',front_max - front_min) -# if min(front_min,check_min[0]) >= lst[i-1]: -# check_min = [lst[i-1],i-1] - -# if front_max <= lst[i-1] and check_min[1] check_min[1]: -# front_min = check_min[0] - -# result = max(result,front_max-front_min + back) - -# return result - -# n = int(stdin.readline()) -# nums = map(int,stdin.readline().strip().split()) - -# ''' -# # start_time = time.time() ################################################################### -# ''' - -# result = getMax2(nums,n) - -# print(result) -# ''' -# print('case2 =',time.time()-start_time) ############################################################## -# ''' -# 마찬가지로 시간초과.. getMax가 문제인듯.. 재일 빠르긴 함.. -# 200개 기준 0.7초, 300개만 되어도 2.6초가 걸림. - - -# from sys import stdin -# from math import inf - -# n = int(stdin.readline()) -# nums = tuple(map(int,stdin.readline().strip().split())) - -# start_time = time.time() ################################################### - -# result = -inf -# for i in range(1,n-2): -# for j in range(i+1,n-1): -# for k in range(j+1,n): -# b = min(nums[:i]) -# a = max(nums[i:j]) -# d = min(nums[j:k]) -# c = max(nums[k:]) -# result = max(result,a-b+c-d) - -# print(result) -# print('case3 =',time.time()-start_time) -# 가장 무식한 방법.. 물론 결과는 나오지만 시간은?? 100개기준 case1의 3배..X - -# ==================================================================================================== -#case_divide_prob.. max와 min을 구하는 것 자체는 시간이 엄청 짧게 걸림.(길이 100만개짜리 list 기준으로 합해서 0.01초?, -# index를 통해 정보를 찾는 것 역시 쉬움.(정말 적게 시간이 들어감.) -# but 받는거는 한 6~7초정도 걸림.(신경쓸거 x)) -# case4. -''' -투스탭 재귀함수로 푸는 것이 맞아보임. -길이가 50 이하인 케이스에 대해서 case2를 돌릴까..? -최댓값이 항상 기준이 되야하나..?.. -n,lst = input. - -if len(lst) == 4: - print(lst[1]-lst[0]+lst[3]-lst[2]) - exit(0) - -min, max = min(lst),max(lst) - -if min == max: - print(0) - exit(0) - - -def local_max_min(lst): - max_num = max(lst) - min_num = min(lst) - max_idx = lst.index(max_num) - min_dix = lst.index(min_num) - - if max_num == min_num or max_idx < min_dix: - return False - else: - return max_num-min_num - -first_dif = -inf -second_dif = -inf - -# 같은 케이스는 최상위에서 reject.(단일숫자만 들어가있는 경우.) -# 길이가 4인 케이스도 최상위에서. -# Thus, 판별할 것들은 길이가 5 이상인 최소 하나의 숫자가 다른 케이스들. - -if min_idx < max_idx: - min 혹은 max가 무시되어야 하는 케이스는..? min: (1),(2),(3)에 각각 숫자가 없는 케이스에서 발생. - worse case: 98 0 7 4 99 10 --> 7-0 + 99-4 - gen : min((1))>min(lst) - - ~(1)~ min ~(2)~ max ~(3)~ - case_a = -inf - case_b = -inf - case_c = -inf - if len((1))>=2: - - if min_idx = 1, - (2)case, (3)case 비교. - elif max_idx = -1, - (1)case, (2)case 비교. - or abs(max_idx-min(idx)) == 1: - (1)case, (3)case 비교. # 어디든 or로 들어가는게 가능하게 쓰기. -# maybe every case checked & done(easy?XX). - -elif max_idx < min_idx: - ~(1)~ max ~(2)~ min ~(3)~ - if max_idx != 0: - first = min((1)) - - if min_dix != -1: - last = max((3)) - but if (ex. max == 100000, min((1)) = 99990),but max((2)) = 99999,min((2)) = 1 & min((2))_idx < max((2))_idx..? (WMA min = 0..) - - - -worst case... 5 4 3 2 1.(단조감소.) - -~~~~ -print(first_dif+second_dif) - -''' - - - -from sys import stdin - - -n = int(stdin.readline()) #n>=4 -nums = tuple(map(int,stdin.readline().strip().split())) - -if len(nums) == 4: - print(nums[1]-nums[0]+nums[3]-nums[2]) - exit(0) - -max_num = max(nums) -min_num = min(nums) - -if max_num == min_num: #모든 수가 같다는 뜻. - print(0) - exit(0) - -max_ind = nums.index(max_num) -min_ind = nums.index(min_num) - -if max_ind < min_ind : - first = min(nums[:max_ind]) - last = max(nums[min_ind+1:]) - # 2 ~~ 4 ~~ 1 ~~ 3 이경우 1가지..? -else: - # ~(1)~ 1 ~(2)~ 4 ~(3)~ - #3가지 비교. - print(2) \ No newline at end of file diff --git a/HJ_Seo/etc/15760.py b/HJ_Seo/etc/15760.py deleted file mode 100644 index f082aeb..0000000 --- a/HJ_Seo/etc/15760.py +++ /dev/null @@ -1,87 +0,0 @@ -''' -1 5 3 8 2, 1 -1 3 5 2 8, 2 -1 3 2 5 8, 3 -1 2 3 5 8, 4 .. return -''' - -# n = int(input()) -# lst = [int(input()) for _ in range(n)] - -# leng = len(lst)-1 -# last = sorted(lst.copy()) -# result = 0 - -# while lst != last: -# result += 1 -# print(lst) -# for i in range(leng): -# if lst[i+1] < lst[i]: -# tmp = lst[i+1] -# lst[i+1] = lst[i] -# lst[i] = tmp - -# print(lst) -# print(result) - -# ! initial code. - -# lst = [] -# while True: -# try: -# lst.append(int(input())) -# except: -# break - -# leng = len(lst) -# last = sorted(lst.copy()) -# result = 0 # 항상 한번은 돈다... 아닌듯.. 그런데 틀렸네?? - -# lst_num = set(lst) -# num_idx_dict = dict() -# num_idx_dict_last = dict() - -# for i in range(leng): -# if lst[i] not in num_idx_dict: -# num_idx_dict[lst[i]] = [] -# num_idx_dict[lst[i]].append(i) - -# if last[i] not in num_idx_dict_last: -# num_idx_dict_last[last[i]] = [] -# num_idx_dict_last[last[i]].append(i) - -# for i in lst_num: -# num_idx_dict[i] = max(num_idx_dict[i]) -# num_idx_dict_last[i] = max(num_idx_dict_last[i]) -# result = max(result,num_idx_dict[i] - num_idx_dict_last[i]) - -# # print(num_idx_dict) -# # print(num_idx_dict_last) - -# print(result) - -# ! second... fail. - -n = int(input()) -lst = [int(input()) for _ in range(n)] - -leng = len(lst) -last = sorted(lst) -result = 0 - -num_idx_dict = dict() -num_idx_dict_last = dict() - -for i in range(leng): - num_idx_dict[lst[i]] = i - num_idx_dict_last[last[i]] = i - -for i in num_idx_dict: - result = max(result,num_idx_dict[i] - num_idx_dict_last[i]) - -# print(num_idx_dict) -# print(num_idx_dict_last) - -print(result+1) - -# ! third.. fail... fix. claer.. 첫 번째 수는 lst의 갯수더라... 아오 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ diff --git a/HJ_Seo/etc/15829.py b/HJ_Seo/etc/15829.py deleted file mode 100644 index 4ff760f..0000000 --- a/HJ_Seo/etc/15829.py +++ /dev/null @@ -1,14 +0,0 @@ -n = int(input()) - -arr = input() -r = 1 - -result = 0 - -for i in arr: - result += (ord(i)-96)*r - r *= 31 - if r > 1234567891: - r %= 1234567891 - -print(result%1234567891) \ No newline at end of file diff --git a/HJ_Seo/etc/1620.py b/HJ_Seo/etc/1620.py deleted file mode 100644 index ad415c4..0000000 --- a/HJ_Seo/etc/1620.py +++ /dev/null @@ -1,13 +0,0 @@ -from sys import stdin - -N,M = map(int,stdin.readline().strip().split()) -pok_dict = dict() -for i in range(1,N+1): - x = stdin.readline().strip() - pok_dict[str(i)] = x - pok_dict[x] = i - -while M != 0: - print(pok_dict[stdin.readline().strip()]) - - M -= 1 diff --git a/HJ_Seo/etc/16400.py b/HJ_Seo/etc/16400.py deleted file mode 100644 index a0a81c4..0000000 --- a/HJ_Seo/etc/16400.py +++ /dev/null @@ -1,38 +0,0 @@ -''' -2 --> 1 : 2 -3 --> 1 : 3 -4 --> 1 : 2+2 -5 --> 2 : 3+2 5 -6 --> 2 : 3+3 2+2+2 -7 --> 3 : 7 5+2 3+2+2 -8 --> 3 : 5+3 3+3+2 2+2+2+2 -9 --> 4 : 7+2 5+2+2 3+3+3 3+2+2+2 -10 --> 5 : 7+3 5+5 5+3+2 3+3+2+2 2+2+2+2+2 -11 --> 6 : 11 7+2+2 5+3+3 5+2+2+2 3+3+3+2 3+2+2+2+2 -... -30 --> 23+7 23+5+2 23+3+2+2 19+7+2+2 19+5+3+3 19+5+2+2+2 17+ - -''' -n = int(input()) - -Prime = [2] - -for i in range(3,n+1): - for j in Prime: - if i%j == 0: - break - - else: - Prime.append(i) - -# from others.. -dp = [0 for _ in range(n+1)] -dp[0] = 1 -for p in Prime: - for i in range(p, n+1): - dp[i] = (dp[i] + dp[i-p]) % 123456789 - -print(dp[-1]) - -#! python으로 안돌아감, pypy3로 통과. - \ No newline at end of file diff --git a/HJ_Seo/etc/1654.py b/HJ_Seo/etc/1654.py deleted file mode 100644 index 7b43114..0000000 --- a/HJ_Seo/etc/1654.py +++ /dev/null @@ -1,33 +0,0 @@ -from sys import stdin - -n, need = map(int,stdin.readline().strip().split()) - -lopes = [int(stdin.readline().strip()) for _ in range(n)] - -stt = max(lopes) - -def cnt_sum(lopes,n,leng): - sum = 0 - for i in range(n): - sum += lopes[i]//leng - - return sum - -leng_sum = 1 -while need > leng_sum: - stt = stt//2 - leng_sum = cnt_sum(lopes,n,stt) - -temp = stt//2 -while True: - leng_sum = cnt_sum(lopes,n,stt+temp) - if need > leng_sum: - temp = temp//2 - # print(temp) - else: - stt += temp - - if temp == 0: - break - -print(stt) \ No newline at end of file diff --git a/HJ_Seo/etc/1662(notcomp).py b/HJ_Seo/etc/1662(notcomp).py deleted file mode 100644 index 1cd3c50..0000000 --- a/HJ_Seo/etc/1662(notcomp).py +++ /dev/null @@ -1,45 +0,0 @@ -# print(len("11777777777777777777777777")) -# 새로운 문자열? ( -- 어차피 짧아서...) - -string = input() - -small = [] #( 위치. -new_str = "" -for i in range(len(string)): - new_str += string[i] - - if string[i] == "(": - small.append(i) - - elif string[i] == ")": #elif를 쓴 이유는 if를 썼을 때 문장보다 메모리 처리속도가 좀 더 적게 들기 때문.(매우 조금 효율적) - lastone = small.pop() #마지막 (의 위치 - mull = int(string[lastone-1]) #마지막( 바로 앞의 정수. done.. - # print('제거되는 곳..',new_str[lastone-1:]) - temp = new_str[lastone+1:-1] #괄호 안쪽의 숫자 - new_str = new_str[:lastone-1] # (바로 앞의 곱셈수까지 제거 - # print('제거한 후 남은곳..',new_str) - # print('nul과 temp : ',mull,'/',temp) - # print('new = ',new_str) - - new_str += temp*mull - - # print(new_str) -print(len(new_str)) -#백준(1662번)에서는 메모리 초과...ㅋㅋㅋㅋㅋㅋㅋㅋ https://www.acmicpc.net/problem/1662 - - -# 1 -# 11 -# 11( -# 11(18 -# ... -# 11(18(72( -# 11(18(72(7 -# 11(18(72(7) -# - 11(18(777 -# 11(18(777) -# - 11(1777777777777777777777777 -# 11(1777777777777777777777777) -# - 11777777777777777777777777 -# ... -# ~~ string end & cnt. \ No newline at end of file diff --git a/HJ_Seo/etc/16861.py b/HJ_Seo/etc/16861.py deleted file mode 100644 index c2d175f..0000000 --- a/HJ_Seo/etc/16861.py +++ /dev/null @@ -1,12 +0,0 @@ -n = input() - -while True: - sum = 0 - for i in n: - sum += int(i) - - if int(n) % sum == 0: - print(n) - break - - n = str(int(n)+1) \ No newline at end of file diff --git a/HJ_Seo/etc/17103.py b/HJ_Seo/etc/17103.py deleted file mode 100644 index 4df4c9b..0000000 --- a/HJ_Seo/etc/17103.py +++ /dev/null @@ -1,20 +0,0 @@ -# https://www.acmicpc.net/problem/17103 - -from sys import stdin - -Prime = [False,False] + [True for _ in range(1000000)] -for i in range(1000000): - if Prime[i] == True: - for j in range(2*i,1000000,i): - Prime[j] = False - -cases = int(stdin.readline().strip()) - -for _ in range(cases): - case = 0 - num = int(stdin.readline().strip()) - for i in range(2,num//2+1): - if Prime[i] and Prime[num-i]: - case += 1 - - print(case) \ No newline at end of file diff --git a/HJ_Seo/etc/1715.py b/HJ_Seo/etc/1715.py deleted file mode 100644 index 1d94f52..0000000 --- a/HJ_Seo/etc/1715.py +++ /dev/null @@ -1,19 +0,0 @@ -import heapq - -n = int(input()) - -q = [] -for _ in range(n): - heapq.heappush(q,int(input())) - -if n == 1: - print(heapq.heappop(q)) - exit() - -result = 0 -for _ in range(n-1): - a = heapq.heappop(q) - b = heapq.heappop(q) - result += a+b - heapq.heappush(q,a+b) -print(result) diff --git a/HJ_Seo/etc/17163_pyX.py b/HJ_Seo/etc/17163_pyX.py deleted file mode 100644 index 7e8827d..0000000 --- a/HJ_Seo/etc/17163_pyX.py +++ /dev/null @@ -1,26 +0,0 @@ -from sys import stdin - -N,mod = map(int,input().strip().split()) - -# inital code. 역시 시간초과가 나오네... #! python 및 pypy로 돌아가지 않음. -lst=[] - -def checknum(lst,mod): - for i in range(len(lst)): - if len(set(lst[i:])) != mod: - break - return len(lst) - i + 1 - -for _ in range(N): - run = stdin.readline() - - if run[0] == '1': - lst.append(int(run[2:])%mod) - elif run[0] == '2' and len(lst)>0: - lst.pop() - elif run[0] == '3': - if len(set(lst)) != mod: - print(-1) - else: - print(checknum(lst,mod)) - \ No newline at end of file diff --git a/HJ_Seo/etc/17285.py b/HJ_Seo/etc/17285.py deleted file mode 100644 index 9e8df99..0000000 --- a/HJ_Seo/etc/17285.py +++ /dev/null @@ -1,23 +0,0 @@ -n = input() - -checknum = 1 -while True: - n_change = '' - for i in n[:8]: - n_change += chr(ord(i) ^ checknum) - - if n_change == 'CHICKENS': - # print(checknum) - break - - checknum += 1 - -n_before = 'CHICKENS' -for i in n[8:]: - n_before += chr(ord(i) ^ checknum) - -print(n_before) - - -# ! 이게 왜 정답이야???... -# for x in input():print(end=chr(ord(x)^22)) \ No newline at end of file diff --git a/HJ_Seo/etc/17366_notcomp.py b/HJ_Seo/etc/17366_notcomp.py deleted file mode 100644 index b47a128..0000000 --- a/HJ_Seo/etc/17366_notcomp.py +++ /dev/null @@ -1,111 +0,0 @@ -# d1 -# S와 T로 나눌 수 있다는 설명.. arr를 쪼갤 방법을 생각해보자.. -# ex. arr == ST.. then, s in S & T in T t-s = t-T[0] + S[-1]-s + 1 -# index단위로 S와 T를 구분할 수 있을 것 같은데.. -# 현재 코드는 돌아가지 않을 가능성이 높다..!.. space의 floor을 체크한 상태로 나누었기 때문. - - -from sys import stdin -import math - -def check_min(start,end,portal,result): - if abs(end - start) == 2: - return 2 - - for st,en in portal.items(): - if abs(st-start)+abs(end-en)+2 < result: - # print(st,en) - result = abs(st-start)+abs(end-en) + check_min(st,en,portal,result) - - return result - -def check_space(start,end,portals,STdiff): - # start와 end는 항상 정방향으로. - if start > end: - temp = start - start = end - end = temp - - result = math.inf - interval_space = [] - - for i,start_interval,end_interval in enumerate(STdiff.items()): - - # 만약 start와 end 가 한 space 안에 있다면 space 내에서 계산하기. - if (start_interval <= start) and (end <= end_interval): - result = check_min(start,end,portals[i],result) - return result - - # 만약 아니라면.. - elif start_interval <= start: - if end_interval < end: - break - - interval_space.append([i,start_interval,end_interval]) - - # start가 들어있는 space의 start와 끝 사이의 min값 + end가 들어있는 space의 end와 space의 시작 사이의 min값 + 스페이스 점프 횟수 더해주기. - result = check_min(start,interval_space[0][2],portals[interval_space[0][0]],result) - + check_min(interval_space[-1][1],end,portals[interval_space[-1][0]],result) - + 2*(len(interval_space) - 2) - - #space 사이의 모든 간격 더해주기. - for i in range(1,len(interval_space)): - result += interval_space[i][1] - interval_space[i-1][2] - - return result - - -N,Q = map(int,input().strip().split()) -arr = stdin.readline() - -open = [] -portals = [] -STdiff = {} -# STinterval = [] -portal = {} -for i in range(N): - if arr[i] == '(': - open.append(i) - elif arr[i] == ')': - j = open.pop() - - if abs(i-j) <=2: - continue - # 포탈의 길이가 2 이하라면 안씀.. 고려대상에서 제외. - else: - portal[min(i,j)] = max(i,j) - # key값이 무조껀 앞선 수. - - if len(open)==0: - STdiff[min(i,j)] = max(i,j) - portals.append(portal) - -# print(STdiff) -# testcase: STdiff == {1: 11} -# hard counter case.. STdiff == {1: 11, 14: 59, 60: 95} -# 공백공간의 문제. - -for i in range(Q): - start, end = map(int,stdin.readline().strip().split()) - if abs(start-end)<=2: - print(abs(start-end)) - else: - print(check_space(start-1,end-1,portal,STdiff)) - # 이제 탐색을 해보자. 0부터 시작이므로 각각 1을 뺀 값을 input으로 넣어줌. - - -""" -input : -12 3 -.(.()..(.).) -7 10 -11 1 -4 9 - -output : -3 -4 -5 - -# 예시는 맞음. but 시간초과.. -""" \ No newline at end of file diff --git a/HJ_Seo/etc/17386_notcomp.py b/HJ_Seo/etc/17386_notcomp.py deleted file mode 100644 index 92d3ab7..0000000 --- a/HJ_Seo/etc/17386_notcomp.py +++ /dev/null @@ -1,15 +0,0 @@ -# https://www.acmicpc.net/problem/17386 - -x1,y1,x2,y2 = map(int,input().split()) -x3,y3,x4,y4 = map(int,input().split()) - -x1,x2 = min(x1,x2),max(x1,x2) -y1,y2 = max(y1,y2),min(y1,y2) -x3,x4 = min(x3,x4),max(x3,x4) -y3,y4 = min(y3,y4),max(y3,y4) - -if (x2-x1)*(y4-y3) == (x4-x3)*(y2-y1): #평행 case. - print(0) -else: - 1 -# print(0) if (x2-x1)*(y4-y3) == (x4-x3)*(y2-y1) else print(1) # 직선이 겹치면.. diff --git a/HJ_Seo/etc/17404.py b/HJ_Seo/etc/17404.py deleted file mode 100644 index c96bce6..0000000 --- a/HJ_Seo/etc/17404.py +++ /dev/null @@ -1,22 +0,0 @@ -from sys import stdin - -n = int(stdin.readline().strip()) - -house = [list(map(int,stdin.readline().strip().split())) for _ in range(n)] - - - -# ! XXXXXXXX -''' -3 -2 100 100 -100 100 100 -1 100 100 -==> 201 (100, 100, 1) - -3 -26 40 83 -49 60 57 -13 89 99 -==> 110(40, 57, 13) -''' \ No newline at end of file diff --git a/HJ_Seo/etc/17615.py b/HJ_Seo/etc/17615.py deleted file mode 100644 index f700beb..0000000 --- a/HJ_Seo/etc/17615.py +++ /dev/null @@ -1,6 +0,0 @@ -from sys import stdin - -n = stdin.readline() -rb = stdin.readline().rstrip() - -print(min(rb.rstrip('R').count('R'),rb.rstrip('B').count('B'),rb.lstrip('R').count('R'),rb.lstrip('B').count('B'))) \ No newline at end of file diff --git a/HJ_Seo/etc/1769.py b/HJ_Seo/etc/1769.py deleted file mode 100644 index 0569899..0000000 --- a/HJ_Seo/etc/1769.py +++ /dev/null @@ -1,61 +0,0 @@ -''' -after one step, num <= 9000000.. -8999999 -62 -8 -''' - -import re -from sys import stdin -# import time - -num = re.sub('0','',stdin.readline().strip()) - -def cnt_change_num(num): - cnt = 0 - while True: - if len(num) == 1: - print(cnt) - print("YES") if num in ['3','6','9'] else print("NO") - return - - cnt += 1 - tmp = 0 - tmp2 = 0 - for i in range(1,10): - x = num.count(str(i)) - tmp += i*x - tmp2 += x - if tmp2 == len(num): - break - - num = str(tmp) - -cnt_change_num(num) - -# ! 1번. done.. 한큐에 성공.. 그런데 왜 이게 정답률이 30%이지..?;; - -# def cnt_change_num2(num): -# cnt = 0 -# while True: -# if len(num) == 1: -# print(cnt) -# print("YES") if num in ['3','6','9'] else print("NO") -# return - -# cnt += 1 -# tmp = 0 -# for i in num: -# tmp += int(i) - -# num = str(tmp) - -# # ! 2번. - -# stt_time = time.time() -# cnt_change_num(num) -# print(time.time()-stt_time) - -# stt_time = time.time() -# cnt_change_num2(num) -# print(time.time()-stt_time) \ No newline at end of file diff --git a/HJ_Seo/etc/18054.py b/HJ_Seo/etc/18054.py deleted file mode 100644 index 94a084e..0000000 --- a/HJ_Seo/etc/18054.py +++ /dev/null @@ -1,36 +0,0 @@ -# https://www.acmicpc.net/problem/18054 - -from sys import stdin - -cases = int(stdin.readline().strip()) - -vir_arr = [] -anti_vir_arr = [] -for i in range(cases): - dna = stdin.readline().strip() - leng = len(dna) - for i in range(1,leng//2+1): - if leng%i == 0 and dna[:i]*(leng//i) == dna: - vir_arr.append(i) - break - else: - vir_arr.append(leng) - -for i in range(cases): - dna = stdin.readline().strip() - leng = len(dna) - for i in range(1,leng//2+1): - if leng%i == 0 and dna[:i]*(leng//i) == dna: - anti_vir_arr.append(i) - break - else: - anti_vir_arr.append(leng) - -vir_arr = sorted(vir_arr) -anti_vir_arr = sorted(anti_vir_arr) - -result = 0 -for i in range(len(vir_arr)): - result += (vir_arr[i]-anti_vir_arr[i])**2 - -print(result) diff --git a/HJ_Seo/etc/18111_notcomp.py b/HJ_Seo/etc/18111_notcomp.py deleted file mode 100644 index eab6551..0000000 --- a/HJ_Seo/etc/18111_notcomp.py +++ /dev/null @@ -1,35 +0,0 @@ -# 마크문제 -from sys import stdin - -N,M,B = map(int,input().strip().split()) - -ground = [] -for i in range(N): - ground += list(map(int,stdin.readline().strip().split())) -# 땅의 모양이 일렬이든 아니든 계산에는 상관이 없기 때문. - - -#! 아마 아래꺼를 수정해야 할 가능성이 높다. 블럭을 깰 때의 시간이 블록을 만들 때보다 더 길기 때문. B를 조정해줘야하나??... -sum_ground = sum(ground) -totalbound = N*M - -aim_height = sum_ground//totalbound + 1 -# 첫 땅의 평균 높이(기준) --- 땅을 최소로 깨기 위함. - -## 게산의 영역. -need_block = aim_height*totalbound - sum_ground - -while need_block > B: - if aim_height == 0: - break - - aim_height -= 1 - need_block = aim_height*totalbound - sum_ground -#두번째 출력값 aim_height. - -time = 0 -for i in ground: - time += (aim_height-i) if i < aim_height else 2*(i-aim_height) -#첫 번째 출력값 time. - -print(time,aim_height) \ No newline at end of file diff --git a/HJ_Seo/etc/18665_notcomp.py b/HJ_Seo/etc/18665_notcomp.py deleted file mode 100644 index 253e3ab..0000000 --- a/HJ_Seo/etc/18665_notcomp.py +++ /dev/null @@ -1,21 +0,0 @@ -# 1. target을 만들 수 있는 x,y를 우선 찾기. z = x**2 - y -# 2. 각각의 x,y에 대해 x_1,y_1,x_2,y_2를 찾기. -# 3. 1,2,3으로 모두 만들 수 있을때까지.. -# 4. 차례대로 x_n y_n \n x_n-1 y_n-1 -# ...... 프린트. - -# -import math - -def get_xy(n): - x = int(math.sqrt(n))+1 - y = n - x**2 - return x,y - -S = [1,2,3] - -n = int(input()) -aim = [n] - -x,y = get_xy(n) - diff --git a/HJ_Seo/etc/18729.py b/HJ_Seo/etc/18729.py deleted file mode 100644 index fc99e2d..0000000 --- a/HJ_Seo/etc/18729.py +++ /dev/null @@ -1,14 +0,0 @@ -# https://www.acmicpc.net/problem/18729 - -from sys import stdin - -case = int(input()) - -for _ in range(case): - n,k = map(int,stdin.readline().strip().split()) - nums = sorted(list(map(int,stdin.readline().strip().split()))) - - if k == 0: - print(sum(nums)) - else: - print(max(sum(nums[:n-k]),nums[-1])) \ No newline at end of file diff --git a/HJ_Seo/etc/18821_pyX_why.py b/HJ_Seo/etc/18821_pyX_why.py deleted file mode 100644 index 9bcdfbb..0000000 --- a/HJ_Seo/etc/18821_pyX_why.py +++ /dev/null @@ -1,71 +0,0 @@ -from sys import stdin - -cnter_ex = ( - { 906150257, 906150293 }, { 906150295, 906150307 }, { 906150311, 906150313 }, { 906150315, 906151515 }, - { 906151517, 906151575 }, { 906154583, 906154585 }, { 906154605, 906154605 }, { 906154609, 906154757 }, - { 906154763, 906154763 }, { 906154769, 906154769 }, { 906154789, 906154789 }, { 906154791, 906154791 }, - { 906154793, 906154793 }, { 906154825, 906154825 }, { 906154829, 906154829 }, { 906154837, 906154837 }, - { 906154857, 906154857 }, { 906154865, 906154881 }, { 906154885, 906154885 }, { 906154887, 906154887 }, - { 906154889, 906154889 }, { 906154891, 906154891 }, { 906154893, 906154893 }, { 906154895, 906154907 }, - { 906154909, 906154911 }, { 906154915, 906154927 }, { 906154947, 906154949 }, { 906180359, 906180361 }, - { 906180363, 906180363 }, { 906180365, 906180365 }, { 906180367, 906180369 }, { 906180371, 906180373 }, - { 906180375, 906180375 }, { 906180391, 906180517 }, { 906180519, 906180519 }, { 906180525, 906180533 }, - { 906180537, 906180553 }, { 906180555, 906192697 }, { 906192847, 906192865 }, { 906192867, 906192903 }, - { 906192905, 906192905 }, { 906192907, 906192965 }, { 906192971, 906192971 }, { 906192979, 906192983 }, - { 906192985, 906193227 }, { 906193229, 906193233 }, { 906193245, 906193245 }, { 906193247, 906193247 }, - { 906193303, 906193303 }, { 906193419, 906193419 }, { 906193465, 906193465 }, { 906193475, 906193475 }, - { 906193477, 906193477 }, { 906194931, 906194931 }, { 906194933, 906194945 }, { 906194949, 906194949 }, - { 906194951, 906194967 }, { 906194979, 906194979 }, { 906195099, 906195099 }, { 906195109, 906195149 }, - { 906195151, 906195151 }, { 906195297, 906195297 }, { 906195299, 906195985 }, { 906195989, 906195989 }, - { 906196009, 906196009 }, { 906196011, 906196013 }, { 906196015, 906196015 }, { 906196045, 906196051 }, - { 906196053, 906196055 }, { 906196057, 906196071 }, { 906196077, 906196079 }, { 906196081, 906196081 }, - { 906196083, 906196091 }, { 906196099, 906208711 }, { 906208713, 906208713 }, { 906208731, 906208731 }, - { 906209041, 906209063 }, { 906209067, 906209067 }, { 906209069, 906209069 }, { 906209071, 906209223 }, - { 906209227, 906209227 }, { 906209233, 906209235 }, { 906209237, 906209237 }, { 906209241, 906209241 }, - { 906209243, 906209271 }, { 906209283, 906209283 }, { 906209285, 906477701 }, { 906477735, 906477811 }, - { 906477867, 906477867 }, { 906477869, 906477869 }, { 906477871, 906477899 }, { 906477901, 906477901 }, - { 906477903, 906477905 }, { 906477929, 906477931 }, { 906477933, 906477933 }, { 906477935, 906477935 }, - { 906477937, 906486639 }, { 906486805, 906486805 }, { 906486807, 906486807 }, { 906486817, 906486817 }, - { 906486819, 906486819 }, { 906486821, 906486831 }, { 906486843, 906486853 }, { 906486855, 906486855 }, - { 906486909, 906486913 }, { 906486917, 906486973 }, { 906486975, 906487001 }, { 906487005, 906487063 }, - { 906487065, 906487065 }, { 906487069, 906487069 }, { 906487071, 906487071 }, { 906487073, 906487077 }, - { 906487085, 906487085 }, { 906487087, 906487101 }, { 906487185, 906487185 }, { 906487187, 906487189 }, - { 906487191, 906487191 }, { 906487193, 906487193 }, { 906487195, 906487203 }, { 906487205, 906487205 }, - { 906487259, 906487259 }, { 906487261, 906487261 }, { 906487263, 906487263 }, { 906487271, 906487287 }, - { 906487933, 906487933 }, { 906487937, 906487937 }, { 906487949, 906487973 }, { 906487975, 906487993 }, - { 906487995, 906488001 }, { 906488003, 906488003 }, { 906488007, 906488007 }, { 906488009, 906488009 }, - { 906488023, 906488025 }, { 906488027, 906488065 }, { 906488067, 906488067 }, { 906488077, 906488079 } -) - -case = int(stdin.readline().strip()) - -if case == 0: - exit(0) - -while case != 0: - x = int(stdin.readline().strip()) - if x == 1: - print('E') - - elif x < 906150257: - print('O') - - elif x > 906488079: - print('O') - - else: - for i in range(136): - # print(i,min(cnter_ex[i]),max(cnter_ex[i])) - if x>=min(cnter_ex[i]) and x<=max(cnter_ex[i]): - print('E') - break - - elif x 1: -# if n%2 == 0: -# num += n//2 + 1 -# else: -# num += n//2 + 2 - -# not_use_max = n//2 - 1 -# # print(not_use_max) -# # break -# n = not_use_max//2 - 1 -# print(n) -# break - -# print(num) - -def calc(n): - if n<4: - return n - elif n<10: - return ((n+1)//2+1) - else: - return calc((n//2-3)//2)+(n+1)//2+1 - -print(calc(int(input()))) -# print(calc(10000000000)) -# print(calc(1000)) -# print(calc(10000)) -''' -10000000000 -6666666667 -if n < 4: - print(n) -elif n<10: - print((n+1)//2+1) -else: - print(P((n//2-1)//2)+(n+1)//2+1) --> (n//2-1)//2 요 숫자 이상쓰.. - -1 --> 1.. 1 -2 --> 12.. 2 -3 --> 123.. 3 -4 --> 234.. 3 -5 --> 2345.. 4 -6 --> 3456.. 4 -7 --> 34567.. 5 -8 --> 45678.. 5 -9 --> 456789.. 6 -10 --> 1 5~10.. 7 == P(1)+(10+1)//2+1 -11 --> 1 5~11.. 8 == P(1)+(11+1)//2+1 -12 --> 1 6~12.. 8 == P(1)+(12+1)//2+1 -13 --> 1 6~13.. 9 == P(1)+(13+1)//2+1 -14 --> 12 7~14.. 10 == P(2) -15 --> 12 7~15.. 11 -16 --> 12 8~16.. 11 -17 --> 12 8~17.. 12 -18 --> 123 9~18.. 13 P(3) -19 --> 123 9~19.. 14 -20 --> 123 10~20.. 14 -21 --> 123 10~21.. 15 -22 --> 234 11~22.. 15 -24 --> 234 12~24.. 16 - - - 1 3 5 7 9 11 13 15 17 19 21 23 - 12 - 4 8 12 16 20 24(xxx) - 2(6x) - 1 - 10(22x) 14 18 - 3 -''' \ No newline at end of file diff --git a/HJ_Seo/etc/1932.py b/HJ_Seo/etc/1932.py deleted file mode 100644 index 996c920..0000000 --- a/HJ_Seo/etc/1932.py +++ /dev/null @@ -1,21 +0,0 @@ -# https://www.acmicpc.net/problem/1932 - -from sys import stdin - -num = int(stdin.readline().strip()) -# lst = [[int(stdin.readline().strip())]] -lst = [] -for _ in range(num): - lst.append(list(map(int,stdin.readline().strip().split()))) - -for i in range(1,num): - for j in range(i+1): - if j == 0: - lst[i][j] += lst[i-1][j] - elif j == i: - lst[i][j] += lst[i-1][-1] - else: - lst[i][j] += max(lst[i-1][j-1:j+1]) - # print(lst[i]) - -print(max(lst[-1])) diff --git a/HJ_Seo/etc/19658_notcomp.py b/HJ_Seo/etc/19658_notcomp.py deleted file mode 100644 index 770ecf9..0000000 --- a/HJ_Seo/etc/19658_notcomp.py +++ /dev/null @@ -1,50 +0,0 @@ -# https://www.acmicpc.net/problem/19658 -# ! 이거 뭔지 모르겠다.. C로 풀어야하나? - -from sys import stdin,stdout -n = int(stdin.readline().strip()) - -diffs = tuple(map(int,stdin.readline().strip().split())) - -def get_max(tup,n): - x = 1 - lst = [x] - for i in tup: - tmp = lst[-1]+i - lst.append(tmp) - - maxi = max(lst) - return maxi, lst.index(maxi) - -def get_init_num(tup,maxi,idx): - num = 0 - for i in range(idx): - num += tup[i] - - return maxi-num - -def make_num(init_num,tup): - lst = [init_num] - for i in tup: - lst.append(lst[-1]+i) - - return lst - -maxi,idx = get_max(diffs,n) - -if maxi != n: - stdout.write('-1') - exit(0) - -init_num = get_init_num(diffs,maxi,idx) - -lst = make_num(init_num,diffs) - -for i in lst[:-1]: - stdout.write(str(i)) - stdout.write(' ') -stdout.write(str(lst[-1])) - -''' -x를 시작이라 하자. then, nums = [x,x+1,x+4,x+2,x+3] return 2,0 (최대 수의 idx,최소 수의 idx.) -''' \ No newline at end of file diff --git a/HJ_Seo/etc/1966_done.py b/HJ_Seo/etc/1966_done.py deleted file mode 100644 index 20ed3e6..0000000 --- a/HJ_Seo/etc/1966_done.py +++ /dev/null @@ -1,98 +0,0 @@ -# from sys import stdin - -# n = int(stdin.readline().strip()) - -# for i in range(n): -# leng, idx = map(int,stdin.readline().strip().split()) -# arr = [int(a) for a in stdin.readline().strip().split()] - -# maxi = max(arr) -# order = arr[idx] - -# if maxi == order: -# print(idx+1) -# continue - -# near_max_idx = -1 -# result = 0 - -# for i in range(9,order,-1): -# if arr.count(i) != 0: -# near_max_idx = arr[idx:].index(i) -# # print(near_max_idx) -# result += arr.count(i) - -# # print(arr.count(order),arr[idx+1:near_max_idx].count(order)) -# result += arr.count(order) - arr[idx+1:near_max_idx].count(order) - -# print(result) - -# ! 뭐땜시 틀렸는지 기억 안남.. - -from sys import stdin - -cases = int(stdin.readline().strip()) -# lst = [] -for _ in range(cases): - N,M = map(int,stdin.readline().strip().split()) - docu = tuple(map(int,stdin.readline().strip().split())) - target = sorted({i for i in set(docu) if i>=docu[M]},reverse=True) - # print('target =',target) - orders = [None]*N - order = 1 - last = 0 - tmp = 0 - - for i in target: - for j in range(last,N): - if docu[j] == i: - orders[j] = order - order += 1 - tmp = j - # print(orders) - - for j in range(0,last): - if docu[j] == i: - orders[j] = order - order += 1 - tmp = j - # print(orders) - - last = tmp - - print(orders[M]) -# lst.append(orders[M]) - -# lst2 = [] -# while True: -# try: -# lst2.append(int(input())) -# except: -# break - -# lst3 = [] -# for i in range(100): -# if lst[i] != lst2[i]: -# lst3.append(i) - -# print(lst) -# print(lst2) -# print(lst3) - - -''' - -4 -1 0 -5 -4 2 -1 2 3 4 -6 0 -1 1 9 1 1 1 -9 3 -4 3 2 2 3 5 2 1 3 - -output(차례대로) : 1, 2, 5, 7 -''' - - \ No newline at end of file diff --git a/HJ_Seo/etc/20419_notcomp.py b/HJ_Seo/etc/20419_notcomp.py deleted file mode 100644 index 6ff5b76..0000000 --- a/HJ_Seo/etc/20419_notcomp.py +++ /dev/null @@ -1,44 +0,0 @@ -from sys import stdin - -R,C,K = map(int,stdin.readline().strip().split()) -# move : U = up, D = down, R = right, L = left. - -floor = [stdin.readline().strip() for _ in range(R)] -di = {'U':(-1,0),'D':(1,0),'R':(0,1),'L':(0,-1)} #elt : d -choice = [K,K] # nbr of - clockwise_turn, counterclockwise_turn. -d = floor[0][0] - - - -# ! movement without using choice. -def movement(R,C,current,di,d): - # floor를 넘어가는 케이스. - # print(current,di[d]) - new_loc = (current[0]+di[d][0],current[1]+di[d][1]) - - if min(new_loc[0],new_loc[1]) < 0 or new_loc[0] >= R or new_loc[1] >= C: - return 0 # 땡! - - #도착했다면. - elif new_loc[0] == R and new_loc[1] == C: - return 1 - - #두 가지가 아닌 경우.. 즉, 다음턴! - else: - return new_loc - -result = (0,0) -while True: - result = movement(R,C,floor,result,di,d) - print(result) - - if result == 0: - print('No') - exit(0) - - if result == 1: - print('Yes') - exit(0) - - d = floor[result[0]][result[1]] - print(d) \ No newline at end of file diff --git a/HJ_Seo/etc/2042.py b/HJ_Seo/etc/2042.py deleted file mode 100644 index 4962df7..0000000 --- a/HJ_Seo/etc/2042.py +++ /dev/null @@ -1,101 +0,0 @@ -# from sys import stdin - -# N,M,K = map(int,stdin.readline().strip().split()) - -# nums = [int(stdin.readline().strip()) for _ in range(N)] - -# for _ in range(M+K): -# a,b,c = map(int,stdin.readline().strip().split()) -# if a == 1: -# nums[b-1] = c -# else: -# print(sum(nums[b-1:c])) - -#! not use_segment_tree code. - -from sys import stdin - -N,M,K = map(int,stdin.readline().strip().split()) - -nums = [int(stdin.readline().strip()) for _ in range(N)] - -segtree = [0]*20000000 # 6 log 10 <= 20 - -def inittree(idx,start,end): - if start == end: - segtree[idx] = nums[start] - return segtree[idx] - else: - segtree[idx] = inittree(2*idx,start,(start+end)//2) + inittree(2*idx+1,(start+end)//2+1,end) - return segtree[idx] -# inittree.. done. -inittree(1,0,N-1) - -def updatetree(idx,start,end,idx2,diff): - if idx2 < start or idx2 > end: - # ! start와 end가 idx와 같이 움직이기 때문에 변할지 말지를 결정하는 절대적인 기준(idx2)이 필요. - return - - # print('change idx =',idx) - segtree[idx] += diff - - if start!=end: - updatetree(idx*2,idx2,diff,start,(start+end)//2) - updatetree(idx*2+1,idx2,diff,(start+end)//2+1,end) - -# update.. done. - -# print(segtree[:30]) - -# b = 5 # idx2.. -# diff = -3 # 5가 2로 바뀌게. -# updatetree(1,b,diff,0,N-1) - -# print(segtree[:30]) - -def value_sum(idx,start,end,stt,ed): - if end < stt or ed < start: - return 0 - - elif stt <= start and end <= ed: - return segtree[idx] - - else: - return value_sum(idx*2,start,(start+end)//2,stt,ed) + value_sum(idx*2+1,(start+end)//2+1,end,stt,ed) - - -# print(segtree[:20]) -for _ in range(M+K): - a,b,c = map(int,stdin.readline().strip().split()) - if a == 1: - diff = c - nums[b-1] - nums[b-1] = c - updatetree(1,0,N-1,b-1,diff) - - else: - print(value_sum(1,0,N-1,b-1,c-1)) - - -''' -6 1 1 -1 -2 -3 -4 -5 -6 - -''' - - -''' -5 2 1 -1 -2 -3 -4 -5 -2 2 5 -1 5 2 -2 3 5 -''' \ No newline at end of file diff --git a/HJ_Seo/etc/21966_notcomp.py b/HJ_Seo/etc/21966_notcomp.py deleted file mode 100644 index 46d0462..0000000 --- a/HJ_Seo/etc/21966_notcomp.py +++ /dev/null @@ -1,18 +0,0 @@ -import re -x = re.finditer('a','aaasdf11.asdfsadfasdf.qwerqwer.') -for i in x: - print(i.span()[0]) -n = int(input()) -arr = input().strip() - -if n<=25: - print(arr) -else: - arrlst = arr.split('.') - # print(arrlst) - leng = 0 - for i in arrlst: - temp = len(i)+1 - - leng += temp - \ No newline at end of file diff --git a/HJ_Seo/etc/2250(notcomp).py b/HJ_Seo/etc/2250(notcomp).py deleted file mode 100644 index ee135fd..0000000 --- a/HJ_Seo/etc/2250(notcomp).py +++ /dev/null @@ -1,39 +0,0 @@ -#이진트리의 너비 - -# class Tree: -# def __init__(self,i,l,r): -# self.index = i -# self.left = l -# self.right = r - -# def addNode(self,i,l,r): -# if l == -1: -# l = None -# if r == -1: -# r = None - -# if self.index == None or self.index == i: -# self.index = i -# self.left = Tree(l,None,None) -# self.right = Tree(r,None,None) - -# nbr = int(input()) - -# t = Tree(None,None,None) - -# for _ in range(nbr): -# i,l,r = map(int,input().strip().split()) -# t.addNode(i,l,r) - -# #print(len(t)) length가 없다..?.. - -def Fact(n): - if type(n) != int: - print('정수를 입력해주세요.') - return - while n>0: - return n*Fact(n-1) - else: - return 1 - -print(Fact(5)) \ No newline at end of file diff --git a/HJ_Seo/etc/2263_notcomp.py b/HJ_Seo/etc/2263_notcomp.py deleted file mode 100644 index 3276d72..0000000 --- a/HJ_Seo/etc/2263_notcomp.py +++ /dev/null @@ -1,92 +0,0 @@ -# from sys import stdin - -# def both_to_pre(s1,s2): #s1: inorder, s2: postorder. -# if len(s1) <= 1: -# return s1 -# elif len(s2) <= 1: -# return s2 - -# root = s2[-1] -# root_index = s1.index(root) - -# left1 = s1[:root_index] -# left2 = s2[:root_index] -# right1 = s1[root_index+1:] -# right2 = s2[root_index:-1] - -# left = both_to_pre(left1,left2) -# right = both_to_pre(right1,right2) - -# return (root,) + left + right - -# n = input() -# s1 = tuple(map(str,stdin.readline().strip().split())) -# s2 = tuple(map(str,stdin.readline().strip().split())) - -# if __name__ == '__main__': -# if len(s1) == 1: -# print(s1) -# else: -# root = s2[-1] -# root_index = s1.index(root) - -# left1 = s1[:root_index] -# left2 = s2[:root_index] -# right1 = s1[root_index+1:] -# right2 = s2[root_index:-1] - -# left = both_to_pre(left1,left2) -# right = both_to_pre(right1,right2) - -# pre_lst = (root,) + left + right - -# print(' '.join(pre_lst)) - -#메모리 초과..?... --> list를 튜플로 바꿈. -# --> 메모리 초과2 --> sys.stdin 이용 + __main만 사용. -# --> 메모리 초과3 --> 검색을 통해 알게 된 사실.. 배열을 일일히 자르는 것은 매모리를 과도하게 소모.. 인덱스를 이용해서 만들자. -# -# AIM : s1,s2는 고정, 오로지 int index만을 이용해서 both_to_pre를 완성시키자..! - - -from sys import stdin - -def both_to_pre(s1,s2,s1_start,s1_end,s1_root_location,s2_start,s2_end,s2_root_location): #s1: inorder, s2: postorder. - if len(s1) <= 1: - return s1 - elif len(s2) <= 1: - return s2 - - root = s2[-1] - root_index = s1.index(root) - - left1 = s1[:root_index] - left2 = s2[:root_index] - right1 = s1[root_index+1:] - right2 = s2[root_index:-1] - - left = both_to_pre(left1,left2) - right = both_to_pre(right1,right2) - - return (root,) + left + right - -n = input() -s1 = tuple(map(str,stdin.readline().strip().split())) -s2 = tuple(map(str,stdin.readline().strip().split())) - -root = s2[-1] -s1_root_location = s1.index[root] -s2_root_location = s2.index[root] -s1_end = len(s2) - - -pre_lst = both_to_pre(s1,s2,s1_start,s1_end,s1_root_location,s2_start,s2_end,s2_root_location) - -print(' '.join(pre_lst)) - -''' -15 -8 9 4 2 10 5 11 /1 /12 6 13 3 14 7 15 -9 8 4 10 11 5 2 /12 13 6 14 15 7 3 /1 -output : 1 2 4 8 9 5 10 11 3 6 12 13 7 14 15 -''' \ No newline at end of file diff --git a/HJ_Seo/etc/23253.py b/HJ_Seo/etc/23253.py deleted file mode 100644 index 5ef9762..0000000 --- a/HJ_Seo/etc/23253.py +++ /dev/null @@ -1,12 +0,0 @@ -from sys import stdin - -N,M = map(int,stdin.readline().rstrip().split()) - -result = 'Yes' -for _ in range(2*M): - books = list(map(int,stdin.readline().rstrip().split())) - if books != sorted(books,reverse=True): - result = 'No' - break - -print(result) \ No newline at end of file diff --git a/HJ_Seo/etc/23330.py b/HJ_Seo/etc/23330.py deleted file mode 100644 index 1e6a3e3..0000000 --- a/HJ_Seo/etc/23330.py +++ /dev/null @@ -1,25 +0,0 @@ -# https://www.acmicpc.net/problem/23330 - -from sys import stdin - -n = int(stdin.readline().strip()) -nums = sorted(map(int,stdin.readline().strip().split()),reverse=True) - -num = 0 - -for i in range(n): - num += 2*(n-1-2*i)*nums[i] - -print(num) - -# print(5*8+4*4-2*4-8) - -''' -1,2,3,4,5.. - -5.. +9 -1 -4.. +7 -3 -3.. +5 -5 -2.. +3 -7 -1.. +1 -9 -''' diff --git a/HJ_Seo/etc/23587_notcomp.py b/HJ_Seo/etc/23587_notcomp.py deleted file mode 100644 index 9ae97db..0000000 --- a/HJ_Seo/etc/23587_notcomp.py +++ /dev/null @@ -1,30 +0,0 @@ -# ! 정수론 수학 문제... 어떻게 접근해야할 지 모르겠다. - -from sys import stdin,stdout - -n = int(input()) - -print(*range(1,n+1)), stdout.flush() - -random_set = tuple(map(int,stdin.readline().strip().split())) - - - -# for i in range(10): -# print(i) -# if i == 5: -# print ("Flushing buffer") -# sys.stdout.flush() -# time.sleep(1) - -# for i in range(10): -# print(i) -# if i == 5: -# print("Flushing buffer") -# sys.stdout.flush() - -# ? ==> output : -# ? 0 1 2 3 4 5 Flushing buffer -# ? 6 7 8 9 0 1 2 3 4 5 Flushing buffer -# ? 6 7 8 9 -# \ No newline at end of file diff --git a/HJ_Seo/etc/24039.py b/HJ_Seo/etc/24039.py deleted file mode 100644 index 55c9e9a..0000000 --- a/HJ_Seo/etc/24039.py +++ /dev/null @@ -1,20 +0,0 @@ -Prime = [2] - -for i in range(3,200): - for j in Prime: - if i%j == 0: - break - else: - Prime.append(i) - -Prime_square = [] - -for i in range(1,len(Prime)): - Prime_square.append(Prime[i-1]*Prime[i]) - -N = int(input()) - -for i in Prime_square: - if i>N: - print(i) - exit(0) diff --git a/HJ_Seo/etc/24268_notcomp.py b/HJ_Seo/etc/24268_notcomp.py deleted file mode 100644 index d8e74b7..0000000 --- a/HJ_Seo/etc/24268_notcomp.py +++ /dev/null @@ -1,32 +0,0 @@ -from itertools import permutations - -year, n = map(int,input().strip().split()) - -maxi = '' -for i in range(n-1,-1,-1): - maxi += str(i) - -# print(maxi) -# print(int(maxi,n)) - -if year > int(maxi,base = n): - print(-1) - exit(0) - -mini = '10' -for i in range(2,n): - mini += str(i) - -if year < int(mini,n): - print(int(mini,n)) - exit(0) - - -permut = tuple(permutations(maxi)) -# print(permut) -for i in range(len(permut)): - num = ''.join(permut[i]) - if year >= int(num,n): - # print(year,int(num,n)) - print(int(''.join(permut[i-1]),n)) - exit(0) \ No newline at end of file diff --git a/HJ_Seo/etc/24523.py b/HJ_Seo/etc/24523.py deleted file mode 100644 index 6be5f82..0000000 --- a/HJ_Seo/etc/24523.py +++ /dev/null @@ -1,16 +0,0 @@ -from sys import stdin - -num = int(stdin.readline().strip()) -lst = list(map(int,stdin.readline().strip().split())) -x = lst[0] -tmp = [] -start = 0 -for i in range(num): - if lst[i] != x: - tmp.extend([i+1]*(i-start)) - start = i - x = lst[i] - -tmp.extend([-1]*(num-start)) - -print(*tmp) \ No newline at end of file diff --git a/HJ_Seo/etc/25393_whats_the_prob.py b/HJ_Seo/etc/25393_whats_the_prob.py deleted file mode 100644 index c327e05..0000000 --- a/HJ_Seo/etc/25393_whats_the_prob.py +++ /dev/null @@ -1,102 +0,0 @@ -# https://www.acmicpc.net/problem/25393 - -# from sys import stdin - -# n = int(stdin.readline().strip()) -# sets = [tuple(map(int,stdin.readline().strip().split())) for _ in range(n)] - -# m = int(stdin.readline().strip()) - -# for i in range(m): -# a,b = map(int,stdin.readline().strip().split()) -# tmp1 = -1 -# tmp2 = 3000001 -# result = -1 -# for i in sets: -# if i == (a,b): -# result = 1 -# continue - -# elif i[0] == a: -# tmp1 = max(tmp1,i[1]) - -# elif i[1] == b: -# tmp2 = min(tmp2,i[0]) - -# if result == 1: -# print(1) -# elif tmp1 >= tmp2 and tmp1 >= b and a >= tmp2: -# print(2) -# else: -# print(-1) - - -# ! 시간초과. - -# from sys import stdin - -# n = int(stdin.readline().strip()) -# interv1 = dict() -# interv2 = dict() -# for _ in range(n): -# a,b = map(int,stdin.readline().strip().split()) -# if a not in interv1: -# interv1[a] = set() -# interv1[a].add(b) - -# if b not in interv2: -# interv2[b] = set() -# interv2[b].add(a) - -# m = int(stdin.readline().strip()) - -# for i in range(m): -# a,b = map(int,stdin.readline().strip().split()) - -# if a not in interv1 or b not in interv2: # a나 b가 시작에 없다면 -# print(-1) -# else: -# if b in interv1[a]: # [a,b]가 있는 경우. -# print(1) -# elif min(interv2[b]) <= a and b <= max(interv1[a]): #교집합이 존재하면. -# print(2) -# else: -# print(-1) - -# ! 이것도 시간 초과. - -from sys import stdin,stdout - -interv1 = dict() #시작 기준 dict -interv2 = dict() #끝 기준 dict - -n = int(stdin.readline().rstrip()) -for i in range(n): - a,b = map(int,stdin.readline().rstrip().split()) - if a not in interv1: - interv1[a] = {b} - else: - interv1[a].add(b) - - if b not in interv2: - interv2[b] = {a} - else: - interv2[b].add(a) - -m = int(stdin.readline().rstrip()) - -for i in range(m): - a,b = map(int,stdin.readline().rstrip().split()) - - try: - if b in interv1[a]: # [a,b]가 있는 경우. - stdout.write('1\n') - elif min(interv2[b]) <= a and b <= max(interv1[a]): #교집합이 존재하면. - stdout.write('2\n') - else: - stdout.write('-1\n') - except: - stdout.write('-1\n') # if a not in interv1 or b not in interv2: 대체. - - -# ! 아ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ 모르겠다ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ..... \ No newline at end of file diff --git a/HJ_Seo/etc/25395.py b/HJ_Seo/etc/25395.py deleted file mode 100644 index 91cf959..0000000 --- a/HJ_Seo/etc/25395.py +++ /dev/null @@ -1,53 +0,0 @@ -from sys import stdin - -N,S = map(int,stdin.readline().strip().split()) - -init_location = tuple(map(int,stdin.readline().strip().split())) -car_move = tuple(map(int,stdin.readline().strip().split())) - -def cars(loc,move,S): - tmp = {S} - left = loc[S-1] - move[S-1] - right = loc[S-1] + move[S-1] - - for i in range(S-2,-1,-1): - if loc[i] >= left: - tmp.add(i+1) - # print(i+1) - left = min(left,loc[i] - move[i]) - right = max(right,loc[i] + move[i]) - else: - break - - for i in range(S,N): - if loc[i] <= right: - tmp.add(i+1) - # print(i+1) - right = max(right,loc[i] + move[i]) - left = min(left,loc[i] - move[i]) - else: - break - - for i in range(S-2,-1,-1): - if loc[i] >= left: - tmp.add(i+1) - # print(i+1) - left = min(left,loc[i] - move[i]) - right = max(right,loc[i] + move[i]) - else: - break - - for i in range(S,N): - if loc[i] <= right: - tmp.add(i+1) - # print(i+1) - right = max(right,loc[i] + move[i]) - left = min(left,loc[i] - move[i]) - else: - break - - return tmp - -print(*cars(init_location,car_move,S)) - -# ! 고려해야 할 것!! --> 위치가 낮은데 연료량이 압도적으로 높아 비교대상보다 더 멀리 갈 수 있을 때. \ No newline at end of file diff --git a/HJ_Seo/etc/25418.py b/HJ_Seo/etc/25418.py deleted file mode 100644 index 98d4938..0000000 --- a/HJ_Seo/etc/25418.py +++ /dev/null @@ -1,61 +0,0 @@ -# https://www.acmicpc.net/problem/25418 -# 제한 1 ≤ A < K ≤ 1,000,000 - -# start,end = map(int,input().split()) - -# current = {start} -# done = set() -# num = 1 - -# while True: -# next = set() -# for i in current: -# x = i+1 -# if x not in done: -# next.add(x) -# done.add(x) - -# x = 2*i -# if x not in done: -# next.add(x) -# done.add(x) - -# if end in next: -# print(num) -# exit() - -# current = next -# num += 1 - -# ! 안봐도 비디오인 시간초과. - -start,end = map(int,input().split()) - -dep = [None for _ in range(end+1)] - -dep[start] = 0 -num = 1 -tmp = {start} - -while True: - if dep[-1] != None: - print(dep[-1]) - break - - tmp2 = set() - - for i in tmp: - if i+1<=end and dep[i+1] == None: - dep[i+1] = num - tmp2.add(i+1) - - if 2*i<=end and dep[2*i] == None: - dep[2*i] = num - tmp2.add(2*i) - - # if len(tmp2) == 0: - # print(tmp) - # break # ! check용 - - tmp = tmp2 - num += 1 diff --git a/HJ_Seo/etc/25421.py b/HJ_Seo/etc/25421.py deleted file mode 100644 index 45291a0..0000000 --- a/HJ_Seo/etc/25421.py +++ /dev/null @@ -1,21 +0,0 @@ -# https://www.acmicpc.net/problem/25421 - -num = [1 for _ in range(9)] - -n = int(input()) - -while n != 1: - tmp = [] - for i in range(9): - tmp.append(sum(num[max(0,i-2):min(10,i+3)])%987654321) - num = tmp - n -= 1 - -print(sum(num)%987654321) - - - -''' -1 1 1 1 1 1 1 1 1 - 1 -3 4 5 5 5 5 5 4 3 - 2 -''' \ No newline at end of file diff --git a/HJ_Seo/etc/25426.py b/HJ_Seo/etc/25426.py deleted file mode 100644 index 5dedf2a..0000000 --- a/HJ_Seo/etc/25426.py +++ /dev/null @@ -1,17 +0,0 @@ -from sys import stdin - -num = int(stdin.readline().strip()) -result = 0 -arr = [] -for _ in range(num): - a,b = map(int,stdin.readline().strip().split()) - result += b - arr.append(a) - -arr.append(0) -arr = sorted(arr) - -for i in range(1,num+1): - result += i*arr[i] - -print(result) \ No newline at end of file diff --git a/HJ_Seo/etc/2579.py b/HJ_Seo/etc/2579.py deleted file mode 100644 index a7bed36..0000000 --- a/HJ_Seo/etc/2579.py +++ /dev/null @@ -1,32 +0,0 @@ -''' -P(i) : i번째 계단을 오를 때 최대합. -Q(i) : i번째 계단을 오를 때 직전에 두칸을 점프한 최대합. -R(i) : i번째 계단을 오를 떄 직전에 연속으로 밝고 올라온 최대합. -==> P = max(Q,R) -Q(n) = P(n-2) + stare[n] -R(n) = Q(n-1)+stare[n] = P(n-3)+stare(n-1)+stare[n] - -P(n) = max(Q(n),R(n)) = max(P(n-2),P(n-3)+stare(n-1)) + stare[n] - - -''' -def max_sum(lst): - if len(lst) <= 2: - return sum(lst) - - height = len(lst) - stare_sum = [0,lst[0],lst[0]+lst[1]] - - for i in range(3,height+1): - maxone = max(stare_sum[i-2],stare_sum[i-3]+lst[i-2]) + lst[i-1] - stare_sum.append(maxone) - - return stare_sum[-1] - -n = int(input()) - -stare = [] -for i in range(n): - stare.append(int(input())) - -print(max_sum(stare)) \ No newline at end of file diff --git a/HJ_Seo/etc/2670.py b/HJ_Seo/etc/2670.py deleted file mode 100644 index d9df0b6..0000000 --- a/HJ_Seo/etc/2670.py +++ /dev/null @@ -1,26 +0,0 @@ -# #연속 부분 최대곱. -from sys import stdin - -n = int(stdin.readline()) -lst = [float(stdin.readline()) for _ in range(n)] - -result = -1 - -for i in range(1,len(lst)): - lst[i] = max(lst[i],lst[i]*lst[i-1]) - -# print(lst) -result = round(max(lst),3) - -print("%.3f" % (result)) - -#### 이거 왜 시간 초과가 나오는지 이해가 안되네,,,, - - -# N = int(input()) -# li = [float(input()) for _ in range(N)] -# print(li) -# for i in range(1, N): -# li[i] = max(li[i], li[i]*li[i-1]) -# print(li) -# print("%.3f" % (max(li))) \ No newline at end of file diff --git a/HJ_Seo/etc/2731.py b/HJ_Seo/etc/2731.py deleted file mode 100644 index 173b0de..0000000 --- a/HJ_Seo/etc/2731.py +++ /dev/null @@ -1,36 +0,0 @@ -# https://www.acmicpc.net/problem/2731 -# ! 풀어보자!!! 난이도가 높지 않을듯. -from sys import stdin - -def get_num(num_lst,last_num,idx): - if str(int(''.join(num_lst[::-1]))**3)[::-1].startswith(last_num): - return True,num_lst - - # print(last_num[:idx]) - for i in range(10): - result_num = str(int(str(i) + ''.join(num_lst[::-1]))**3)[::-1] - # print(result_num) - if result_num.startswith(last_num[:idx]): - num_lst.append(str(i)) - # print(i,result_num) - return False,num_lst - -case = int(stdin.readline().strip()) - -for _ in range(case): - last_num = stdin.readline().strip()[::-1] - first = int(last_num[0]) - num_lst = [str(10-first) if 2leng: -# num += i-leng - -# return num - -# N,M = map(int,stdin.readline().strip().split()) -# woods = tuple(map(int,stdin.readline().strip().split())) -# size = max(woods) -# unit = size//2 -# result = 0 -# tmp = sum(woods) - -# while True: -# result = res_wood_sum(woods,size) -# print(size) -# if unit == 0 or result == M: -# print(size) -# break - -# if result < M: -# size -= unit -# elif result > M: -# size += unit - -# unit = unit//2 - - -''' -cnt_ex -2 10000 -10001 20000 --> WANTED 10000, result = 10005.... unit을 빼는 과정에서 결손이 생겨서 발생하는 문제. -''' - -from sys import stdin - -def res_wood_sum(lst,leng): - num = 0 - for i in lst: - if i>leng: - num += i-leng - - return num - -N,M = map(int,stdin.readline().strip().split()) -woods = tuple(map(int,stdin.readline().strip().split())) - -small = 0 -large = max(woods) -result = 0 -while True: - mid = (small+large)//2 - result = res_wood_sum(woods,mid) - # print(mid,result,cnt) - if small == mid or result == M: - print(mid) - break - - if result > M: - small = mid - elif result < M: - large = mid - \ No newline at end of file diff --git a/HJ_Seo/etc/3019.py b/HJ_Seo/etc/3019.py deleted file mode 100644 index d92b069..0000000 --- a/HJ_Seo/etc/3019.py +++ /dev/null @@ -1,41 +0,0 @@ -from sys import stdin - -width , num = map(int,stdin.readline().strip().split()) -arr = tuple(map(int,stdin.readline().strip().split())) - -shapes = [] -if num == 1: - shapes = [[0],[0,0,0,0]] -elif num == 2: - shapes = [[0,0]] -elif num == 3: - shapes = [[0,0,1],[1,0]] -elif num == 4: - shapes = [[1,0,0],[0,1]] -elif num == 5: - shapes = [[0,0,0],[0,1],[1,0,1],[1,0]] -elif num == 6: - shapes = [[0,0,0],[0,0],[0,1,1],[2,0]] -elif num == 7: - shapes = [[0,0,0],[0,2],[1,1,0],[0,0]] - -result = 0 -while len(shapes) != 0: - shape = shapes.pop() - if len(shape) == 1: - result += len(arr) - continue - - for i in range(len(arr)-len(shape)+1): - temp = [0 for _ in range(len(shape))] - for k in range(len(shape)): - temp[k] = arr[i+k] - shape[k] - - if min(temp) == max(temp): - result += 1 - - # print(temp) - -print(result) - -#! 대강 주석과 빈 줄등을 지운 결과 숏코딩 43등!!!ㅋㅋㅋㅋ \ No newline at end of file diff --git a/HJ_Seo/etc/3273.py b/HJ_Seo/etc/3273.py deleted file mode 100644 index 9b24f64..0000000 --- a/HJ_Seo/etc/3273.py +++ /dev/null @@ -1,40 +0,0 @@ -# from sys import stdin - -# leng = int(stdin.readline().strip()) -# nums = tuple(map(int,stdin.readline().strip().split())) -# aim = int(stdin.readline().strip()) -# cnt = 0 - -# if aim%2 == 1: -# for i in range(leng): -# cnt += nums.count(aim-nums[i]) -# else: -# for i in range(leng): -# if nums[i] == aim//2: -# cnt += nums.count(nums[i])/2 -# else: -# cnt += nums.count(aim-nums[i]) - -# print(int(cnt)//2) - -# ! 시간초과..?.. 아 n 갯수.. count사용한 것도 시간 초과..?.. - -from sys import stdin - -leng = int(stdin.readline().strip()) -nums = sorted(map(int,stdin.readline().strip().split())) -aim = int(stdin.readline().strip()) -cnt = 0 - -left,right = 0, leng-1 - -while left != right: - if nums[left]+nums[right]==aim: - cnt += 1 - left += 1 - elif nums[left] + nums[right] < aim: - left += 1 - else: - right -= 1 - -print(cnt) \ No newline at end of file diff --git a/HJ_Seo/etc/3644.py b/HJ_Seo/etc/3644.py deleted file mode 100644 index 2eb4732..0000000 --- a/HJ_Seo/etc/3644.py +++ /dev/null @@ -1,20 +0,0 @@ -# 2 --> 3, 3 --> 4, 4 --> 7... P(n-2) 0,0,3,4,7 -from sys import stdin - -P = [0,0,3,4,7] - -while True: - n = stdin.readline().strip() - if n == '': - break - - n = int(n) - - if len(P)-1=row or move[1]>=col or pmap[move[0]][move[1]] == 0 or move in in_map: - continue - - conn_map[-1].append(move) - in_map.append(move) - conn_map,in_map = DFS(pmap,conn_map,in_map,move,row,col) - - return conn_map,in_map - -while True: - col,row = map(int,stdin.readline().strip().split()) - - if row == 0: - break - - pmap = [tuple(map(int,stdin.readline().strip().split())) for _ in range(row)] - - conn_map = [] - in_map = [] - for i in range(row): - for j in range(col): - if pmap[i][j] == 0 or (i,j) in in_map: - continue - - conn_map.append([(i,j)]) - in_map.append((i,j)) - conn_map,in_map = DFS(pmap,conn_map,in_map,(i,j),row,col) - - print(len(conn_map)) - -# ! recursionError 가 떠서 시간을 늘려줌. but code refactoring을 해서 줄일 수 있을듯 하다.. \ No newline at end of file diff --git a/HJ_Seo/etc/5640.py b/HJ_Seo/etc/5640.py deleted file mode 100644 index 6dc1f93..0000000 --- a/HJ_Seo/etc/5640.py +++ /dev/null @@ -1,110 +0,0 @@ -#백준 5640번. -from sys import stdin - -# == func part == -def c(lst,i): - if lst[i] == 0: - lst[i] = 1 - else: - lst[i] = 0 - -def compress_changer(lsts,n): - for i in range(len(lsts)): - lst = [0 for _ in range(n+1)] - for j in lsts[i]: - lst[j] = 1 - lsts[i] = lst - - return lsts - -def func(f,comp_elts): - - return - -# == func part == -case = int(input()) - -result = '' - -while True: - n,m = map(int,input().strip().split()) - - f = [0 for _ in range(n+1)] - f_not = [1 for _ in range(n+1)] - - Ses = [list(map(int,stdin.readline().strip().split())) for _ in range(m)] - Ses = compress_changer(Ses,n) - - # f의 원소들을 하나하나 True로 바꿔주면서 비교할 수 있는 함수. - # 함수 내 len(set(itertools.compress(f,Si))) = 2 일 경우 다른거 없이 return 'T' 계속 1일 경우 return 'F'--> result += ~~ 처리. - c(f,0) - c(f,1) #처음. - - while True: - if f == f_not: #비교를 했는데 함수가 없었다.. - result += "N" - break - - - - - - - - - - if case != 1: - case -=1 - empty = input() #공백인 줄간격. - else: - break - -print(result) - -#? ========================================================== - -##### partition으로 나눠볼까??.. (XX) - -# from sys import stdin - -# case = int(input()) -# result = '' - -# while True: -# n,m = map(int,input().strip().split()) - -# U = set([i for i in range(1,n+1)]) - -# Ses = [] -# for _ in range(m): -# Ses.append(set(map(int,stdin.readline().strip().split()))) - -# S_full = Ses[0].copy() - -# cnt = 0 -# while True: -# if cnt == m-1: -# # print('compare. =',S_full,U) -# if S_full == U: -# # print("Y") -# result += "Y" -# else: -# # print("N") -# result += "N" - -# break - -# for i in Ses[1:]: -# if len(S_full & i) != 0 and S_full & i != i: -# S_full = S_full | i -# # print(S_full) - -# cnt += 1 - -# if case != 1: -# case -=1 -# empty = input() #공백인 줄간격. -# else: -# break - -# print(result) \ No newline at end of file diff --git a/HJ_Seo/etc/6523(done_more_eff_exist).py b/HJ_Seo/etc/6523(done_more_eff_exist).py deleted file mode 100644 index 084414f..0000000 --- a/HJ_Seo/etc/6523(done_more_eff_exist).py +++ /dev/null @@ -1,76 +0,0 @@ -# 요새푸스 한번 더! -#노송희님 하는 것을 보고 시작함. -''' -요세푸스 문제와 다르게 다음 사람을 고르기 위해서 두 숫자 a와 b를 이용한다. 현재 선택된 사람의 번호가 x라면, 다음 사람의 번호는 ax2+b mod N이 된다. - -가장 처음 시작하는 사람의 번호는 0번이다. 다음 사람의 번호는 위의 식을 이용해서 고른다. - -각 사람은 한 번의 기회를 더 받을 수 있다. 즉, 한 번 걸리면 술을 마시는 것이 아니고, 두 번 걸렸을 때, 술을 마시는 것이다. - -만약, 어떤 사람이 세 번 걸렸다면, 그 즉시 모두 자리를 박차고 일어나 집으로 간다. - -N과 a, b가 주어졌을 때, 술을 마시지 않고 집으로 가는 사람의 수를 구하는 프로그램을 작성하시오. -''' -#역시 당연히 시간초과... 흠... - -def next(x): - return (a*((x**2)%N)+b)%N - -def usps_add(N): - first = set() #여기서 시간을 줄여야 하는데..,,, - second = set() - - graped = b - - while True: - if graped in second: #3번째 걸렸으니 break - break - elif graped in first: - second.add(graped) #두 번째로 걸린 사람이 넘어감. - else: - first.add(graped) #처음 걸린 케이스. - graped = next(graped) #next가 잡힘. - - return N - len(second) - -while True: - a = input() - if a == '0': - break - N,a,b = map(int,a.strip().split()) - if a > N//2: - a = a - N #계산량을 조금이라도 줄여봅시다. - if b > N//2: - b = b - N #계산량을 조금이라도 줄여봅시다. - - print(usps_add(N)) - - -# 698253463 1 181945480 return : 698177783 --> 요런게 문제. -# 1000000000 999999999 999999999 return : 999999994 (걸리는 타겟의 수가 일방적으로 적어서 쉽게 clear) - - -###### 다른사람이 푼 시간효율도가 높은 코드. - -# import sys -# si = sys.stdin.readline - -# if __name__ == "__main__": -# while True: -# orders = si().split() -# if len(orders) == 1: -# break - -# n, a, b = map(int, orders) - -# flags = dict() -# cur = 0 -# idx = 1 -# while True: -# cur = (((a * cur) % n) * (cur % n) + b) % n -# if cur in flags: -# print(n - idx + flags[cur]) -# break - -# flags[cur] = idx -# idx += 1 \ No newline at end of file diff --git a/HJ_Seo/etc/6588.py b/HJ_Seo/etc/6588.py deleted file mode 100644 index ff48dbf..0000000 --- a/HJ_Seo/etc/6588.py +++ /dev/null @@ -1,26 +0,0 @@ -# https://www.acmicpc.net/problem/6588 - -from sys import stdin - -tmp = {i for i in range(2,1000000)} -Prime = set() -while True: - if len(tmp) == 0: - break - x = tmp.pop() - Prime.add(x) - - for i in range(x,1000000,x): - tmp.discard(i) - -while True: - num = int(stdin.readline().strip()) - if num == 0: - break - - for i in range(3, num//2+2,2): - if i in Prime and num-i in Prime: - print('{} = {} + {}'.format(num,i,num-i)) - break - else: - print("Goldbach's conjecture is wrong.") diff --git a/HJ_Seo/etc/7469.py b/HJ_Seo/etc/7469.py deleted file mode 100644 index e358c33..0000000 --- a/HJ_Seo/etc/7469.py +++ /dev/null @@ -1,72 +0,0 @@ -from sys import stdin - -n,m = map(int,stdin.readline().strip().split()) -nums = list(map(int,stdin.readline().strip().split())) -# sorted_nums = sorted(nums) - -x = 1 -while True: - x*=2 - if x >= n: - break -# print(x) -#x = the nbr of vertices of segment tree + 1? -nums = nums + [0]*(x-len(nums)) -# nums = [1, 5, 2, 6, 3, 7, 4, 0] = segtree[1] -# segtree[2] = nums[0:4], segtree[3] = nums[4:8] -# print(nums[0:4],nums[4:8]) -segtree = [[] for _ in range(2*x)] - -def make_seg_tree(idx,start,leng): - # print(idx,start,leng) - if leng == 1: - segtree[idx] = nums[start:start+1] - return segtree[idx] - else: - segtree[idx] = make_seg_tree(2*idx,start,leng//2) + (make_seg_tree(2*idx+1,start + leng//2,leng//2)) - return segtree[idx] - -make_seg_tree(1,0,x) - -def Q(idx,start,leng,i,j): - if leng == 0: - return - elif j < start or start+leng < i: - return - elif i <= start and start+leng <= j: - union_arr.update(segtree[idx]) - else: - Q(2*idx,start,leng//2,i,j) - Q(2*idx+1,start+leng//2,leng//2,i,j) - -while m != 0: - - union_arr = set() - i,j,k = map(int,stdin.readline().strip().split()) - Q(1,0,x,i-1,j) - for _ in range(k-1): - union_arr.pop() - print(union_arr.pop()) - - m -= 1 - - -''' -4 1 -1 5 2 6 - -''' - - -''' -7 3 -1 5 2 6 3 7 4 -2 5 3 -4 4 1 -1 7 3 - -output : -5 -6 -3 -''' \ No newline at end of file diff --git a/HJ_Seo/etc/8891.py b/HJ_Seo/etc/8891.py deleted file mode 100644 index 3698cbe..0000000 --- a/HJ_Seo/etc/8891.py +++ /dev/null @@ -1,34 +0,0 @@ -# n = (k * (k+1)) // 2. -# a,b ==> - - -def cord(n): - a,b = 1,1 - - while True: - if ( a * (a+1) ) //2 >= n: - break - - a+=1 - - diff = ( a * (a+1) ) //2 - n - - while diff != 0: - a -= 1 - b += 1 - diff -= 1 - - return a,b - -def change(a,b): - k = a+b-1 - n = (k*(k+1))//2 - - return n-b+1 - -n = int(input()) - -for i in range(n): - a,b = map(int,input().strip().split()) - v1,v2 = cord(a),cord(b) - print(change(v1[0]+v2[0],v1[1]+v2[1])) \ No newline at end of file diff --git a/HJ_Seo/etc/8958.py b/HJ_Seo/etc/8958.py deleted file mode 100644 index 7c7f98f..0000000 --- a/HJ_Seo/etc/8958.py +++ /dev/null @@ -1,13 +0,0 @@ -# b2 OX퀴즈 - -n = int(input()) - -for _ in range(n): - result = 0 - arr = input().split('X') - - for i in arr: - result += ( len(i) * (len(i)+1) ) // 2 - - print(result) - \ No newline at end of file diff --git a/HJ_Seo/etc/9012.py b/HJ_Seo/etc/9012.py deleted file mode 100644 index 2b06456..0000000 --- a/HJ_Seo/etc/9012.py +++ /dev/null @@ -1,24 +0,0 @@ -from sys import stdin - -n = int(stdin.readline()) - -for _ in range(n): - arr = stdin.readline().strip() - stack = 0 - done = 0 - for i in arr: - if i == '(': - stack += 1 - else: - stack -= 1 - - if stack == -1: - print('NO') - done = 1 - break - - if done == 0: - if stack == 0: - print("YES") - else: - print("NO") \ No newline at end of file diff --git a/HJ_Seo/etc/9095.py b/HJ_Seo/etc/9095.py deleted file mode 100644 index 31a73d4..0000000 --- a/HJ_Seo/etc/9095.py +++ /dev/null @@ -1,20 +0,0 @@ -# 1,2,3 더하기. -''' -P(n) = P(n-1)+P(n-2)+P(n-3) -basis : P(1) = 1 - 1, P(2) = 2 - 1, P(3) = 4 - 1 -''' -T = int(input()) -sum_lst = [0,1,2,4] - -for _ in range(T): - n = int(input()) - if len(sum_lst)<3: - print(sum_lst[n]-1) - elif len(sum_lst)>n: - print(sum_lst[n]) - else: - for i in range(3,n): - sum_lst.append(sum_lst[-3]+sum_lst[-2]+sum_lst[-1]) - print(sum_lst[n]) -# print(sum_lst) - diff --git a/HJ_Seo/etc/9375.py b/HJ_Seo/etc/9375.py deleted file mode 100644 index 1f02436..0000000 --- a/HJ_Seo/etc/9375.py +++ /dev/null @@ -1,18 +0,0 @@ -case = int(input()) -for i in range(case): - n = int(input()) - - dic = {} - for i in range(n): - x,y = map(str,input().strip().split()) - if y not in dic: - dic[y] = 0 - dic[y] += 1 - - nums = tuple(dic.values()) - - result = 1 - for i in range(len(nums)): - result *= (nums[i]+1) - - print(result - 1) diff --git a/HJ_Seo/etc/elice_mistake_4.9.py b/HJ_Seo/etc/elice_mistake_4.9.py deleted file mode 100644 index 6691e02..0000000 --- a/HJ_Seo/etc/elice_mistake_4.9.py +++ /dev/null @@ -1,151 +0,0 @@ -def main(): - time,money = map(int,input().strip().split()) - - menu_taste = [] - used_money = 0 - total_taste = 0 - - for i in range(time): - a,b = map(int,input().strip().split()) - if a>=b: - total_taste += a - used_money += 1000 #확실한건 미리 제껴놓기. - else: - menu_taste.append([a,b,b-a]) - - menu_taste = sorted(menu_taste,key = lambda x: [-x[2]]) - #먼저 선택할 기준 정하기.. 여기가 문제.. 아래쪽은 순서대로 pop을 시켜주는 곳이라 수정할 필요는 아마도? 없는데.. b-a가 항상 양수이기 때문에 이거를 추가변수로 두고 3을 먹을 수 있는 횟수가 몇번인지 필요.. 3a와 b를 비교하는게 아닌 것 같다.. - res_money = money-used_money - can_3 = min( (res_money//1000 - len(menu_taste))//2, len(menu_taste) ) - - -# print('=======') - -# print('남은돈 =',money-used_money) -# print('남은 선택지 =',menu_taste) -# print('3천원짜리를 선택할 수 있는 횟수 =',can_3) -# print('현재 얻은 양 =',total_taste) - -# print('=======') - - while can_3 != 0: - select_time = menu_taste.pop(0) - # print('select_time =', select_time) - total_taste += select_time[1] - can_3 -= 1 - - while len(menu_taste) != 0: - only_select = menu_taste.pop(0) - # print('only_select =',only_select) - total_taste += only_select[0] - - # for i in range(len(menu_taste)): - # res_money = money-used_money - # select_time = menu_taste.pop(0) - # # print('select_time =',select_time) - # # print('지금까지 총량 =',total_taste) - # if res_money-3000 >= max(len(menu_taste)*1000,0): - # # print(res_money,'//',len(menu_taste)*1000) - # used_money += 3000 - # total_taste += select_time[1] - # else: - # used_money += 1000 - # total_taste += select_time[0] - -# print('=======모두 선택한 결과===========') - -# print('남은돈 =',money-used_money) -# print('남은 선택 =',menu_taste) -# print('결과로 얻은 양 =',total_taste) - -# print('=======') - - return print(total_taste) - - -if __name__=="__main__": - main() -############################## 내꺼 맞음. - -# import sys - -# def input(): -# return sys.stdin.readline().rstrip() - -# N, K = map(int, input().split()) -# data = [] -# visited = [0] * (N + 1) -# cnt_3 = (K // 1000 - N) // 2 -# answer = 0 -# # print('cnt_3 =',cnt_3) -# for i in range(N): -# a, b = map(int, input().split()) -# data.append((a, i, 0)) -# data.append((b, i, 1)) - -# data.sort(reverse=True) #여기서 실수가 있나? -# print('data =', data) -# for dt in data: -# if visited[dt[1]]: -# print('계산에서 뺌1 : ',dt) -# continue -# if dt[2]: -# if not cnt_3: -# print('계산에서 뺌2 : ',dt) -# continue -# cnt_3 -= 1 - -# answer += dt[0] -# print('더해진거 =',dt) -# visited[dt[1]] = 1 - -# print(answer) - - - - - -############################ 답지 틀림. -''' -3 7000 -5 30 -6 20 -7 20 - -wanted result : 57 -do result : 56 -''' - -# import sys - -# def input(): -# return sys.stdin.readline().rstrip() - -# N, K = map(int, input().split()) -# data = [] -# visited = [0] * (N + 1) -# cnt_3 = (K // 1000 - N) // 2 -# answer = 0 - -# for i in range(N): -# a, b = map(int, input().split()) -# data.append((a, i, 0)) -# data.append((b, i, 1)) - -# data.sort(reverse=True) - -# for dt in data: -# if visited[dt[1]]: -# continue -# if dt[2]: -# if not cnt_3: -# continue -# cnt_3 -= 1 - -# answer += dt[0] -# visited[dt[1]] = 1 - -# print(answer) - - - diff --git a/HJ_Seo/etc/elice_test_4.10.py b/HJ_Seo/etc/elice_test_4.10.py deleted file mode 100644 index 29dee66..0000000 --- a/HJ_Seo/etc/elice_test_4.10.py +++ /dev/null @@ -1,139 +0,0 @@ -def main(): - N,M,K = map(int,input().strip().split()) - total_needs_score = N*K - lst = [] - nbr = 0 - - for i in range(N): - grade,addi = map(int,input().strip().split()) - lst.append([M-grade,addi]) - total_needs_score -= grade - - # for i in lst: - # nbr+=i[0]*i[1] - # case 5번과 case 9번의 답 체크코드. - - if total_needs_score<=0: - return 0 - - lst = sorted(lst,key = lambda x:x[1] ) - # total_needs_score 평균을 찍기 위해 필요한 점수. - # lst 안에 있는 원소 i에 대하여 i[0]는 얻을 수 있는 점수, i[1]은 i에서 1점당 얻기 위해 필요한 과제량. - # print(total_needs_score,lst) - - for i in lst: - if total_needs_score>=i[0]: - nbr += i[0]*i[1] - total_needs_score -= i[0] - elif total_needs_score<=i[0]: - nbr += total_needs_score*i[1] - return nbr - print(nbr) - return -1 # 원래 넣으려고 했던 것은 -1 혹은 '모든 과제를 해도 평균점수를 넘지 못했습니다.' 입니다. - -if __name__=="__main__": - print(main()) - -''' -100 62 62 -58 60 -56 70 -46 90 -43 54 -55 20 -56 58 -36 4 -57 74 -38 31 -35 72 -35 68 -40 48 -1 4 -39 95 -17 78 -53 28 -60 53 -40 51 -39 13 -49 49 -60 98 -59 38 -20 99 -12 54 -59 89 -40 38 -35 27 -31 75 -31 12 -37 3 -34 80 -4 30 -50 33 -52 85 -54 78 -34 73 -55 47 -47 52 -39 46 -36 49 -25 74 -49 76 -52 12 -58 29 -23 81 -27 18 -2 87 -4 70 -33 4 -61 57 -55 49 -59 67 -50 81 -54 20 -9 91 -61 45 -33 99 -2 29 -46 77 -36 26 -11 17 -28 22 -31 48 -47 50 -60 38 -5 94 -58 45 -15 8 -62 81 -17 98 -8 88 -21 31 -15 76 -53 97 -17 91 -22 30 -37 9 -53 43 -61 25 -46 83 -38 61 -36 74 -2 53 -5 72 -27 97 -44 9 -28 23 -39 68 -11 87 -36 80 -7 87 -35 76 -46 17 -16 39 -4 52 -12 27 -26 94 -2 4 -8 33 -58 45 -''' diff --git a/HJ_Seo/etc/prob_in_prob/1.py b/HJ_Seo/etc/prob_in_prob/1.py deleted file mode 100644 index 524b5f1..0000000 --- a/HJ_Seo/etc/prob_in_prob/1.py +++ /dev/null @@ -1,33 +0,0 @@ -# https://www.acmicpc.net/problem/18836 - -from collections import deque -from sys import stdin - -Q = deque() - -N = int(stdin.readline().strip()) - -for _ in range(N): - x = tuple(map(int,stdin.readline().strip().split())) - if x[0] == 1: - Q.extendleft([x[1] for _ in range(x[2])]) - - elif x[0] == 2: - Q.extend([x[1] for _ in range(x[2])]) - - elif x[0] == 3: - for _ in range(x[1]): - Q.popleft() - elif x[0] == 4: - for _ in range(x[1]): - Q.pop() - elif x[0] == 5: - print(Q[x[1]-1]) - -''' -2 2 2 -3 3 2 2 2 -print(3) -3 2 2 2 -print(2) -''' \ No newline at end of file diff --git a/HJ_Seo/logic_prac/2042_segment_tree/make_tree.py b/HJ_Seo/logic_prac/2042_segment_tree/make_tree.py deleted file mode 100644 index dcb14f1..0000000 --- a/HJ_Seo/logic_prac/2042_segment_tree/make_tree.py +++ /dev/null @@ -1,15 +0,0 @@ -nums = [1,2,3,4,5,6,7,8,9,10] -segtree = [0] * 100 # nums의 크기에 따라 segtree의 크기도 커져야하지만 여기선 100으로도 충분하다. -N = len(nums) - -def inittree(idx,start,end): - if start == end: - segtree[idx] = nums[start] - return segtree[idx] - else: - segtree[idx] = inittree(2*idx,start,(start+end)//2) + inittree(2*idx+1,(start+end)//2+1,end) - return segtree[idx] - -inittree(1,0,N-1) - -print(segtree[:30]) \ No newline at end of file diff --git a/HJ_Seo/logic_prac/bitmasking_done/1094.py b/HJ_Seo/logic_prac/bitmasking_done/1094.py deleted file mode 100644 index 571a5d6..0000000 --- a/HJ_Seo/logic_prac/bitmasking_done/1094.py +++ /dev/null @@ -1,16 +0,0 @@ -# https://www.acmicpc.net/problem/1094 - -stick = 64 - -n = int(input()) -piece = [] - -while n != 0: - if stick<=n: - piece.append(stick) - n -= stick - - stick = stick//2 - -print(len(piece)) - diff --git a/HJ_Seo/logic_prac/bitmasking_done/12813.py b/HJ_Seo/logic_prac/bitmasking_done/12813.py deleted file mode 100644 index 528824f..0000000 --- a/HJ_Seo/logic_prac/bitmasking_done/12813.py +++ /dev/null @@ -1,28 +0,0 @@ -from sys import stdin -a = stdin.readline().strip() -b = stdin.readline().strip() - -op_and = '' -op_or = '' -op_xor = '' -maxi = min(a.index('1'),b.index('1')) -not_a = '' -not_b = '' -for i in range(100000): - op_and += '1' if a[i] == b[i] and a[i] == '1' else '0' - op_or += '1' if a[i] == '1' or b[i] == '1' else '0' - not_a += '0' if a[i] == '1' else '1' - not_b += '0' if b[i] == '1' else '1' - - if maxi>i: - op_xor += '0' - elif a[i] != b[i]: - op_xor += '1' - else: - op_xor += '0' - -print(op_and) -print(op_or) -print(op_xor) -print(not_a) -print(not_b) \ No newline at end of file diff --git a/HJ_Seo/logic_prac/bitmasking_done/1497.py b/HJ_Seo/logic_prac/bitmasking_done/1497.py deleted file mode 100644 index 61257b0..0000000 --- a/HJ_Seo/logic_prac/bitmasking_done/1497.py +++ /dev/null @@ -1,55 +0,0 @@ -from sys import stdin - -n,m = map(int,stdin.readline().strip().split()) - -def song_to_bit(arr,m): - num = 0 - for i in range(m): - if arr[i] == 'Y': - num += (1<= K -# max(maxi) = ? - - -# from sys import stdin -# from itertools import compress - -# N,M = map(int,stdin.readline().strip().split()) - -# lst = list(map(int,stdin.readline().strip().split())) -# lst = list(compress(lst,map(lambda x: x div 1 5 3 3 6 -# print(x) -# print(max(x),min(x)) -# print(4+2+2+5) - -# x = [7,11,13] -# # --> div 3 5 5.. - -# mini = min(x) -# n = 1 -# # x = sorted(x) -# result = math.inf -# while True: -# temp = mini/n -# temp_lst = [] -# for i in range(len(x)): -# temp_lst.append(round(x[i]/temp)) -# print(temp_lst,sum(temp_lst)) - -# temp_lst2 = [x[i]/temp_lst[i] for i in range(len(x))] -# print(temp_lst2) -# result = min(result,max(temp_lst2)-min(temp_lst2)) -# n+=1 -# if sum(temp_lst) > 10+3: -# break - -# print(result) - -# from sys import stdin -# N,M = map(int,stdin.readline().strip().split()) -# trees = tuple(map(int,stdin.readline().strip().split())) - -# if sum(trees) == M: -# print(0) -# exit(0) - -# cut_res = [] -# x = max(trees) - -# temp = x//2 -# while temp != 0: -# cut_res = [0 for _ in range(N)] -# for i in range(N): -# if x M: -# x += temp -# else: -# x -= temp -# temp = x//2 - -# print(x) - -# from sys import stdin - -# x,y = map(int,stdin.readline().strip().split()) - -# grape = {x:[]} -# temp = [] -# for i in range(y-1): -# a,b = map(int,stdin.readline().strip().split()) -# if a in grape: -# grape[a].append(b) -# grape[b] = [] -# elif b in grape: -# grape[b].append(a) -# grape[a] = [] -# else: -# temp.append((a,b)) - -# while len(temp) != 0: -# for i in temp: -# if i[0] in grape: -# grape[i[0]].append(i[1]) -# grape[i[1]] = [] -# elif i[1] in grape: -# grape[i[1]].append(i[0]) -# grape[i[0]] = [] -# temp.remove(i) - -# rearr = [] -# while True: -# if len(grape) == 0: -# break - -# leaf = [] -# for i in grape: -# if len(grape[i]) == 0: -# leaf.append(i) - -# rearr.append(leaf) - -# for i in leaf: -# del grape[i] - -# for i in grape: -# grape[i] = [j for j in grape[i] if j not in leaf] - -# print(len(rearr)) - -# for i in rearr: -# print(*sorted(i)) - -# ========================================================================= - -# from sys import stdin - -# def main(): -# x = int(input()) -# lst = list(map(int,stdin.readline().strip().split())) - -# sum_num = sum(lst) - -# while len(lst) != 1: -# mini = float('inf') -# for i in range(len(lst)-1): -# mini = min(mini,lst[i]*lst[i+1]) - -# for i in range(len(lst)-1): -# if lst[i]*lst[i+1] == mini: -# lst = lst[:i] + [max(lst[i],lst[i+1])] + lst[i+2:] -# sum_num += mini -# break - -# print(sum_num) - -# if __name__=="__main__": -# main() - -''' -[0, 1, 1, 4, 24, 240, 4320, 146880, 9694080, 260230393, 139440925, 672634953, 123456948, 86741629, 467193157] -[0, 1, 2, 6, 30, 270, 4590, 151470, 9845550, 270075943, 409516868, 82151814, 205608762, 292350391, 759543548] -''' -# y = [9,9,6] -# x = [1,3,4,6,2] -# print({i for i in x if i>1}) -# print({i for i in y if i>5}) -# print({9,6}) -# print({1,2,3,4,9,6}) -# print({9,8,7}) -# print({6,7,8,9}) -# print({3,6,7,8,9}) -''' - -1 -100 0 -1 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 5 5 5 5 5 5 5 5 5 5 - -''' - -import random - -print(*[random.randint(1,500)*2 for _ in range(25)]) -print(*[1+random.randint(1,500)*2 for _ in range(25)]) - -# x = list(map(int,input().split())) -# print(len(x)) -# print(*sorted(x)) - -# print(not False) From bb9ffc055d46964f2fcc46d0c0cf15dea563b88f Mon Sep 17 00:00:00 2001 From: seogudwns <38065726+seogudwns@users.noreply.github.com> Date: Thu, 25 Aug 2022 21:52:44 +0900 Subject: [PATCH 2/5] [baekjoon-1541](CR) . --- HJ_Seo/BaekJoon/08/05/1541.py | 1 + 1 file changed, 1 insertion(+) diff --git a/HJ_Seo/BaekJoon/08/05/1541.py b/HJ_Seo/BaekJoon/08/05/1541.py index 0fbc7e9..42f4ae9 100644 --- a/HJ_Seo/BaekJoon/08/05/1541.py +++ b/HJ_Seo/BaekJoon/08/05/1541.py @@ -11,3 +11,4 @@ f[i] = num print(f[0]-sum(f[1:])) + \ No newline at end of file From 6d91866693a5aabf54067a6723d411e5b86701d1 Mon Sep 17 00:00:00 2001 From: seogudwns <38065726+seogudwns@users.noreply.github.com> Date: Thu, 25 Aug 2022 21:53:04 +0900 Subject: [PATCH 3/5] [baekjoon-11286](CR). --- HJ_Seo/BaekJoon/08/05/11286.py | 1 + 1 file changed, 1 insertion(+) diff --git a/HJ_Seo/BaekJoon/08/05/11286.py b/HJ_Seo/BaekJoon/08/05/11286.py index c6a300f..e01d855 100644 --- a/HJ_Seo/BaekJoon/08/05/11286.py +++ b/HJ_Seo/BaekJoon/08/05/11286.py @@ -27,3 +27,4 @@ heapq.heappush(over_lst,n) else: heapq.heappush(under_lst,abs(n)) + \ No newline at end of file From 956ae1fb7c5b1055f67f39f429645f91b989516a Mon Sep 17 00:00:00 2001 From: seogudwns <38065726+seogudwns@users.noreply.github.com> Date: Thu, 25 Aug 2022 21:53:25 +0900 Subject: [PATCH 4/5] [baekjoon-1074](CR). --- HJ_Seo/BaekJoon/08/06/1074.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HJ_Seo/BaekJoon/08/06/1074.py b/HJ_Seo/BaekJoon/08/06/1074.py index fb6b1ec..d2b6d91 100644 --- a/HJ_Seo/BaekJoon/08/06/1074.py +++ b/HJ_Seo/BaekJoon/08/06/1074.py @@ -18,4 +18,5 @@ for i in range(n+1): if r&(1< Date: Thu, 25 Aug 2022 21:53:38 +0900 Subject: [PATCH 5/5] [baekjoon-12865](CR). --- HJ_Seo/BaekJoon/08/06/12865.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/HJ_Seo/BaekJoon/08/06/12865.py b/HJ_Seo/BaekJoon/08/06/12865.py index 67d0929..801b875 100644 --- a/HJ_Seo/BaekJoon/08/06/12865.py +++ b/HJ_Seo/BaekJoon/08/06/12865.py @@ -198,23 +198,23 @@ # ! 아래 코드는 효율적인 코드. -import sys -input = sys.stdin.readline +# import sys +# input = sys.stdin.readline -def get_max_value_case(K): - dp = [0] * (K + 1) - for w, v in WV: - for i in range(K, -1, -1): - if i - w < 0: - break - dp[i] = max(v + dp[i - w], dp[i]) - return dp[K] +# def get_max_value_case(K): +# dp = [0] * (K + 1) +# for w, v in WV: +# for i in range(K, -1, -1): +# if i - w < 0: +# break +# dp[i] = max(v + dp[i - w], dp[i]) +# return dp[K] -n, k = map(int, input().split()) -WV = [list(map(int, input().split())) for _ in range(n)] -WV.sort() +# n, k = map(int, input().split()) +# WV = [list(map(int, input().split())) for _ in range(n)] +# WV.sort() -print(get_max_value_case(k)) +# print(get_max_value_case(k)) ''' bad case : @@ -319,4 +319,4 @@ def get_max_value_case(K): 98 197 99 199 100 201 -''' \ No newline at end of file +''' \ No newline at end of file