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

[๋ฐฑ์ค€] [Python] 1018๋ฒˆ_์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ_๋ธŒ๋ฃจํŠธ ํฌ์Šค

๋ฌธ์ œ https://www.acmicpc.net/problem/1018 1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ ์ฒซ์งธ ์ค„์— N๊ณผ M์ด ์ฃผ์–ด์ง„๋‹ค. N๊ณผ M์€ 8๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๋ณด๋“œ์˜ ๊ฐ ํ–‰์˜ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. B๋Š” ๊ฒ€์€์ƒ‰์ด๋ฉฐ, W๋Š” ํฐ์ƒ‰์ด๋‹ค. www.acmicpc.net ํ’€์ด n, m = map(int, input().split()) l = [] mini = [] for _ in range(n): l.append(input()) for a in range(n - 7): for i in range(m - 7): idx1 = 0 idx2 = 0 for b in range(a, a + 8): for j in range(i, i + 8): # 8X8 ๋ฒ”์œ„๋ฅผ ..

[๋ฐฑ์ค€] [Python] 9095๋ฒˆ_1,2,3 ๋”ํ•˜๊ธฐ_๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/9095 9095๋ฒˆ: 1, 2, 3 ๋”ํ•˜๊ธฐ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค, n์„ 1, 2, 3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ํ’€์ด #๋ฐฑ์ค€ 9095๋ฒˆ ๋ฌธ์ œ - 1,2,3 ๋”ํ•˜๊ธฐ d = [0]*11 d[1] = 1 d[2] = 2 d[3] = 4 for i in range(4,11): d[i] = d[i-1] + d[i-2] + d[i-3] n = int(input()) for _ in range(n): m = int(input()) print(d[m]) ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. BFS๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ ์‰ฝ๊ฒŒ ์ ํ™”์‹์„ ๊ตฌํ• ์ˆ˜ ์žˆ์–ด์„œ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ..

[๋ฐฑ์ค€] [Python] 1912๋ฒˆ_์—ฐ์†ํ•ฉ_๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/1912 1912๋ฒˆ: ์—ฐ์†ํ•ฉ ์ฒซ์งธ ์ค„์— ์ •์ˆ˜ n(1 ≤ n ≤ 100,000)์ด ์ฃผ์–ด์ง€๊ณ  ๋‘˜์งธ ์ค„์—๋Š” n๊ฐœ์˜ ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ˆ˜๋Š” -1,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1912๋ฒˆ ๋ฌธ์ œ - ์—ฐ์†ํ•ฉ n = int(input()) arr =list(map(int, input().split())) d = [0]*n d[0] = arr[0] for i in range(1, n): d[i] = max(arr[i], d[i-1] + arr[i]) print(max(d)) ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง€๋ฉด ์ˆœ์„œ๋Œ€๋กœ ํ•ฉํ•˜์—ฌ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์ด ๋ฌธ์ œ์—์„œ๋Š” ๋™์  ํ”„๋กœ..

[๋ฐฑ์ค€] [Python] 1904๋ฒˆ_01ํƒ€์ผ_๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/1904 1904๋ฒˆ: 01ํƒ€์ผ ์ง€์›์ด์—๊ฒŒ 2์ง„ ์ˆ˜์—ด์„ ๊ฐ€๋ฅด์ณ ์ฃผ๊ธฐ ์œ„ํ•ด, ์ง€์›์ด ์•„๋ฒ„์ง€๋Š” ๊ทธ์—๊ฒŒ ํƒ€์ผ๋“ค์„ ์„ ๋ฌผํ•ด์ฃผ์…จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ฐ๊ฐ์˜ ํƒ€์ผ๋“ค์€ 0 ๋˜๋Š” 1์ด ์“ฐ์—ฌ ์žˆ๋Š” ๋‚ฑ์žฅ์˜ ํƒ€์ผ๋“ค์ด๋‹ค. ์–ด๋Š ๋‚  ์ง“๊ถ‚์€ ๋™์ฃผ๊ฐ€ ์ง€์›์ด www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1904๋ฒˆ ๋ฌธ์ œ - 01ํƒ€์ผ n = int(input()) d = [0]*1000001 d[1] = 1 d[2] = 2 for i in range(3, n+1): d[i] = (d[i-1] + d[i-2])%15746 print(d[n]) ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๋™์  ํ”„๋กœ ๊ทธ๋ž˜๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋จผ์ € d[1] => 1 ํƒ€์ผ => 1 d[2] => 00, 11 ํƒ€์ผ => 2 d[3] =>..

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

๋ฌธ์ œ https://www.acmicpc.net/problem/15649 15649๋ฒˆ: N๊ณผ M (1) ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ค‘๋ณต๋˜๋Š” ์ˆ˜์—ด์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ถœ๋ ฅํ•˜๋ฉด ์•ˆ๋˜๋ฉฐ, ๊ฐ ์ˆ˜์—ด์€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ์ˆ˜์—ด์€ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•ด www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 15649๋ฒˆ ๋ฌธ์ œ - N๊ณผ M(1) n, m = map(int, input().split()) s = [] def solution(): if len(s) == m: print(' '.join(map(str, s))) return for i in range(1, n+1): if i in s: continue s.append(i) solution() s.pop() solution()

[๋ฐฑ์ค€] [Python] 10845๋ฒˆ_ํ

https://www.acmicpc.net/problem/10845 10845๋ฒˆ: ํ ์ฒซ์งธ ์ค„์— ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์˜ ์ˆ˜ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๋ช…๋ น์ด ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜๋Š” 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋ฌธ์ œ์— ๋‚˜์™€์žˆ์ง€ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 10845๋ฒˆ ๋ฌธ์ œ - ํ import collections import sys N = int(sys.stdin.readline()) queue = collections.deque() for i in range(N): q = sys.stdin.readline().split() if q[0] == 'push': queue.append(int(q[1])) elif q[0]..

[๋ฐฑ์ค€] [Python] 1920๋ฒˆ_์ˆ˜ ์ฐพ๊ธฐ

https://www.acmicpc.net/problem/1920 1920๋ฒˆ: ์ˆ˜ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M๊ฐœ์˜ ์ˆ˜๋“ค์ด ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ด ์ˆ˜๋“ค www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1920๋ฒˆ ๋ฌธ์ œ - ์ˆ˜ ์ฐพ๊ธฐ def binary_search(element, some_list, start = 0, end=None): if end == None: end = len(some_list) - 1 if start > end: return 0 mid = (start + end) // 2 if element == some_li..

[๋ฐฑ์ค€] [Python] 7568๋ฒˆ_๋ฉ์น˜

https://www.acmicpc.net/problem/7568 7568๋ฒˆ: ๋ฉ์น˜ ์šฐ๋ฆฌ๋Š” ์‚ฌ๋žŒ์˜ ๋ฉ์น˜๋ฅผ ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ, ์ด ๋‘ ๊ฐœ์˜ ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ๊ทธ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ฒจ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ์˜ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ x kg์ด๊ณ  ํ‚ค๊ฐ€ y cm๋ผ๋ฉด ์ด ์‚ฌ๋žŒ์˜ ๋ฉ์น˜๋Š” (x, y)๋กœ ํ‘œ์‹œ๋œ๋‹ค. ๋‘ ์‚ฌ๋žŒ A ์™€ B์˜ ๋ฉ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 7568๋ฒˆ ๋ฌธ์ œ - ๋ฉ์น˜ n = int(input()) info = [] for i in range(n): w, h = map(int, input().split()) info.append((w,h)) for i in info: rank = 1 for j in info: if i[0] < j[0] and i[1] < j[1]: rank += 1 print(rank, end..

[๋ฐฑ์ค€] [Python] 13305๋ฒˆ_์ฃผ์œ ์†Œ

https://www.acmicpc.net/problem/13305 13305๋ฒˆ: ์ฃผ์œ ์†Œ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ๋‹ค์Œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ๋„์‹œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ N(2 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” ์ธ์ ‘ํ•œ ๋‘ ๋„์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ์˜ ๊ธธ์ด๊ฐ€ ์ œ์ผ ์™ผ์ชฝ ๋„๋กœ๋ถ€ํ„ฐ N-1 www.acmicpc.net ํ’€์ด ์ฒซ ๋ฒˆ์งธ ํ’€์ด n = int(input()) distance = list(map(int, input().split())) costs = list(map(int, input().split())) res = distance[0] * costs[0] m = costs[0] dist = 0 for i in range(1, n-1): if costs[i] < m: res += m * d..

[๋ฐฑ์ค€] [Python] 1789๋ฒˆ_์ˆ˜๋“ค์˜ ํ•ฉ

https://www.acmicpc.net/problem/1789 1789๋ฒˆ: ์ˆ˜๋“ค์˜ ํ•ฉ ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ S(1 ≤ S ≤ 4,294,967,295)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1789๋ฒˆ ๋ฌธ์ œ - ์ˆ˜๋“ค์˜ ํ•ฉ n = int(input()) temp = 1 answer = 0 while True: n -= temp if n >= 0: answer += 1 temp += 1 else: print(answer) break