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

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 1932๋ฒˆ_์ •์ˆ˜ ์‚ผ๊ฐํ˜•

๋ฌธ์ œ https://www.acmicpc.net/problem/1987 1987๋ฒˆ: ์•ŒํŒŒ๋ฒณ ์„ธ๋กœ R์นธ, ๊ฐ€๋กœ C์นธ์œผ๋กœ ๋œ ํ‘œ ๋ชจ์–‘์˜ ๋ณด๋“œ๊ฐ€ ์žˆ๋‹ค. ๋ณด๋“œ์˜ ๊ฐ ์นธ์—๋Š” ๋Œ€๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์ด ํ•˜๋‚˜์”ฉ ์ ํ˜€ ์žˆ๊ณ , ์ขŒ์ธก ์ƒ๋‹จ ์นธ (1ํ–‰ 1์—ด) ์—๋Š” ๋ง์ด ๋†“์—ฌ ์žˆ๋‹ค. ๋ง์€ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ธ์ ‘ํ•œ ๋„ค ์นธ ์ค‘์˜ ํ•œ ์นธ์œผ www.acmicpc.net ํ’€์ด DP๋ฅผ ์ด์šฉํ•œ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์ด๋‹ค. ๊ทœ์น™์„ ์ฐพ๋‹ค๋ณด๋ฉด ๋งค์šฐ ์‰ฝ๊ฒŒ ๋‚˜์˜จ๋‹ค. # ๋ฐฑ์ค€ 1932๋ฒˆ ๋ฌธ์ œ - ์ •์ˆ˜ ์‚ผ๊ฐํ˜• n = int(input()) dp = [] for _ in range(n): dp.append(list(map(int, input().split()))) for i in range(len(dp)): for j in range(len(dp[i])): if j == 0: d..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 9933๋ฒˆ_๋ฏผ๊ท ์ด์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ

๋ฌธ์ œ https://www.acmicpc.net/problem/9933 9933๋ฒˆ: ๋ฏผ๊ท ์ด์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ์ˆ˜ N (2 ≤ N ≤ 100)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ ์ค„์—๋Š” ํŒŒ์ผ์— ์ ํ˜€์žˆ๋Š” ๋‹จ์–ด๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” 2๋ณด๋‹ค ํฌ๊ณ  14๋ณด๋‹ค ์ž‘์€ www.acmicpc.net ํ’€์ด import sys input = sys.stdin.readline N = int(input()) files = [input().rstrip() for _ in range(N)] for i in range(N-1): for j in range(i,N): if files[i][::-1] == files[j]: print(len(files[i]), files[i][len..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class4] 12852๋ฒˆ_1๋กœ ๋งŒ๋“ค๊ธฐ 2

๋ฌธ์ œ https://www.acmicpc.net/problem/12852 12852๋ฒˆ: 1๋กœ ๋งŒ๋“ค๊ธฐ 2 ์ฒซ์งธ ์ค„์— 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 106๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ํ’€์ด BFS๋ฅผ ์ด์šฉํ•œ ํ’€์ด # ๋ฐฑ์ค€ 12852๋ฒˆ ๋ฌธ์ œ - 1๋กœ ๋งŒ๋“ค๊ธฐ 2 from collections import deque n = int(input()) q = deque() q.append((n,[n])) visited = [0]*(n+1) while q: num,ans = q.popleft() if num == 1: print(len(ans)-1) print(*ans) break if not visited[num]: visited[num]=1 if num%3==0: q.append((num..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] 1946๋ฒˆ_์‹ ์ž… ์‚ฌ์›

๋ฌธ์ œ https://www.acmicpc.net/problem/1946 1946๋ฒˆ: ์‹ ์ž… ์‚ฌ์› ์ฒซ์งธ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T(1 ≤ T ≤ 20)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์— ์ง€์›์ž์˜ ์ˆซ์ž N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ ์ค„์—๋Š” ๊ฐ๊ฐ์˜ ์ง€์›์ž์˜ ์„œ๋ฅ˜์‹ฌ์‚ฌ ์„ฑ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1946๋ฒˆ ๋ฌธ์ œ - ์‹ ์ž… ์‚ฌ์› from collections import deque import sys input = sys.stdin.readline t = int(input()) for _ in range(t): n = int(input()) arr = [] for _ in range(n): a, b = map(int, input().split()) a..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [ํ] 16927๋ฒˆ_๋ฑ€๊ณผ ์‚ฌ๋‹ค๋ฆฌ ๊ฒŒ์ž„

๋ฌธ์ œ https://www.acmicpc.net/problem/1021 1021๋ฒˆ: ํšŒ์ „ํ•˜๋Š” ํ ์ฒซ์งธ ์ค„์— ํ์˜ ํฌ๊ธฐ N๊ณผ ๋ฝ‘์•„๋‚ด๋ ค๊ณ  ํ•˜๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๊ณ , M์€ N๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ง€๋ฏผ์ด๊ฐ€ ๋ฝ‘์•„๋‚ด๋ ค๊ณ  ํ•˜๋Š” ์ˆ˜์˜ ์œ„์น˜๊ฐ€ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1021๋ฒˆ ๋ฌธ์ œ - ํšŒ์ „ํ•˜๋Š” ํ from collections import deque n,m = list(map(int,input().split())) value = list(map(int,input().split())) q = deque([i+1 for i in range(n)]) count = 0 for x in value: while True: if q.index(x)..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 2583๋ฒˆ_์˜์—ญ ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/2583 2583๋ฒˆ: ์˜์—ญ ๊ตฌํ•˜๊ธฐ ์ฒซ์งธ ์ค„์— M๊ณผ N, ๊ทธ๋ฆฌ๊ณ  K๊ฐ€ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฐจ๋ก€๋กœ ์ฃผ์–ด์ง„๋‹ค. M, N, K๋Š” ๋ชจ๋‘ 100 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ K๊ฐœ์˜ ์ค„์—๋Š” ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ง์‚ฌ๊ฐํ˜•์˜ ์™ผ์ชฝ ์•„๋ž˜ ๊ผญ์ง“์ ์˜ x, y์ขŒํ‘œ๊ฐ’๊ณผ ์˜ค www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2583๋ฒˆ ๋ฌธ์ œ - ์˜์—ญ ๊ตฌํ•˜๊ธฐ from collections import deque dx, dy = [0,0,-1,1], [1,-1,0,0] m, n, k = map(int, input().split()) graph = [[0]*(n) for _ in range(m)] for _ in range(k): x, y, x1, y1 = map(int, input(..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 2644๋ฒˆ_์ดŒ์ˆ˜๊ณ„์‚ฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/2644 2644๋ฒˆ: ์ดŒ์ˆ˜๊ณ„์‚ฐ ์‚ฌ๋žŒ๋“ค์€ 1, 2, 3, …, n (1 ≤ n ≤ 100)์˜ ์—ฐ์†๋œ ๋ฒˆํ˜ธ๋กœ ๊ฐ๊ฐ ํ‘œ์‹œ๋œ๋‹ค. ์ž…๋ ฅ ํŒŒ์ผ์˜ ์ฒซ์งธ ์ค„์—๋Š” ์ „์ฒด ์‚ฌ๋žŒ์˜ ์ˆ˜ n์ด ์ฃผ์–ด์ง€๊ณ , ๋‘˜์งธ ์ค„์—๋Š” ์ดŒ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ์‚ฌ๋žŒ์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2644๋ฒˆ ๋ฌธ์ œ - ์ดŒ์ˆ˜๊ณ„์‚ฐ from collections import deque n = int(input()) x, y = map(int, input().split()) m = int(input()) graph = [[] for i in range(n+1)] visited = [0 for _ in range(n+1)] for i in range(m): a,..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 5014๋ฒˆ_์Šคํƒ€ํŠธ๋งํฌ

๋ฌธ์ œ https://www.acmicpc.net/problem/5014 5014๋ฒˆ: ์Šคํƒ€ํŠธ๋งํฌ ์ฒซ์งธ ์ค„์— F, S, G, U, D๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) ๊ฑด๋ฌผ์€ 1์ธต๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ , ๊ฐ€์žฅ ๋†’์€ ์ธต์€ F์ธต์ด๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 5014๋ฒˆ ๋ฌธ์ œ - ์Šคํƒ€ํŠธ๋งํฌ from collections import deque import sys input = sys.stdin.readline def bfs(v): q = deque([v]) visited[v] = 1 while q: v = q.popleft() if v == g: return count[g] for i in (v+u, v-d): if 0 < i

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [BFS/DFS] 7569๋ฒˆ_ํ† ๋งˆํ† 

๋ฌธ์ œ https://www.acmicpc.net/problem/7569 7569๋ฒˆ: ํ† ๋งˆํ†  ์ฒซ ์ค„์—๋Š” ์ƒ์ž์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ์ •์ˆ˜ M,N๊ณผ ์Œ“์•„์˜ฌ๋ ค์ง€๋Š” ์ƒ์ž์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” H๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. M์€ ์ƒ์ž์˜ ๊ฐ€๋กœ ์นธ์˜ ์ˆ˜, N์€ ์ƒ์ž์˜ ์„ธ๋กœ ์นธ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋‹จ, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net ํ’€์ด BFS๋กœ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์ง€๋งŒ 3์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋‹ˆ ์ธ๋ฑ์Šค ๋ถ€๋ถ„์„ ์ž˜ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž # ๋ฐฑ์ค€ 7569๋ฒˆ ๋ฌธ์ œ - ํ† ๋งˆํ†  from collections import deque import sys input = sys.stdin.readline dx=[0,0,-1,1,0,0] # ๋†’์ด dy=[1,-1,0,0,0,0] dz=[0,0,0,0,1,-1] m,n,h ..