๐Ÿ—๏ธ Algorithm 344

[๋ฐฑ์ค€] [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์˜ ๊ฐฏ์ˆ˜๋งŒํผ ์„ ์–ธํ•ด์ฃผ๊ณ  ์ ํ™”์‹์„ ๊ตฌํ•˜๋ ค๊ณ  ํ•˜์˜€๋‹ค. ํƒ€์ผ ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ ..

[Programmers] [์™„์ „ํƒ์ƒ‰] [Python] Level2_์นดํŽซ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/42842 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์™„์ „ํƒ์ƒ‰ - ์นดํŽซ def solution(brown, yellow): answer = [] total = brown + yellow for weight in range(total, 2, -1): if total % weight == 0: height = total // weight if yellow == (weight-2) * (height-2): return..

[Programmers] [์—ฐ์Šต๋ฌธ์ œ] [Python] Level2_์ˆซ์ž์˜ ํ‘œํ˜„

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12924 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์ˆซ์ž์˜ ํ‘œํ˜„ def solution(n): answer = 0 for i in range(1, n+1): sum = 0 for j in range(i, n+1): sum += j if sum == n: answer += 1 break elif sum > n : break return answer 2์ค‘ for๋ฌธ์„ ํ†ตํ•ด์„œ ์ฒซ๋ฒˆ์งธ for๋ฌธ์—์„œ๋Š” 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ n๊นŒ..

[Programmers] [์Šคํƒ/ํ] [Python] Level2_์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12909 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์Šคํƒ/ํ - ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ def solution(s): answer = True stack = [] for t in s: if t == '(': stack.append(t) elif len(stack) and t == ')': stack.pop() else: return False return False if len(stack) else True stack์— ..

[Programmers] [์—ฐ์Šต ๋ฌธ์ œ] [Python] Level2_์ตœ์†Ÿ๊ฐ’ ๋งŒ๋“ค๊ธฐ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12941 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์ตœ์†Ÿ๊ฐ’ ๋งŒ๋“ค๊ธฐ def solution(A,B): answer = 0 A.sort() # ์˜ค๋ฆ„์ฐจ์ˆœ B.sort(reverse=True) # ๋‚ด๋ฆผ์ฐจ์ˆœ for i in range(len(A)): answer += A[i]*B[i] return answer ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” A์˜ ์ตœ์†Ÿ๊ฐ’๊ณผ B์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ณฑํ–ˆ์„ ๋•Œ ์ตœ์†Ÿ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค๋Š” ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜์˜€๋‹ค. ๊ทธ ..

[๋ฐฑ์ค€] [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๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ ์‰ฝ๊ฒŒ ์ ํ™”์‹์„ ๊ตฌํ• ์ˆ˜ ์žˆ์–ด์„œ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ..