๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€ 227

[๋ฐฑ์ค€] [Python] Class3_1012๋ฒˆ_์œ ๊ธฐ๋† ๋ฐฐ์ถ”

๋ฌธ์ œ https://www.acmicpc.net/problem/1012 1012๋ฒˆ: ์œ ๊ธฐ๋† ๋ฐฐ์ถ” ์ฐจ์„ธ๋Œ€ ์˜๋†์ธ ํ•œ๋‚˜๋Š” ๊ฐ•์›๋„ ๊ณ ๋žญ์ง€์—์„œ ์œ ๊ธฐ๋† ๋ฐฐ์ถ”๋ฅผ ์žฌ๋ฐฐํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ๋†์•ฝ์„ ์“ฐ์ง€ ์•Š๊ณ  ๋ฐฐ์ถ”๋ฅผ ์žฌ๋ฐฐํ•˜๋ ค๋ฉด ๋ฐฐ์ถ”๋ฅผ ํ•ด์ถฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ๋‚˜๋Š” ํ•ด์ถฉ ๋ฐฉ์ง€์— www.acmicpc.net ํ’€์ด BFS๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด # ๋ฐฑ์ค€ 1012๋ฒˆ ๋ฌธ์ œ - ์œ ๊ธฐ๋† ๋ฐฐ์ถ” t = int(input()) #ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ dx = [0,0,-1,1] # ์ƒ, ํ•˜, ์ขŒ, ์šฐ dy = [1,-1,0,0] def BFS(x,y): queue = [(x,y)] cabbage[x][y] = 0 # ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ while queue: x,y = queue.pop(0) for i in range(4): nx = x + ..

[๋ฐฑ์ค€] [Python] 10799๋ฒˆ_์‡ ๋ง‰๋Œ€๊ธฐ_์Šคํƒ

๋ฌธ์ œ https://www.acmicpc.net/problem/10799 10799๋ฒˆ: ์‡ ๋ง‰๋Œ€๊ธฐ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‡ ๋ง‰๋Œ€๊ธฐ๋ฅผ ๋ ˆ์ด์ €๋กœ ์ ˆ๋‹จํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํšจ์œจ์ ์ธ ์ž‘์—…์„ ์œ„ํ•ด์„œ ์‡ ๋ง‰๋Œ€๊ธฐ๋ฅผ ์•„๋ž˜์—์„œ ์œ„๋กœ ๊ฒน์ณ ๋†“๊ณ , ๋ ˆ์ด์ €๋ฅผ ์œ„์—์„œ ์ˆ˜์ง์œผ๋กœ ๋ฐœ์‚ฌํ•˜์—ฌ ์‡ ๋ง‰๋Œ€๊ธฐ๋“ค์„ ์ž๋ฅธ๋‹ค. ์‡ ๋ง‰๋Œ€๊ธฐ์™€ ๋ ˆ์ด์ € www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 10799๋ฒˆ ๋ฌธ์ œ - ์‡ ๋ง‰๋Œ€๊ธฐ a = list(input()) s = [] b = 0 for i in range(len(a)): if a[i] == '(': s.append('(') else: if a[i-1] == '(': s.pop() b = b+len(s) else: s.pop() b = b+1

[๋ฐฑ์ค€] [Python] 4949๋ฒˆ_๊ท ํ˜•์žกํžŒ ์„ธ์ƒ_์Šคํƒ

๋ฌธ์ œ https://www.acmicpc.net/problem/4949 4949๋ฒˆ: ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ์ค„์— ๊ฑธ์ณ์„œ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ๋ฌธ์ž์—ด์€ ์˜๋ฌธ ์•ŒํŒŒ๋ฒณ, ๊ณต๋ฐฑ, ์†Œ๊ด„ํ˜ธ("( )") ๋Œ€๊ด„ํ˜ธ("[ ]")๋“ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” 100๊ธ€์ž๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๊ฐ ์ค„์€ ๋งˆ์นจํ‘œ(".")๋กœ ๋๋‚œ๋‹ค www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 4949๋ฒˆ ๋ฌธ์ œ - ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ bracket = ['(','[',')',']'] while True: stack = [] string = input() if string == '.': break for s in string: if s in bracket: # ๊ด„ํ˜ธ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ if len(stack) == 0: stack.append(s) continu..

[๋ฐฑ์ค€] [Python] 1966๋ฒˆ_ํ”„๋ฆฐํ„ฐ ํ_ํ,๋ฑ

๋ฌธ์ œ https://www.acmicpc.net/problem/1966 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ ์—ฌ๋Ÿฌ๋ถ„๋„ ์•Œ๋‹ค์‹œํ”ผ ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋ฆฐํ„ฐ ๊ธฐ๊ธฐ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ธ์‡„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ์ธ์‡„ ๋ช…๋ น์„ ๋ฐ›์€ ‘์ˆœ์„œ๋Œ€๋กœ’, ์ฆ‰ ๋จผ์ € ์š”์ฒญ๋œ ๊ฒƒ์„ ๋จผ์ € ์ธ์‡„ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์„œ๊ฐ€ ์Œ“์ธ๋‹ค๋ฉด Queue ์ž๋ฃŒ๊ตฌ์กฐ์— www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1966๋ฒˆ ๋ฌธ์ œ - ํ”„๋ฆฐํ„ฐ ํ from collections import deque import sys t = int(input()) for i in range(t): n, m = map(int, input().split()) queue = deque(list(map(int, sys.stdin.readline().split()))) count = 0 while queue: best..

[๋ฐฑ์ค€] [Python] 2164๋ฒˆ_์นด๋“œ2_ํ,๋ฑ

๋ฌธ์ œ https://www.acmicpc.net/problem/2164 2164๋ฒˆ: ์นด๋“œ2 N์žฅ์˜ ์นด๋“œ๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์นด๋“œ๋Š” ์ฐจ๋ก€๋กœ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด ์žˆ์œผ๋ฉฐ, 1๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์œ„์—, N๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์•„๋ž˜์ธ ์ƒํƒœ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์นด๋“œ๊ฐ€ ๋†“์—ฌ ์žˆ๋‹ค. ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ์นด๋“œ๊ฐ€ www.acmicpc.net ํ’€์ด from collections import deque n,k = map(int,input().split()) queue = deque() for i in range(1,n+1): queue.append(i) print("")

[๋ฐฑ์ค€] [Python] 10773๋ฒˆ_์ œ๋กœ_์Šคํƒ

๋ฌธ์ œ https://www.acmicpc.net/problem/10773 10773๋ฒˆ: ์ œ๋กœ ์ฒซ ๋ฒˆ์งธ ์ค„์— ์ •์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ 100,000) ์ดํ›„ K๊ฐœ์˜ ์ค„์— ์ •์ˆ˜๊ฐ€ 1๊ฐœ์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ •์ˆ˜๋Š” 0์—์„œ 1,000,000 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ์ •์ˆ˜๊ฐ€ "0" ์ผ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์“ด ์ˆ˜๋ฅผ ์ง€์šฐ๊ณ , ์•„๋‹ ๊ฒฝ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 10773๋ฒˆ ๋ฌธ์ œ - ์ œ๋กœ n = int(input()) stack = [] for i in range(n): num = int(input()) if num == 0: stack.pop() else: stack.append(num) print(sum(stack)) ์ด ๋ฌธ์ œ๋Š” ์Šคํƒ์„ ์ด์šฉํ•ด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

[๋ฐฑ์ค€] [Python] 1149๋ฒˆ_RGB๊ฑฐ๋ฆฌ_๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/1149 1149๋ฒˆ: RGB๊ฑฐ๋ฆฌ ์ฒซ์งธ ์ค„์— ์ง‘์˜ ์ˆ˜ N(2 ≤ N ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ์ง‘์„ ๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘์œผ๋กœ ์น ํ•˜๋Š” ๋น„์šฉ์ด 1๋ฒˆ ์ง‘๋ถ€ํ„ฐ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ง‘์„ ์น ํ•˜๋Š” ๋น„์šฉ์€ 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1149๋ฒˆ ๋ฌธ์ œ - RGB๊ฑฐ๋ฆฌ n = int(input()) dp = [] for i in range(n): dp.append(list(map(int, input().split()))) for i in range(1, len(dp)): dp[i][0] = min(dp[i-1][1], dp[i-1][2]) + dp[i][0] dp[i][1] = min(dp[..

[๋ฐฑ์ค€] [Python] 15650๋ฒˆ_N๊ณผM(2)_๋ฐฑํŠธ๋ž˜ํ‚น

๋ฌธ์ œ https://www.acmicpc.net/problem/15650 15650๋ฒˆ: N๊ณผ M (2) ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ค‘๋ณต๋˜๋Š” ์ˆ˜์—ด์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ถœ๋ ฅํ•˜๋ฉด ์•ˆ๋˜๋ฉฐ, ๊ฐ ์ˆ˜์—ด์€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ์ˆ˜์—ด์€ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•ด www.acmicpc.net ํ’€์ด 1. DFS๋ฅผ ํ†ตํ•œ ํ’€์ด # ๋ฐฑ์ค€ 15650๋ฒˆ ๋ฌธ์ œ - N ๊ณผ M (2) N, M = map(int, input().split()) visited = [0 for _ in range(N)] arr = [] def dfs(cnt): if cnt == M: print(*arr) return for i in range(N): if visited[i] == 0: visited[i] = 1 #..

[๋ฐฑ์ค€] [Python] 1436๋ฒˆ_์˜ํ™”๊ฐ๋… ์ˆŒ_๋ธŒ๋ฃจํŠธ ํฌ์Šค

๋ฌธ์ œ https://www.acmicpc.net/problem/1436 1436๋ฒˆ: ์˜ํ™”๊ฐ๋… ์ˆŒ 666์€ ์ข…๋ง์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž๋ผ๊ณ  ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ๋งŽ์€ ๋ธ”๋ก๋ฒ„์Šคํ„ฐ ์˜ํ™”์—์„œ๋Š” 666์ด ๋“ค์–ด๊ฐ„ ์ œ๋ชฉ์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. ์˜ํ™”๊ฐ๋… ์ˆŒ์€ ์„ธ์ƒ์˜ ์ข…๋ง ์ด๋ผ๋Š” ์‹œ๋ฆฌ์ฆˆ ์˜ํ™”์˜ ๊ฐ๋…์ด๋‹ค. ์กฐ์ง€ ๋ฃจ์นด์Šค๋Š” ์Šคํƒ€ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1436๋ฒˆ ๋ฌธ์ œ - ์˜ํ™”๊ฐ๋… ์ˆŒ N = int(input()) cnt = 0 nbr = 666 while True : if "666" in str(nbr) : cnt += 1 if cnt == N : print(nbr) break print(nbr) nbr += 1 ์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ๋ดค์„ ๋•Œ ๊ทœ์น™์„ ์ฐพ์œผ๋ ค๊ณ  ํ•˜์˜€์œผ๋‚˜ ๋ณ„๋‹ค๋ฅธ ๊ทœ์น™์„ ์ฐพ๊ธฐ ์–ด๋ ค์› ๊ณ  ์™„์ „ํƒ์ƒ‰์„ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•˜..

[๋ฐฑ์ค€] [Python] 11726๋ฒˆ_2xN ํƒ€์ผ๋ง_๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/11726 11726๋ฒˆ: 2×n ํƒ€์ผ๋ง 2×n ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์„ 1×2, 2×1 ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ 2×5 ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šด ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์˜ ์˜ˆ์ด๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 11726๋ฒˆ ๋ฌธ์ œ - 2xN ํƒ€์ผ๋ง n = int(input()) d = [0] * 1001 d[1] = 1 d[2] = 2 for i in range(3, n+1): d[i] = d[i-1] + d[i-2] print(d[n]%10007) ์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ์œ„ํ•ด ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์ฒ˜์Œ d ๋ฐฐ์—ด์„ n์˜ ๊ฐฏ์ˆ˜๋งŒํผ ์„ ์–ธํ•ด์ฃผ๊ณ  ์ ํ™”์‹์„ ๊ตฌํ•˜๋ ค๊ณ  ํ•˜์˜€๋‹ค. ํƒ€์ผ ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ ..