BOJ/๐Ÿฅˆ36

โ˜…Number Theory Upper-Intermediate I - 8 Solvedโ˜… โ˜… 1850 ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ โ˜…import mathA,B = map(int, input().split())ans = ''.join(['1']*math.gcd(A,B))print(ans) ๐Ÿ‘‘ 1์˜ ๊ฐœ์ˆ˜ A์™€ B์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋งŒํผ 1์ด ๋‚˜์—ด๋˜์–ด ์žˆ๋Š” ์ˆ˜๊ฐ€ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜. ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ์„ฑ์งˆ / ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์„ ์‚ฌ์šฉํ•ด ์ด๋ฅผ ์ฆ๋ช…ํ•ด๋ณด์ž โ€ป 1์ด a๊ฐœ ์žˆ๋Š” ์ˆ˜์™€ 1์ด b๊ฐœ ์žˆ๋Š” ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” 1์ด gcd(a,b)๊ฐœ ์žˆ๋Š” ์ˆ˜ (a≥b)โ€ป - ์ฆ๋ช… - → 1์ด a๊ฐœ ์žˆ๋Š” ์ˆ˜๋ฅผ $S_a$, 1์ด b๊ฐœ ์žˆ๋Š” ์ˆ˜๋ฅผ $S_b$๋ผ๊ณ  ํ•˜๋ฉด$$S_a = \underbrace{111 ... 111}$$(1์ด a๊ฐœ)$$S_b = \underbrace{111 ... 111}$$(1์ด b๊ฐœ) → ์•„๋ž˜์™€ ๊ฐ™.. BOJ/๐Ÿฅˆ 2023. 2. 28.
โ˜…BFS&DFS Intermediate I - 17 Solvedโ˜… DFS / BFS โ‘  DFS(Depth-First Search) โšก๏ธ ๋จผ์ € DFS๋Š” ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, ๊ทธ๋ž˜ํ”„์—์„œ ๊นŠ์€ ๋ถ€๋ถ„์„ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ โšก๏ธ ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ(๋˜๋Š” ์žฌ๊ท€ํ•จ์ˆ˜)๋ฅผ ์ด์šฉํ•˜๋ฉฐ, ๊ตฌ์ฒด์ ์ธ ๋™์ž‘ ๊ณผ sh-avid-learner.tistory.com ๐Ÿ™†‍โ™‚๏ธ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„๋˜๋Š” ์—ฌ๋Ÿฌ ์ƒํ™ฉ์—์„œ, ๊ฐ node์˜ visited ์œ ๋ฌด๋ฅผ ๋”ฐ์งˆ ๋•Œ ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ DFS / BFS๋กœ ๋‚˜๋‰จ ๐Ÿ™†‍โ™‚๏ธ ๊นŠ์ด์žˆ๊ฒŒ ๋จผ์ € ํƒ์ƒ‰ํ•˜์ž๋ฉด DFS / ๊ฐ€๊นŒ์šด ๊ฒƒ ๋จผ์ € ํƒ์ƒ‰ํ•˜์ž๋ฉด BFS ๐Ÿ™†‍โ™‚๏ธ DFS / BFS ๋ชจ๋‘ ๋”ฑ! 3๊ฐ€์ง€์˜ ์ค€๋น„๋ฌผ ํ•„์š” โ€ป ์ด ๋•Œ DFS๋Š” stack ์‚ฌ์šฉ / BFS๋Š” queue๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ BFS ์‚ฌ์šฉ ์‹œ deque import โ€ป โ‘  2์ฐจ์› graph (๊ฐ node๋ณ„๋กœ.. BOJ/๐Ÿฅˆ 2023. 2. 17.
โ˜…Combinatorics Intermediate I - 3 Solvedโ˜… โ˜… 2407 ์กฐํ•ฉ โ˜… import math n,m=map(int,input().split()) print(math.factorial(n) // (math.factorial(n-m) * math.factorial(m))) ๐Ÿ‘ป ์œ„ ๊ณต์‹๋งŒ ์ •ํ™•ํžˆ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๋! โ˜… 9375 ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ โ˜… import sys input=sys.stdin.readline for _ in range(int(input())): n=int(input()) fashion={} if n==0: print(0) else: for _ in range(n): clothes=input().split() if clothes[1] in fashion: fashion[clothes[1]]+=1 else: fashion[clothes[1]] = .. BOJ/๐Ÿฅˆ 2023. 2. 16.
โ˜…Set/Map Intermediate I - 13 Solvedโ˜… โ˜… 1620 ๋‚˜๋Š”์•ผ ํฌ์ผ“๋ชฌ ๋งˆ์Šคํ„ฐ ์ด๋‹ค์†œ โ˜… import sys input=sys.stdin.readline pokemon={} N,M=map(int,input().strip().split()) for i in range(N): pokemon[input().strip()]=i+1 pokemon_list=list(pokemon.keys()) for _ in range(M): problem=input().strip() if problem.isalpha():print(pokemon[problem]) else:print(pokemon_list[int(problem)-1]) ๐Ÿ˜ฝ ํฌ์ผ“๋ชฌ ๋ฒˆํ˜ธ๋ฅผ ๋งํ•˜๋ฉด ํฌ์ผ“๋ชฌ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•˜๊ณ , ๋ฐ˜๋Œ€๋กœ ํฌ์ผ“๋ชฌ ์ด๋ฆ„์„ ๋งํ•˜๋ฉด ํฌ์ผ“๋ชฌ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š”, ์ฆ‰ ๋‘ ๊ฐ€์ง€ ์ •๋ณด ํฌ์ผ“๋ชฌ ๋ฒˆํ˜ธ์™€ ํฌ์ผ“.. BOJ/๐Ÿฅˆ 2023. 2. 15.
โ˜…Binary Search Upper-Intermediate I - 4 Solvedโ˜… ๐Ÿ˜ป ์ด๋ถ„ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•ด์•ผ ํ•จ์„ ์ธ์ง€ํ•˜๋Š” ๋ถ€๋ถ„์ด ์ œ์ผ ์ค‘์š”ํ•˜๋‹ค. ์ด๋ถ„ํƒ์ƒ‰์„ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜ ํŒ๋ณ„๋ฒ•์€ โ‘  ๋…ธ๊ฐ€๋‹ค์„ฑ์ด ๋“ค์–ด๊ฐ„๋‹ค. ์ผ๋‹จ, ๋‚ด๊ฐ€ ์›ํ•˜๊ณ ์ž ํ•˜๋Š”, ๋ฌด์–ธ๊ฐ€๋ฅผ ์ผ์ผ์ด ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•ด๊ฐ€๋ฉฐ ๋น„๊ตํ•ด๊ฐ€๋Š” ๊ณผ์ •์ด ๋“ค์–ด๊ฐ„๋‹ค๋ฉด ์ด๋ถ„ํƒ์ƒ‰ ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ์ƒ‰ ์œ ํ˜•์ž„์„ ๊ณ ๋ คํ•ด๋ณด์ž โ‘ก ~์ž๋ฅด๊ธฐ์™€ ๊ฐ™์€ ์ฃผ์–ด์ง„ ์ตœ์†Œ, ์ตœ๋Œ€ ์ผ๋ ฌ๋กœ ๋‚˜์—ด๋œ ์ค„์—์„œ ๋ฒ”์œ„๋ฅผ ์ค„์—ฌ๊ฐ€๋ฉฐ ์ตœ์ข… target(point์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์ฃผ์–ด์ง„ ๋ฒ”์œ„์˜ ๊ธธ์ด์ผ ์ˆ˜๋„ ์žˆ๋‹ค)์„ ์ฐพ๋Š” ๋ฌธ์ œ๋ผ๋ฉด ์ด๋ถ„ํƒ์ƒ‰์„ ๊ณ ๋ คํ•ด๋ณด์ž โ˜… 1654 ๋žœ์„  ์ž๋ฅด๊ธฐ โ˜… import sys input=sys.stdin.readline K,N=map(int,input().split()) ls=[int(input())for _ in range(K)] start,end=1,max(ls.. BOJ/๐Ÿฅˆ 2023. 2. 9.
โ˜…Greedy Upper-Intermediate I - 8 Solved()โ˜… ๐Ÿฆ’ ๋ฌธ์ œ ์ž์ฒด์˜ ์ตœ์ ์˜ ์†”๋ฃจ์…˜ โ˜… 11497 ํ†ต๋‚˜๋ฌด ๊ฑด๋„ˆ๋›ฐ๊ธฐ โ˜… ๐Ÿฆ’ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ณ  idea๋ฅผ ์ƒ๊ฐํ•˜๋Š” ๊ฒŒ ์ค‘์š”! ๐Ÿฆ’ ์ธ์ ‘ํ•œ ๋‘ ํ†ต๋‚˜๋ฌด ๋†’์ด ์ฐจ์˜ ์ตœ๋Œ“๊ฐ’์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฌธ์ œ โ‘  ์ฆ‰, ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ธ์ ‘ํ•œ ๋‘ ํ†ต๋‚˜๋ฌด๊ฐ„์˜ ๋†’์ด ์ฐจ๊ฐ€ ์ตœ์†Œํ™”๋˜์–ด์•ผ ํ•œ๋‹ค โ‘ก ์„œ๋กœ๊ฐ„์˜ ๋†’์ด ์ฐจ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ ค๋ฉด, ๊ฐ€์žฅ ํฐ ํ†ต๋‚˜๋ฌด๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ $h_1, h_2, h_3, h_4, .... h_n$์œผ๋กœ ์ •๋ ฌํ•œ ๋’ค, $h_1$์„ ์ •์ค‘์•™์—, ๊ทธ ๋‹ค์Œ $h_2, h_3$๋ฅผ ์–‘์˜†์—, $h_4, h_5$๋ฅผ ๊ทธ ๋‹ค์Œ ์–‘ ์˜†์— ์ฐจ๋ก€๋Œ€๋กœ ๋ฐฐ์น˜ํ•˜๋ฉด, ์„œ๋กœ ๊ฐ„์˜ ๋†’์ด ์ฐจ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿฆ’ greedy์˜ ์ƒ๋ช…์€ ์‹œ๊ฐ„ ๋‹จ์ถ•! ๋งค์šฐ ๋งŽ์€ ํ’€์ด๋ฅผ ๋ณด๋ฉฐ ์‹œ๊ฐ„ ๋‹จ์ถ•์„ ๋ฌธ์ œ์˜ ํŠน์„ฑ์— ๋งž๊ฒŒ code๋กœ ๊ณ ์ณ๊ฐ€๋ฉฐ ์ง„ํ–‰ํ•ด๋ณด์ž - 352ms - โ‘  ์œ„ ๊ทธ๋ฆผ์— ๋งž๊ฒŒ .. BOJ/๐Ÿฅˆ 2023. 1. 27.
โ˜…Math & Geometry Upper-Intermediate I - 5 Solvedโ˜… โ˜… 1002 ํ„ฐ๋ › โ˜… for _ in range(int(input())): x1, y1, r1, x2, y2, r2 = map(int, input().split()) d = (x1-x2)**2 + (y1-y2)**2 if d > (r1+r2)**2: print(0) elif d == (r1+r2)**2: print(1) elif (r1+r2)**2 > d > (r1-r2)**2: print(2) else: if r1!=r2: if d == (r1-r2)**2: print(1) else:print(0) else:print(-1) ๐Ÿคฝ๐Ÿป‍โ™‚๏ธ ๋‘ ์›์˜ ์œ„์น˜ ๊ด€๊ณ„์— ๋”ฐ๋ฅธ ๋‘ ์› ๊ต์ ์˜ ๊ฐœ์ˆ˜ ๐Ÿคฝ๐Ÿป‍โ™‚๏ธ ๋‘ ์›์˜ ์œ„์น˜ ๊ด€๊ณ„๋Š” ํฌ๊ฒŒ 6๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค. ๐Ÿคฝ๐Ÿป‍โ™‚๏ธ ๋‘ ์›์˜ ์ค‘์‹ฌ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ 6๊ฐ€์ง€๋ฅผ ์ž์„ธํ•˜๊ฒŒ .. BOJ/๐Ÿฅˆ 2023. 1. 26.
โ˜…Coordinate Compression Upper-Intermediate - 3 Solvedโ˜… โ˜… 18870 ์ขŒํ‘œ ์••์ถ• โ˜… ๐Ÿ‘จ๐Ÿฝ‍๐Ÿซ ์ขŒํ‘œ ์••์ถ• ๊ตฌํ˜„์€ ๋จผ์ € ์ •๋ ฌ๋กœ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“  ๋‹ค์Œ → ์ค‘๋ณต ์ œ๊ฑฐ → ๊ทธ๋ฆฌ๊ณ  index๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” 3๊ฐœ์˜ step์œผ๋กœ ์ง„ํ–‰ ๐Ÿ‘จ๐Ÿฝ‍๐Ÿซ ๋งˆ์ง€๋ง‰ ์„ธ ๋ฒˆ์งธ step์„ ์‹œ๊ฐ„๋‹จ์ถ•์„ ์œ„ํ•ด ์–ด๋–ค ๊ธฐ๋ฒ•์„ ์“ฐ๋Š” ์ง€์— ๋”ฐ๋ผ ์ƒํ™ฉ๋ณ„๋กœ ์†Œ์š” ์‹œ๊ฐ„์„ ๋‹ค๋ฅด๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. โ‘  ์ด๋ถ„ํƒ์ƒ‰ bisect_left() ๊ณ„์‚ฐ ํ’€์ด from bisect import bisect_left import sys input=sys.stdin.readline N=int(input()) l=list(map(int,input().split())) B=sorted(set(l)) ans=[] for i in l: ans.append(bisect_left(B,i)) print(*ans) → step 1) ์ •๋ ฌ๋กœ B[.. BOJ/๐Ÿฅˆ 2023. 1. 24.
โ˜…Prefix Sum ์ค‘๊ธ‰ - 5๋ฌธ์ œ()โ˜… ๐Ÿฐ ๋ˆ„์ ํ•ฉ ์œ ํ˜•์€ ์ฃผ๋กœ ์–ด๋ ค์šด ๋‚œ์ด๋„ ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜•์˜ ๋‹ต์„ ๊ตฌํ•˜๋Š” ๊ณผ์ •์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋งŒ ์ผ๋ถ€ ๋ฌธ์ œ๋ฅผ ๊ณจ๋ผ ์ •๋ฆฌํ•ด๋ด„ โ˜… 11441 ํ•ฉ ๊ตฌํ•˜๊ธฐ โ˜… import sys input=sys.stdin.readline N=int(input()) B=[] a=0 for 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] ์—ฐ์‚ฐํ•ด์ฃผ๋ฉด ์™„๋ฃŒ!.. 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 - 11 Solvedโ˜… โ˜… 1874 ์Šคํƒ ์ˆ˜์—ด โ˜… import sys input = sys.stdin.readline stack,sequence,ans = [],[],[] cur = 0 for _ 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]: stack.pop() ans.append('-') else: ans = [] break if l.. 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.