BOJ/๐Ÿฅˆ36

โ˜…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]*n d[0]=1 if n==1:print(1) else: for i in range(1,n): new=[] new.append(1) for j in range(i-1): new.append(d[i-1][j]+d[i-1][j+1]) new.append(1) .. 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 < 0: return print('_'*4*(N-n) + '"์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?"') if n != 0: print('_'*4*(N-n) + '"์ž˜ ๋“ค์–ด๋ณด๊ฒŒ. ์˜›๋‚ ์˜›๋‚  ํ•œ ์‚ฐ ๊ผญ๋Œ€๊ธฐ์— ์ด์„ธ์ƒ ๋ชจ๋“  ์ง€์‹์„ ํ†ต๋‹ฌํ•œ ์„ ์ธ์ด ์žˆ์—ˆ์–ด.') print('_'*4*(N-n) + '๋งˆ์„ ์‚ฌ๋žŒ๋“ค์€ ๋ชจ๋‘ ๊ทธ ์„ ์ธ์—๊ฒŒ ์ˆ˜๋งŽ์€ ์งˆ๋ฌธ์„ ํ–ˆ๊ณ , ๋ชจ๋‘ ์ง€ํ˜œ๋กญ๊ฒŒ ๋Œ€๋‹ตํ•ด ์ฃผ์—ˆ์ง€.') print('_'*4*(N-n) + '๊ทธ์˜ ๋‹ต์€ ๋Œ€๋ถ€๋ถ„ ์˜ณ์•˜๋‹ค๊ณ  ํ•˜๋„ค. ๊ทธ๋Ÿฐ๋ฐ ์–ด๋Š ๋‚ , ๊ทธ ์„ ์ธ์—๊ฒŒ ํ•œ ์„ ๋น„๊ฐ€ ์ฐพ์•„์™€์„œ ๋ฌผ์—ˆ์–ด."') else: print('_'*4*(N-n) + .. BOJ/๐Ÿฅˆ 2022. 12. 11.
โ˜…Binary Search Intermediate I - 7 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.
โ˜…Implementation&Simulation Intermediate I - 15 Solvedโ˜… โ˜… 2941 ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ โ˜… s=input() for c in ['c=','c-','dz=','d-','lj','nj','s=','z=']: if c in s:s=s.replace(c,'*') print(len(s)) ๐ŸŒณ replace() โ˜… 1316 ๊ทธ๋ฃน ๋‹จ์–ด ์ฒด์ปค โ˜… import sys input=sys.stdin.readline t=0 for _ in range(int(input())): s=input() f=0 for i in range(1,len(s)): if s[i]!=s[i-1]: if s[i] in s[:i]: f+=1 break if f==0:t+=1 print(t) โ˜… 1213 ํŒฐ๋ฆฐ๋“œ๋กฌ ๋งŒ๋“ค๊ธฐ โ˜… import sys input = sys.stdin.readline name = in.. BOJ/๐Ÿฅˆ 2022. 11. 28.
โ˜…Math & Geometry Intermediate I - 8 Solvedโ˜… โ˜… 1676 ํŒฉํ† ๋ฆฌ์–ผ 0์˜ ๊ฐœ์ˆ˜ โ˜… ๐Ÿง˜๐Ÿผ‍โ™‚๏ธ ๋’ค์—์„œ๋ถ€ํ„ฐ ๊ฑฐ๊พธ๋กœ ์ผ์ผ์ด 0์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฌธ์ œ๋Œ€๋กœ ์ฐพ๋Š” brute-forceN = int(input())fac = 1for i in range(N, 0, -1): fac *= icnt = 0for num in str(fac)[::-1]: if num == '0': cnt += 1 else: breakprint(cnt) ๐Ÿง˜๐Ÿผ‍โ™‚๏ธ ๊ทธ๋Ÿฌ๋‚˜, ์ˆ˜ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ•ด์„œ brute-force๊ฐ€ ์•„๋‹Œ ์ˆ˜ํ•™ ํ’€์ด๋กœ ์‹œ๊ฐ„์„ ๋” ๋‹จ์ถ•ํ•˜์ž๋ฉด, ๐Ÿง˜๐Ÿผ‍โ™‚๏ธ ํŒฉํ† ๋ฆฌ์–ผ ๊ฒฐ๊ณผ ๋์˜ 0์˜ ๊ฐœ์ˆ˜ → 10์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง€๋Š” ํšŸ์ˆ˜์˜ ๊ฐœ์ˆ˜ → 5์™€ 2์˜ ๊ฐœ์ˆ˜ → 5์˜ ๊ฐœ์ˆ˜โ‘  10์œผ๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง„๋‹ค๋ฉด ๋์— 0์ด 1๊ฐœ, 100์œผ๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง„๋‹ค๋ฉด ๋์— .. BOJ/๐Ÿฅˆ 2022. 11. 22.
โ˜…BF Intermediate I - 14 Solvedโ˜… โ˜… 1436 ์˜ํ™”๊ฐ๋… ์ˆŒ โ˜… N = int(input()) cnt = 0 start = 666 while 1: if '666' in str(start): cnt += 1 if N == cnt: print(start) break start+=1 else: start+=1 ๐Ÿง•๐Ÿผ ๋ง ๊ทธ๋Œ€๋กœ brutalํ•˜๊ฒŒ ์ผ์ผ์ด ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜์—์„œ 666 ํฌํ•จ ์—ฌ๋ถ€๋ฅผ ๋”ฐ์ง€๋Š” ๋ฌธ์ œ → ์ตœ์†Œํ•œ์˜ ์‹œ๊ฐ„ ๋‹จ์ถ•์„ ์œ„ํ•ด break๋ฅผ ๋„ฃ์—ˆ๊ณ , 666๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒŒ ์ฝ”๋“œ ์„ค์ • ๐Ÿง•๐Ÿผ ์œ„์˜ ํ’€์ด๋Š” โ‘ cnt ๋ณ€์ˆ˜๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด 1๋ถ€ํ„ฐ ์ถ”๊ฐ€ํ•˜๋ฉฐ ์ฒดํฌํ•˜๋Š” ๊ตฌ์กฐ์ด๋‚˜, ์•„๋ž˜์˜ ํ’€์ด๋Š” โ‘กN ์ž์ฒด์—์„œ 1์”ฉ ๊ฐ์†Œํ•˜๋ฉฐ ์ฒดํฌํ•˜๋Š” ๊ตฌ์กฐ โ€ป while N ํ’€์ด๊ฐ€ ์‹ ๋ฐ•ํ•ด์„œ ๊ฐ€์ ธ์™”์Œ โ€ป N = int(input()) cnt = 0 start = 665 while N: .. BOJ/๐Ÿฅˆ 2022. 11. 21.
โ˜…Sorting Intermediate I - 13 Solvedโ˜… โ˜… 1181 ๋‹จ์–ด ์ •๋ ฌ โ˜… import sys input = sys.stdin.readline w = set() for _ in range(int(input())): w.add(input().rstrip()) w = list(w) w.sort() w.sort(key=len) #words.sort(key=lambda x:len(x)) print('\n'.join(w)) #for word in words: # print(word) ๐Ÿš€ โ‘  ๊ฐ™์€ ๋‹จ์–ด ํ•œ ๋ฒˆ๋งŒ ์ถœ๋ ฅ - ์ค‘๋ณต x - set() ์‚ฌ์šฉ โ‘ก ์‚ฌ์ „ ์ˆœ ์ •๋ ฌ, ์งง์€ ๊ฒƒ๋ถ€ํ„ฐ ์ •๋ ฌ - sort() ์‚ฌ์šฉ ๐Ÿš€ โ‘  set() ์‚ฌ์šฉํ•œ ๋’ค, add method๋ฅผ ์‚ฌ์šฉํ•ด ์ค‘๋ณต์ด ๋ฐฐ์ œ๋œ ๋‹จ์–ด set() ์ƒ์„ฑ โ€ป ๋จผ์ € ๊ธธ์ด ์งง์€ ๊ฒƒ๋ถ€ํ„ฐ ์ •๋ ฌํ•˜๊ณ , ์‚ฌ์ „ ์ˆœ ์ •๋ ฌ์ด๋ฏ€๋กœ, A .. BOJ/๐Ÿฅˆ 2022. 11. 20.