BOJ/๐Ÿฅˆ40

โ˜…Combinatorics Upper-Intermediate I - 4 Solvedโ˜… โ˜… 2697 ๋‹ค์Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ โ˜… import sysinput=sys.stdin.readlinedef next_permutation(n,l): #ex) n = [3,2,1] i = l-2 while i>=0 and n[i]>=n[i+1]: i-=1 if i>=0: j=l-1 while n[j]  โœ‹ next_permutationโ˜… 5360 Next Permutation โ˜… def next_permutation(n,l): i = l-2 while i >=0 and n[i] >= n[i+1]: i-=1 if i>=0: j = l-1 while n[j]  โœ‹ next_permutationโ˜… 1.. BOJ/๐Ÿฅˆ 2023. 8. 16.
โ˜…Regular Expression Upper + Intermediate - 3 Solvedโ˜… โ˜… 9342 ์—ผ์ƒ‰์ฒด โ˜… import re,sysinput=sys.stdin.readlinefor _ in range(int(input().strip())): chromosome = input().strip() if re.match('^[ABCDEF]?A+F+C+[A,B,C,D,E,F]?$',chromosome): print('Infected!') else: print('Good') ๐Ÿฆ– ์ •๊ทœํ‘œํ˜„์‹ ๋ฌธ๋ฒ• ์ฐจ๋ก€๋Œ€๋กœ ์ž‘์„ฑํ•˜์ž๋ฉด!โ‘  ๋ฌธ์ž์—ด์€ {A, B, C, D, E, F} ์ค‘ 0๊ฐœ ๋˜๋Š” 1๊ฐœ๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค → ^[ABCDEF]?โ‘ก ๊ทธ ๋‹ค์Œ์—๋Š” A๊ฐ€ ํ•˜๋‚˜ ๋˜๋Š” ๊ทธ ์ด์ƒ ์žˆ์–ด์•ผ ํ•œ๋‹ค → A+โ‘ข ๊ทธ ๋‹ค์Œ์—๋Š” F๊ฐ€ ํ•˜๋‚˜ ๋˜๋Š” ๊ทธ ์ด์ƒ ์žˆ์–ด์•ผ ํ•œ๋‹ค → F+โ‘ฃ ๊ทธ ๋‹ค์Œ์—๋Š” C๊ฐ€ ํ•˜๋‚˜ ๋˜๋Š” ๊ทธ ์ด์ƒ ์žˆ์–ด.. BOJ/๐Ÿฅˆ 2023. 8. 14.
โ˜…Set/Map Upper-Intermediate I - 3 Solvedโ˜… โ˜… 2910 ๋นˆ๋„ ์ •๋ ฌ โ˜… import sysinput=sys.stdin.readlineN,C=map(int,input().split())freq=dict()message=list(map(int,input().split()))order=1for n in message: if n not in freq: freq[n] = [1, order] order += 1 else: freq[n][0] += 1freq_sorted = sorted(freq.items(), key=lambda x:(-x[1][0],x[1][1]))for x in freq_sorted: for _ in range(x[1][0]): print(str(x[0]),end=' ') .. BOJ/๐Ÿฅˆ 2023. 8. 11.
โ˜…Divide & Conquer Upper-Intermediate I - 9 Solvedโ˜… โ˜… 2630 ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ โ˜…import sysinput=sys.stdin.readlineN=int(input())W,B=0,0confetti=[]def is_check(arr): side=len(arr) if all(arr[i][j] == 0 for i in range(side) for j in range(side)): return 'W' elif all(arr[i][j] == 1 for i in range(side) for j in range(side)): return 'B' else: return 0def get_confetti(arr,l,W,B): if l == 1: if arr[0][0] == 0: W+=1 .. BOJ/๐Ÿฅˆ 2023. 3. 20.
โ˜…Number Theory Upper-Intermediate I - 9 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๊ฐœ) → ์•„๋ž˜์™€ ๊ฐ™์ด 10์˜ ์ง€์ˆ˜์Šน์œผ๋กœ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ๋‹ค... BOJ/๐Ÿฅˆ 2023. 2. 28.
โ˜…BFS&DFS Intermediate I - 20 Solvedโ˜… ๐Ÿ™†‍โ™‚๏ธ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„๋˜๋Š” ์—ฌ๋Ÿฌ ์ƒํ™ฉ์—์„œ, ๊ฐ node์˜ visited ์œ ๋ฌด๋ฅผ ๋”ฐ์งˆ ๋•Œ ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ DFS / BFS๋กœ ๋‚˜๋‰จ ๐Ÿ™†‍โ™‚๏ธ ๊นŠ์ด์žˆ๊ฒŒ ๋จผ์ € ํƒ์ƒ‰ํ•˜์ž๋ฉด DFS / ๊ฐ€๊นŒ์šด ๊ฒƒ ๋จผ์ € ํƒ์ƒ‰ํ•˜์ž๋ฉด BFS ๐Ÿ™†‍โ™‚๏ธ DFS / BFS ๋ชจ๋‘ ๋”ฑ! 3๊ฐ€์ง€์˜ ์ค€๋น„๋ฌผ ํ•„์š” โ€ป ์ด ๋•Œ DFS๋Š” stack ์‚ฌ์šฉ / BFS๋Š” queue๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ BFS ์‚ฌ์šฉ ์‹œ deque import โ€ป โ‘  2์ฐจ์› graph (๊ฐ node๋ณ„๋กœ ์—ฐ๊ฒฐ๋œ node์˜ ๋ฒˆํ˜ธ๊ฐ€ list๋กœ ์ €์žฅ๋จ)โ‘ก visited ์—ฌ๋ถ€ 1์ฐจ์› list (์ตœ์ข…์ ์œผ๋กœ ๋ฐฉ๋ฌธ๋˜์—ˆ๋Š” ์ง€ ํ™•์ธ)โ‘ข ์‹œ์ž‘ nodeโ˜… 1260 DFS์™€ BFS โ˜… import sysinput = sys.stdin.readlinefrom collections import dequ.. BOJ/๐Ÿฅˆ 2023. 2. 17.
โ˜…Combinatorics Intermediate I - 5 Solvedโ˜… โ˜… 2407 ์กฐํ•ฉ โ˜…import mathn,m=map(int,input().split())print(math.factorial(n) // (math.factorial(n-m) * math.factorial(m)))๐Ÿ‘ป ์œ„ ๊ณต์‹๋งŒ ์ •ํ™•ํžˆ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๋!  โ˜… 9375 ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ โ˜…import sysinput=sys.stdin.readlinefor _ 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: .. BOJ/๐Ÿฅˆ 2023. 2. 16.
โ˜…Set/Map Intermediate I - 14 Solvedโ˜… โ˜… 1620 ๋‚˜๋Š”์•ผ ํฌ์ผ“๋ชฌ ๋งˆ์Šคํ„ฐ ์ด๋‹ค์†œ โ˜… import sysinput=sys.stdin.readlinepokemon={}N,M=map(int,input().strip().split())for i in range(N): pokemon[input().strip()]=i+1pokemon_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 - 6 Solvedโ˜… ๐Ÿ˜ป ์ด๋ถ„ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•ด์•ผ ํ•จ์„ ์ธ์ง€ํ•˜๋Š” ๋ถ€๋ถ„์ด ์ œ์ผ ์ค‘์š”ํ•˜๋‹ค. ์ด๋ถ„ํƒ์ƒ‰์„ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜ ํŒ๋ณ„๋ฒ•์€ โ‘  ๋…ธ๊ฐ€๋‹ค์„ฑ์ด ๋“ค์–ด๊ฐ„๋‹ค. ์ผ๋‹จ, ๋‚ด๊ฐ€ ์›ํ•˜๊ณ ์ž ํ•˜๋Š”, ๋ฌด์–ธ๊ฐ€๋ฅผ ์ผ์ผ์ด ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•ด๊ฐ€๋ฉฐ ๋น„๊ตํ•ด๊ฐ€๋Š” ๊ณผ์ •์ด ๋“ค์–ด๊ฐ„๋‹ค๋ฉด ์ด๋ถ„ํƒ์ƒ‰ ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ์ƒ‰ ์œ ํ˜•์ž„์„ ๊ณ ๋ คํ•ด๋ณด์ž โ‘ก ~์ž๋ฅด๊ธฐ์™€ ๊ฐ™์€ ์ฃผ์–ด์ง„ ์ตœ์†Œ, ์ตœ๋Œ€ ์ผ๋ ฌ๋กœ ๋‚˜์—ด๋œ ์ค„์—์„œ ๋ฒ”์œ„๋ฅผ ์ค„์—ฌ๊ฐ€๋ฉฐ ์ตœ์ข… target(point์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์ฃผ์–ด์ง„ ๋ฒ”์œ„์˜ ๊ธธ์ด์ผ ์ˆ˜๋„ ์žˆ๋‹ค)์„ ์ฐพ๋Š” ๋ฌธ์ œ๋ผ๋ฉด ์ด๋ถ„ํƒ์ƒ‰์„ ๊ณ ๋ คํ•ด๋ณด์žโ˜… 1654 ๋žœ์„  ์ž๋ฅด๊ธฐ โ˜… import sysinput=sys.stdin.readlineK,N=map(int,input().split())ls=[int(input())for _ in range(K)]start,end=1,max(ls) #0.. BOJ/๐Ÿฅˆ 2023. 2. 9.
โ˜…Greedy Upper-Intermediate I - 9 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 - 6 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) ๐Ÿคฝ๐Ÿป‍โ™‚๏ธ ๋‘ ์›์˜ ์œ„์น˜ ๊ด€๊ณ„์— ๋”ฐ๋ฅธ ๋‘ ์› ๊ต์ ์˜ ๊ฐœ์ˆ˜ ๐Ÿคฝ๐Ÿป‍โ™‚๏ธ .. 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.