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

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 11724๋ฒˆ_์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜

๋ฌธ์ œ https://www.acmicpc.net/problem/11724 11724๋ฒˆ: ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N๊ณผ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ๊ฐ„์„ ์˜ ์–‘ ๋์  u์™€ v๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ u, v ≤ N, u ≠ v) ๊ฐ™์€ ๊ฐ„์„ ์€ ํ•œ ๋ฒˆ๋งŒ ์ฃผ www.acmicpc.net ํ’€์ด DFS๋ฅผ ์ด์šฉํ•œ ํ’€์ด # ๋ฐฑ์ค€ 11724๋ฒˆ ๋ฌธ์ œ - ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ import sys sys.setrecursionlimit(10**7) input = sys.stdin.readline n, m = map(int, input().split()) graph = [[] for _ in range(n+1)] visited = ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 1927๋ฒˆ_์ตœ๋Œ€ ํž™

๋ฌธ์ œ https://www.acmicpc.net/problem/11279 11279๋ฒˆ: ์ตœ๋Œ€ ํž™ ์ฒซ์งธ ์ค„์— ์—ฐ์‚ฐ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ x๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋งŒ์•ฝ x๊ฐ€ ์ž์—ฐ์ˆ˜๋ผ๋ฉด ๋ฐฐ์—ด์— x๋ผ๋Š” ๊ฐ’์„ ๋„ฃ๋Š”(์ถ”๊ฐ€ํ•˜๋Š”) ์—ฐ์‚ฐ์ด๊ณ , x๊ฐ€ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 11279๋ฒˆ ๋ฌธ์ œ - ์ตœ๋Œ€ ํž™ import sys import heapq n= int(input()) heap = [] for _ in range(n) : x = int(sys.stdin.readline()) if x : heapq.heappush(heap, (-x, x)) else : if len(heap) >= 1 : print(heapq.heappop(..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [๊ตฌํ˜„] 2167๋ฒˆ_2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•ฉ

๋ฌธ์ œ https://www.acmicpc.net/problem/2167 2167๋ฒˆ: 2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•ฉ ์ฒซ์งธ ์ค„์— ๋ฐฐ์—ด์˜ ํฌ๊ธฐ N, M(1 ≤ N, M ≤ 300)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” M๊ฐœ์˜ ์ •์ˆ˜๋กœ ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๋ฐฐ์—ด์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์ˆ˜๋Š” ์ ˆ๋Œ“๊ฐ’์ด 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 2167๋ฒˆ ๋ฌธ์ œ - 2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•ฉ n, m = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(n)] k = int(input()) dp = [[0] * (m+1) for _ in range(n+1)] for i in range(1, n+1): for ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [๊ตฌํ˜„] 17478๋ฒˆ_์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?

๋ฌธ์ œ https://www.acmicpc.net/problem/17478 17478๋ฒˆ: ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”? ํ‰์†Œ์— ์งˆ๋ฌธ์„ ์ž˜ ๋ฐ›์•„์ฃผ๊ธฐ๋กœ ์œ ๋ช…ํ•œ ์ค‘์•™๋Œ€ํ•™๊ต์˜ JH ๊ต์ˆ˜๋‹˜์€ ํ•™์ƒ๋“ค๋กœ๋ถ€ํ„ฐ ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•˜์—ฌ ๋งŽ์€ ์งˆ๋ฌธ์„ ๋ฐ›์•„์™”๋‹ค. ๋งค๋ฒˆ ์งˆ๋ฌธ์„ ์ž˜ ๋ฐ›์•„์ฃผ์…จ๋˜ JH ๊ต์ˆ˜๋‹˜์ด์ง€๋งŒ ๊ทธ๋Š” ์ค‘์•™๋Œ€ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 17478๋ฒˆ ๋ฌธ์ œ - ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”? def recursive(m): print("_" * (4 * (n - m)) + '"์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?"') if not m: print("_" * (4 * (n - m)) + '"์žฌ๊ท€ํ•จ์ˆ˜๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ผ๋„ค"') print("_" * (4 * (n - m)) + "๋ผ๊ณ  ๋‹ต๋ณ€ํ•˜์˜€์ง€.") return print("_" * ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [๊ตฌํ˜„] 1475๋ฒˆ_๋ฐฉ ๋ฒˆํ˜ธ

๋ฌธ์ œ https://www.acmicpc.net/problem/1475 1475๋ฒˆ: ๋ฐฉ ๋ฒˆํ˜ธ ์ฒซ์งธ ์ค„์— ๋‹ค์†œ์ด์˜ ๋ฐฉ ๋ฒˆํ˜ธ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1475๋ฒˆ ๋ฌธ์ œ - ๋ฐฉ ๋ฒˆํ˜ธ n = int(input()) card = [0] * 10 for i in str(n): if i == '9' or i == '6': if card[6] == card[9]: card[6] += 1 else: card[9] += 1 else: card[int(i)] += 1 print(max(card))

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [DFS/BFS] 2667๋ฒˆ_๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/2667 2667๋ฒˆ: ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ ๊ณผ ๊ฐ™์ด ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ์ง€๋„๊ฐ€ ์žˆ๋‹ค. 1์€ ์ง‘์ด ์žˆ๋Š” ๊ณณ์„, 0์€ ์ง‘์ด ์—†๋Š” ๊ณณ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ฒ ์ˆ˜๋Š” ์ด ์ง€๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์—ฐ๊ฒฐ๋œ ์ง‘์˜ ๋ชจ์ž„์ธ ๋‹จ์ง€๋ฅผ ์ •์˜ํ•˜๊ณ , ๋‹จ์ง€์— ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์ด๋ ค ํ•œ๋‹ค. ์—ฌ www.acmicpc.net ํ’€์ด DFS๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด # ๋ฐฑ์ค€ 2667๋ฒˆ ๋ฌธ์ œ - ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ n = int(input()) graph = [] num = [] for i in range(n): graph.append(list(map(int, input()))) dx = [0,0,1,-1] dy = [1,-1,0,0] def DFS(x,y): if x = n or y = n: ret..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 1927๋ฒˆ_์ตœ์†Œ ํž™

๋ฌธ์ œ https://www.acmicpc.net/problem/1927 1927๋ฒˆ: ์ตœ์†Œ ํž™ ์ฒซ์งธ ์ค„์— ์—ฐ์‚ฐ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ x๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋งŒ์•ฝ x๊ฐ€ ์ž์—ฐ์ˆ˜๋ผ๋ฉด ๋ฐฐ์—ด์— x๋ผ๋Š” ๊ฐ’์„ ๋„ฃ๋Š”(์ถ”๊ฐ€ํ•˜๋Š”) ์—ฐ์‚ฐ์ด๊ณ , x๊ฐ€ 0 www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1927๋ฒˆ ๋ฌธ์ œ - ์ตœ์†Œ ํž™ import heapq import sys n = int(sys.stdin.readline()) heap = [] heapq.heapify(heap) for _ in range(n): x = int(sys.stdin.readline()) if x == 0: if heap: print(heapq.heappop(heap)) else:..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [๊ตฌํ˜„] 1780๋ฒˆ_์ข…์ด์˜ ๊ฐœ์ˆ˜

๋ฌธ์ œ https://www.acmicpc.net/problem/1780 1780๋ฒˆ: ์ข…์ด์˜ ๊ฐœ์ˆ˜ N×Nํฌ๊ธฐ์˜ ํ–‰๋ ฌ๋กœ ํ‘œํ˜„๋˜๋Š” ์ข…์ด๊ฐ€ ์žˆ๋‹ค. ์ข…์ด์˜ ๊ฐ ์นธ์—๋Š” -1, 0, 1 ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ํ–‰๋ ฌ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ํฌ๊ธฐ๋กœ ์ž๋ฅด๋ ค๊ณ  ํ•œ๋‹ค. ๋งŒ์•ฝ ์ข…์ด๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ์ˆ˜ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1780๋ฒˆ ๋ฌธ์ œ - ์ข…์ด์˜ ๊ฐœ์ˆ˜ n = int(input()) board = [list(map(int, input().split())) for _ in range(n)] result_minus = 0 result_zero = 0 result_plus = 0 def dfs(x,y,n): global result_minus, result_zero, result_plus ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [๊ตฌํ˜„] 10815๋ฒˆ_์ˆซ์ž ์นด๋“œ

๋ฌธ์ œ https://www.acmicpc.net/problem/10815 10815๋ฒˆ: ์ˆซ์ž ์นด๋“œ ์ฒซ์งธ ์ค„์— ์ƒ๊ทผ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ˆซ์ž ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ˆซ์ž ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์ˆ˜๋Š” -10,000,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 10, www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 10815๋ฒˆ ๋ฌธ์ œ - ์ˆซ์ž ์นด๋“œ import sys input = sys.stdin.readline n = int(input()) arr = set(map(int,input().split())) m = int(input()) m_arr= list(map(int,input().split())) for i in range(m): if m_arr[i] ..

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [๊ตฌํ˜„] 1010๋ฒˆ_๋‹ค๋ฆฌ ๋†“๊ธฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/1010 1010๋ฒˆ: ๋‹ค๋ฆฌ ๋†“๊ธฐ ์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„๋ถ€ํ„ฐ ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์— ๋Œ€ํ•ด ๊ฐ•์˜ ์„œ์ชฝ๊ณผ ๋™์ชฝ์— ์žˆ๋Š” ์‚ฌ์ดํŠธ์˜ ๊ฐœ์ˆ˜ ์ •์ˆ˜ N, M (0 < N ≤ M < 30)์ด ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1010๋ฒˆ ๋ฌธ์ œ - ๋‹ค๋ฆฌ ๋†“๊ธฐ import math t = int(input()) for _ in range(t): n, m = map(int, input().split()) nCr = math.factorial(m) // (math.factorial(n) * (math.factorial(m-n))) print(nCr)