๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€ 227

๐ŸŸฉ [๋ฐฑ์ค€] [Python] Class3_17129๋ฒˆ_๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/17219 17219๋ฒˆ: ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค„์— ์ €์žฅ๋œ ์‚ฌ์ดํŠธ ์ฃผ์†Œ์˜ ์ˆ˜ N(1 ≤ N ≤ 100,000)๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฐพ์œผ๋ ค๋Š” ์‚ฌ์ดํŠธ ์ฃผ์†Œ์˜ ์ˆ˜ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๊ฐ ์ค„์— ์‚ฌ์ดํŠธ ์ฃผ์†Œ์™€ ๋น„๋ฐ€๋ฒˆ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 17219๋ฒˆ ๋ฌธ์ œ - ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ import sys n, m = map(int, sys.stdin.readline().strip().split()) dict = {} for _ in range(n): key, value = sys.stdin.readline().strip().split() dict[key] = value for _ in rang..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] Class3_1764๋ฒˆ_๋“ฃ๋ณด์žก

๋ฌธ์ œ https://www.acmicpc.net/problem/1764 1764๋ฒˆ: ๋“ฃ๋ณด์žก ์ฒซ์งธ ์ค„์— ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ N, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. ์ด์–ด์„œ ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„๊ณผ, N+2์งธ ์ค„๋ถ€ํ„ฐ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์ด ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1764๋ฒˆ ๋ฌธ์ œ - ๋“ฃ๋ณด์žก import sys n, m = map(int, sys.stdin.readline().split()) people_n, people_m = set(), set() for _ in range(n): name = sys.stdin.readline().strip() people_n.add(name) for _ in range(m): name = sys.s..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] Class3_11723๋ฒˆ_์ง‘ํ•ฉ

๋ฌธ์ œ https://www.acmicpc.net/problem/11723 11723๋ฒˆ: ์ง‘ํ•ฉ ์ฒซ์งธ ์ค„์— ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์—ฐ์‚ฐ์˜ ์ˆ˜ M (1 ≤ M ≤ 3,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์—ฐ์‚ฐ์ด ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 11723๋ฒˆ ๋ฌธ์ œ - ์ง‘ํ•ฉ import sys s = set() n = int(input()) for i in range(n): tmp = sys.stdin.readline().strip().split() if len(tmp) == 1: # tmp ๊ธธ์ด๊ฐ€ 1 if tmp[0] == 'all': # all s = set([i for i in range(1,21)]) else: # empty s = set() con..

[๋ฐฑ์ค€] [Python] Class3_1676๋ฒˆ_ํŒฉํ† ๋ฆฌ์–ผ 0์˜ ๊ฐœ์ˆ˜

๋ฌธ์ œ https://www.acmicpc.net/problem/1676 1676๋ฒˆ: ํŒฉํ† ๋ฆฌ์–ผ 0์˜ ๊ฐœ์ˆ˜ N!์—์„œ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ฒ˜์Œ 0์ด ์•„๋‹Œ ์ˆซ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ 0์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1676๋ฒˆ ๋ฌธ์ œ - ํŒฉํ† ๋ฆฌ์–ผ 0์˜ ๊ฐœ์ˆ˜ from math import factorial n = int(input()) num = list(str(factorial(n))) cnt = 0 stack = [] for i in range(len(num)-1,0, -1): if num[i] == '0': cnt += 1 else: break print(cnt)

[๋ฐฑ์ค€] [Python] Class2_15829๋ฒˆ_Hashing

๋ฌธ์ œ https://www.acmicpc.net/problem/15829 15829๋ฒˆ: Hashing APC์— ์˜จ ๊ฒƒ์„ ํ™˜์˜ํ•œ๋‹ค. ๋งŒ์•ฝ ์—ฌ๋Ÿฌ๋ถ„์ด ํ•™๊ต์—์„œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ˆ˜๊ฐ•ํ–ˆ๋‹ค๋ฉด ํ•ด์‹œ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ๋ฐฐ์› ์„ ๊ฒƒ์ด๋‹ค. ํ•ด์‹œ ํ•จ์ˆ˜๋ž€ ์ž„์˜์˜ ๊ธธ์ด์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„์„œ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ์ถœ๋ ฅ์„ ๋‚ด๋ณด๋‚ด๋Š” ํ•จ์ˆ˜๋กœ ์ • www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 15829๋ฒˆ ๋ฌธ์ œ - Hashing n = int(input()) string = input() answer = 0 for i in range(n): answer += (ord(string[i])-96)*(31 ** i) print(answer % 1234567891)

[๋ฐฑ์ค€] [Python] Class2_10866๋ฒˆ_๋ฑ

๋ฌธ์ œ https://www.acmicpc.net/problem/10866 10866๋ฒˆ: ๋ฑ ์ฒซ์งธ ์ค„์— ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์˜ ์ˆ˜ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๋ช…๋ น์ด ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜๋Š” 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋ฌธ์ œ์— ๋‚˜์™€์žˆ์ง€ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 10866๋ฒˆ ๋ฌธ์ œ - ๋ฑ import sys from collections import deque n = int(sys.stdin.readline()) d = deque() for _ in range(n): cmd = sys.stdin.readline().split() if cmd[0] == 'push_back': d.append(cmd[1]) elif cmd[..

[๋ฐฑ์ค€] [Python] Class2_10816๋ฒˆ_์ˆซ์ž ์นด๋“œ2

๋ฌธ์ œ https://www.acmicpc.net/problem/10816 10816๋ฒˆ: ์ˆซ์ž ์นด๋“œ 2 ์ฒซ์งธ ์ค„์— ์ƒ๊ทผ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ˆซ์ž ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ˆซ์ž ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์ˆ˜๋Š” -10,000,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 10, www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 10816๋ฒˆ ๋ฌธ์ œ - ์ˆซ์ž ์นด๋“œ2 from collections import Counter n = int(input()) card_n = list(map(int, input().split())) m = int(input()) card_m = list(map(int, input().split())) card_n = Counter(card_n) f..

[๋ฐฑ์ค€] [Python] Class2_2805๋ฒˆ_๋‚˜๋ฌด ์ž๋ฅด๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/2805 2805๋ฒˆ: ๋‚˜๋ฌด ์ž๋ฅด๊ธฐ ์ฒซ์งธ ์ค„์— ๋‚˜๋ฌด์˜ ์ˆ˜ N๊ณผ ์ƒ๊ทผ์ด๊ฐ€ ์ง‘์œผ๋กœ ๊ฐ€์ ธ๊ฐ€๋ ค๊ณ  ํ•˜๋Š” ๋‚˜๋ฌด์˜ ๊ธธ์ด M์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) ๋‘˜์งธ ์ค„์—๋Š” ๋‚˜๋ฌด์˜ ๋†’์ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‚˜๋ฌด์˜ ๋†’์ด์˜ ํ•ฉ์€ ํ•ญ์ƒ M๋ณด www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2805๋ฒˆ ๋ฌธ์ œ - ๋‚˜๋ฌด ์ž๋ฅด๊ธฐ import sys n, m = map(int, sys.stdin.readline().split()) trees = list(map(int, sys.stdin.readline().split())) start, end = 0, max(trees) while start mid: # mid ๋ชจ๋‹ค ํฐ ๋‚˜๋ฌด ๋†’์ด๋Š” ..

[๋ฐฑ์ค€] [Python] Class2_2108๋ฒˆ_ํ†ต๊ณ„ํ•™

๋ฌธ์ œ https://www.acmicpc.net/problem/2108 2108๋ฒˆ: ํ†ต๊ณ„ํ•™ ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹จ, N์€ ํ™€์ˆ˜์ด๋‹ค. ๊ทธ ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ์ •์ˆ˜๋“ค์ด ์ฃผ์–ด์ง„๋‹ค. ์ž…๋ ฅ๋˜๋Š” ์ •์ˆ˜์˜ ์ ˆ๋Œ“๊ฐ’์€ 4,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2108๋ฒˆ ๋ฌธ์ œ - ํ†ต๊ณ„ํ•™ import sys from collections import Counter n = int(sys.stdin.readline()) num = [] for _ in range(n): num.append(int(sys.stdin.readline())) # ์‚ฐ์ˆ ํ‰๊ท  print(round(sum(num)/n)) # ์ค‘์•™๊ฐ’ num.sort() print(num[n//2]) ..

[๋ฐฑ์ค€] [Python] Class2_1654๋ฒˆ_๋žœ์„  ์ž๋ฅด๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/1654 1654๋ฒˆ: ๋žœ์„  ์ž๋ฅด๊ธฐ ์ฒซ์งธ ์ค„์—๋Š” ์˜ค์˜์‹์ด ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋žœ์„ ์˜ ๊ฐœ์ˆ˜ K, ๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ๋žœ์„ ์˜ ๊ฐœ์ˆ˜ N์ด ์ž…๋ ฅ๋œ๋‹ค. K๋Š” 1์ด์ƒ 10,000์ดํ•˜์˜ ์ •์ˆ˜์ด๊ณ , N์€ 1์ด์ƒ 1,000,000์ดํ•˜์˜ ์ •์ˆ˜์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ญ์ƒ K โ‰ฆ N ์ด๋‹ค. ๊ทธ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1654๋ฒˆ ๋ฌธ์ œ - ๋žœ์„  ์ž๋ฅด๊ธฐ import sys k, n = map(int, sys.stdin.readline().split()) lan = [] for _ in range(k): lan.append(int(sys.stdin.readline())) start = 1 end = max(lan) while(start = n: start = mid +..