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. ์ด์ 1 2 3 4 ๋ค์