BOJ/๐Ÿฅˆ40

โ˜…Prefix Sum Upper + Intermediate I - 7 Solvedโ˜… โ˜… 11441 ํ•ฉ ๊ตฌํ•˜๊ธฐ โ˜…import sysinput=sys.stdin.readlineN=int(input())B=[]a=0for i in map(int,input().split()): a+=i B.append(a)for _ in range(int(input())): a,b=map(int,input().split()) if a==1:print(B[b-1]) else:print(B[b-1]-B[a-2]) ๐Ÿฐ ๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๊ฐ„์„ ๋งŒ๋“  ๋’ค, ๊ตฌ๊ฐ„ B์—์„œ ์›ํ•˜๋Š” ๊ตฌ๊ฐ„๋งŒํผ ๋ฐ”๋กœ indexing์œผ๋กœ B[b-1] - B[a-2] ์—ฐ์‚ฐํ•ด์ฃผ๋ฉด ์™„๋ฃŒ!โ˜… 11659 ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ 4 โ˜… #indexing over slicingN, M = map(int, input().split()).. BOJ/๐Ÿฅˆ 2023. 1. 18.
โ˜…PQ ์ค‘์ƒ๊ธ‰ - 6๋ฌธ์ œ()โ˜… ๐Ÿง  priority queue๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ heap ๊ด€๋ จ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋Š” ๊ธฐ์กด ์ž๋ฃŒ๊ตฌ์กฐ(stack, queue, deck)๋ณด๋‹ค ๋” ๋ณต์žกํ•œ tree๊ตฌ์กฐ๋กœ, ์ค‘๊ธ‰ ์ดํ•˜์˜ ๋ฌธ์ œ๋Š” ์—†๋‹ค. ์ค‘์ƒ๊ธ‰ ์ด์ƒ๋ถ€ํ„ฐ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉฐ ์ ์‘ํ•ด๋ณด์ž ๐Ÿง  priority queue ๊ด€๋ จ ๊ฐœ๋… ํฌ์ŠคํŒ… ์ฐธ๊ณ  priority queue - (binary) heap tree 1. concepts> โ˜๏ธ ์šฐ์„ ์ˆœ์œ„ ํ = '์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ' โ˜๏ธ ๋ฐ์ดํ„ฐ๋ฅผ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ ex) ๋ฌผ๊ฑด ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋„ฃ์—ˆ๋‹ค๊ฐ€ ๊ฐ€ sh-avid-learner.tistory.com โ˜… 1927 ์ตœ์†Œ ํž™ โ˜… import sys import heapq input=sys.stdin.readline .. BOJ/๐Ÿฅˆ 2023. 1. 11.
โ˜…Stack & Queue & Deque Upper-Intermediate I - 12 Solvedโ˜… โ˜… 1874 ์Šคํƒ ์ˆ˜์—ด โ˜… import sysinput = sys.stdin.readlinestack,sequence,ans = [],[],[]cur = 0for _ in range(int(input())): sequence.append(int(input()))sequence = sequence[::-1]while len(sequence) != 0: popped = sequence.pop() if popped > cur: for i in range(cur+1,popped+1): stack.append(i) ans.append('+') cur = popped if popped == stack[-1]: .. BOJ/๐Ÿฅˆ 2023. 1. 8.
โ˜…Bitmasking Intermediate I - 3 Solvedโ˜… ๐Ÿ”Ÿ bitmasking ์—ฐ์‚ฐ์€ ๋งค์šฐ ๋น ๋ฅธ ์—ฐ์‚ฐ์œผ๋กœ O(1)์˜ time complexity๋ฅผ ๋ณด์ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ๋งŽ์ด ์“ฐ์ด๋Š” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜ ๐Ÿ”Ÿ ๋‹ค๋งŒ, 0๊ณผ 1์„ ์ด์šฉํ•œ 2์ง„์ˆ˜ ์—ฐ์‚ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปดํ“จํ„ฐ๊ฐ€ ์‹ค์ œ๋กœ ์—ฐ์‚ฐํ•˜๋Š” ํ•˜๋“œ์›จ์–ด์ ์ธ ์„ฑ๊ฒฉ์ด ๋“ค์–ด๊ฐ€๋ฏ€๋กœ ๋‹จ์ˆœ ์—ฐ์‚ฐ๋ณด๋‹ค ์ข€ ๋” ์‹ ๊ฒฝ์„ ์จ์•ผ ํ•จ ๐Ÿ”Ÿ ์•„๋ž˜ ๊ฐœ๋… ์ •๋ฆฌ ๋งํฌ ์ฐธ์กฐ โ˜€๏ธbitmaskingโ˜€๏ธ * intro> ๐Ÿ’ง bitmask = '์ปดํ“จํ„ฐ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋ชจ๋“  ์ž๋ฃŒ๋ฅผ ์ด์ง„์ˆ˜๋กœ ํ‘œํ˜„. ์ด ํŠน์„ฑ์„ ์ด์šฉํ•ด ์ •์ˆ˜์˜ ์ด์ง„์ˆ˜ ํ‘œํ˜„์„ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์“ฐ๋Š” ๊ธฐ๋ฒ•' (์—„๋ฐ€ํ•˜๊ฒŒ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์•„๋‹˜) ๐Ÿ’ง 2์ง„์ˆ˜ ๊ด€๋ จ bit ์—ฐ์‚ฐ์„ ์ง„ํ–‰ sh-avid-learner.tistory.com ๐Ÿ”Ÿ ํŠนํžˆ ์ง‘ํ•ฉ ๊ด€๋ จ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•  ๋•Œ bitmasking ๊ธฐ๋ฒ•์ด ๋งŽ์ด ์“ฐ์ธ๋‹ค. ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด์„œ ์ ์‘ํ•˜๋„๋ก.. BOJ/๐Ÿฅˆ 2023. 1. 5.
โ˜…DP Upper-Intermediate I - 15 Solvedโ˜… โ˜… 2579 ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ โ˜… # dp 1์ฐจ์› ๋ฐฐ์—ดimport sysinput=sys.stdin.readlineN=int(input())S=[0]for _ in range(N):S.append(int(input()))if N==1:print(S[1])elif N==2:print(S[1]+S[2])elif N==3:print(S[3]+max(S[1],S[2]))else: dp=[0]*(N+1) dp[1]=S[1] dp[2]=S[1]+S[2] dp[3]=S[3]+max(dp[1],S[2]) for i in range(4,N+1): dp[i]=S[i]+max(dp[i-2],dp[i-3]+S[i-1]) print(dp[-1]).. BOJ/๐Ÿฅˆ 2023. 1. 3.
โ˜…DP Intermediate I - 20 Solvedโ˜… โ˜… 17202 ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ ๊ถํ•ฉ โ˜… A=list(input())B=list(input())l=[]for i in range(8):l.extend((int(A[i]),int(B[i])))while len(l)>2: L=len(l) for j in range(L-1):l[j]=(l[j]+l[j+1])%10 del l[-1]print(*l,sep='')โ˜… 16395 ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜• โ˜…  n,k=map(int,input().split())d=[0]*nd[0]=1if n==1:print(1)else: for i in range(1,n): new=[] new.append(1) for j in range(i-1): new.append(d[.. BOJ/๐Ÿฅˆ 2022. 12. 22.
โ˜…Sorting Upper-Intermediate I - 6 Solvedโ˜… โ˜… 1138 ํ•œ ์ค„๋กœ ์„œ๊ธฐ โ˜… N = int(input())highers = list(map(int,input().split()))[::-1]orders = []for higher in highers: orders.insert(higher,N) N -= 1print(*orders) ๐Ÿ‘ซ๐Ÿฟ ์ž์‹ ๋ณด๋‹ค ํ‚ค ํฐ ์‚ฌ๋žŒ์ด ์•ž์— ๋ช‡ ๋ช… ์žˆ๋Š” ์ง€ ์ •๋ณด์— ๋”ฐ๋ผ ์ค„์„ ์„  ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ→ ๋จผ์ € ํ‚ค๊ฐ€ ํฐ ์‚ฌ๋žŒ๋ถ€ํ„ฐ ์•ž์— ์ž์‹ ๋ณด๋‹ค ํ‚ค ํฐ ์‚ฌ๋žŒ์˜ ์ •๋ณด์— ๋”ฐ๋ผ ์ค„์„ ์„ ๋‹ค๋ฉด(์ž…๋ ฅํ•œ ๋ฐ˜๋Œ€์ˆœ ์ •๋ ฌ - ์—ฌ๊ธฐ์„œ๋Š” [::-1] ์‚ฌ์šฉ), ์ด ์ •๋ณด๋Š” ๊ณง ์•ž์— ์„œ ์žˆ๋Š” ์‚ฌ๋žŒ์˜ ๋ช…์ˆ˜๊ฐ€ ๋˜๊ณ , ๊ณง ์ค„ line์˜ index๊ฐ€ ๋˜์–ด python insert() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์ฐจ๋ก€๋Œ€๋กœ ์ค„์„ ์„ค ์ˆ˜ ์žˆ๋‹ค.โ˜… 2108 ํ†ต๊ณ„ํ•™ โ˜… ๐Ÿญ ์ตœ๋นˆ.. BOJ/๐Ÿฅˆ 2022. 12. 20.
โ˜…Number Theory Intermediate I - 17 Solvedโ˜… โ˜… 9613 GCD ํ•ฉ โ˜… import sys input=sys.stdin.readline from itertools import combinations def gcd(a,b): #a0: a,b=b%a,a return b for _ in range(int(input())): ans = 0 pairs = list(combinations(list(map(int, input().split()))[1:], 2)) for pair in pairs: ans += gcd(pair[0], pair[1]) print(ans) ๐Ÿฆ™ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ GCD๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํฌ๊ฒŒ ์•„๋ž˜์™€ ๊ฐ™์ด 3๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. โ‘  math module ๋‚ด์žฅํ•จ์ˆ˜ ์‚ฌ์šฉ โ‘ก ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์‚ฌ์šฉ (๋ณ„๋„ gcd ํ•จ์ˆ˜ ๋”ฐ๋กœ ๋งŒ๋“ค๊ธฐ / ์žฌ๊ท€) โ‘ข ์ •.. BOJ/๐Ÿฅˆ 2022. 12. 13.
โ˜…Stack & Queue & Deque Intermediate I - 20 Solvedโ˜… โ˜… 10828 ์Šคํƒ โ˜… import sys N = int(sys.stdin.readline()) stack = []*N kinds = ['push', 'pop', 'size', 'empty', 'top'] for _ in range(N): order = sys.stdin.readline().split() kind = order[0] if kind == kinds[0]: stack.append(order[1]) elif kind == kinds[1]: if len(stack) > 0: print(stack[-1]) stack.pop() else: print(-1) elif kind == kinds[2]: print(len(stack)) elif kind == kinds[3]: print(0) if len(.. BOJ/๐Ÿฅˆ 2022. 12. 11.
โ˜…Recursion Intermediate - 2 Solvedโ˜… โ˜… 17478 ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”? โ˜… N = int(input())print('์–ด๋А ํ•œ ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ ํ•™์ƒ์ด ์œ ๋ช…ํ•œ ๊ต์ˆ˜๋‹˜์„ ์ฐพ์•„๊ฐ€ ๋ฌผ์—ˆ๋‹ค.')def CH(n): if n  ๐Ÿค ๋Œ€ํ‘œ์ ์ธ ์žฌ๊ท€ ๋ฌธ์ œ → return ์ข…๋ฃŒ ์กฐ๊ฑด ์ฝ”๋“œ + ํ•จ์ˆ˜ ๋„ฃ๋Š” ์ฝ”๋“œ 2๊ฐœ ์‚ฌ์ด์‚ฌ์ด์— ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ ๋„ฃ์„ ์ง€ ๋””์ž์ธ๋งŒ ์ž˜ํ•˜๋ฉด ๋จโ˜… 4779 ์นธํ† ์–ด ์ง‘ํ•ฉ โ˜…def draw(s,e): if (s+1)==e: return else: length=(e-s) step=(length//3) lines[s+step:s+step*2]=[' ']*(step) draw(s,s+step) draw(s+step*2,e)while 1: try: .. BOJ/๐Ÿฅˆ 2022. 12. 11.
โ˜…Binary Search Intermediate I - 9 Solvedโ˜… ๐Ÿ‘ฉ๐Ÿผ‍๐Ÿ”ฌ binary-search์˜ ํ•ต์‹ฌ์€ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ค„์—ฌ, ์›ํ•˜๋Š” target์„ ์ฐพ๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ $O(logN)$์œผ๋กœ ์ค„์ธ๋‹ค๋Š” ๋ฐ ์žˆ๋‹ค. ๐Ÿ‘ฉ๐Ÿผ‍๐Ÿ”ฌ binary-search ๊ฐ„๋žต ์š”์•ฝโ‘  ์ฃผ์–ด์ง„ array, ์ฐพ๊ณ ์ž ํ•˜๋Š” target, ์‹œ์ž‘ start์™€ ๋ end - 4๊ฐœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.โ‘ก start์™€ end์˜ ์ค‘๊ฐ„์  mid๋ฅผ ๊ตฌํ•œ๋‹ค(์ง์ˆ˜์ด๋ฉด ์†Œ์ˆ˜์  ์ ˆ์‚ฌ)โ‘ข mid๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์ด target์ด๋ฉด ๋! target๋ณด๋‹ค ํฌ๋‹ค๋ฉด end๋ฅผ mid-1๋กœ, target๋ณด๋‹ค ์ž‘๋‹ค๋ฉด start๋ฅผ mid+1๋กœ ์„ค์ •โ˜… 13777 Hunt The Rabbit โ˜…โ€ป binary-search ์œ ์ผ Bronze ๋ฌธ์ œ์ด์ง€๋งŒ Intermediate ํฌ์ŠคํŒ…์— ๋„ฃ์Œ โ€ป def binary_search(n,l,start,end.. BOJ/๐Ÿฅˆ 2022. 12. 7.
โ˜…Greedy Intermediate I - 20 Solvedโ˜… ๐Ÿง‍โ™‚๏ธ greedy ์ค‘๊ธ‰๋ฌธ์ œ๋Š” ์ „ํ˜•์ ์ธ greedy ๋Œ€ํ‘œ ์˜ˆ์ œ ๋ชจ์Œ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค! greedy ์œ ํ˜•์€ ์ฃผ์–ด์ง„ ์ƒํ™ฉ์—์„œ ๋‹ค์–‘ํ•œ ์„ ํƒ์ง€๊ฐ€ ์žˆ์„ ๋•Œ ๋‹น์žฅ์˜ ์ตœ์ ์˜ ์„ ํƒ์ง€๋ฅผ ๊ตฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ์—ฐ์†ํ•  ๋•Œ ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๊ณง ์ตœ์ ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋œ๋‹ค๋Š” ๋‚ด์šฉ์ด๋‹ค. ์ด ๋•Œ ์ค‘์š”ํ•œ ๊ฑด, ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ƒํ™ฉ์„ ์ •ํ•ด ๋†“๊ณ , ๊ทธ ์ƒํ™ฉ์—์„œ ์ตœ์ ์˜ ์ƒํ™ฉ์„ ์—ฐ์†ํ•ด์„œ ๊ตฌํ•œ ์ƒํ™ฉ์˜ ๊ฒฐ๊ณผ ๋ชจ์Œ์ด ๊ณง ์ „์ฒด์˜ ์ตœ์  ์ƒํ™ฉ์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์ „์ œ๊ฐ€ ๊น”๋ ค ์žˆ๋‹ค. โ˜… 6752 Time on task โ˜… T = int(input()) C = int(input()) times = [int(input()) for _ in range(C)] n = 0 times.sort() for time in times: T -= time if T < 0: break n +.. BOJ/๐Ÿฅˆ 2022. 12. 5.