본문 바로가기

백준 알고리즘

[Python] 백준 알고리즘 문제풀이 :: 9020번 백준 알고리즘 9020번 골드바흐의 추측 문제풀이. 소수 분류에 있는 문제를 풀면서 시간초과가 엄청 많이 났다. 심지어 가장 시간 오래 걸릴 것 같은 경우를 파이참으로 돌렸을 땐 잘 나와도 백준에서 돌리면 시간초과가 나오는 경우가 많았다. 고생 좀 했다. 골드바흐의 추측은 2보다 큰 모든 짝수를 두 소수의 합으로 나타낼 수 있다는 것이다. 10000 이하의 수는 이미 증명이 됐다. 그에 해당하는 소수 조합을 출력하는 문제다. 문제 https://www.acmicpc.net/problem/9020 풀이 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import sys primes = []for i in.. 더보기
[Python] 백준 알고리즘 문제풀이 :: 1094번 C로는 SW Expert Academy 문제를, 파이썬으로는 백준 문제를 푼다. 각각 1일 1문제를 풀기로 했고 거의 지키고 있다. 다만 블로그 업로드는 아무래도 C를 많이 올리게 됐다. 코드도 좀 더 길고 복잡하다보니 할 말이 많아서. 오랜만에 파이썬 문제를 하나 풀린다. 막대기 문제. 본질은 이진법으로 숫자를 구현하는 문제다. 재귀를 썼다. 문제 https://www.acmicpc.net/problem/1094 풀이 123456789101112131415import sys def stickAdder(x, stick, cnt, idx): unit = [64, 32, 16, 8, 4, 2, 1] if stick+unit[idx] == x: print(cnt) elif stick+unit[idx] 더보기
[Python] 백준 알고리즘 문제풀이 :: 2775번 백준 알고리즘 문제풀이. 어렵지는 않은데, 규칙을 명확하게 이해하고 코드를 구현하기 좀 헷갈렸던 문제다. 문제 https://www.acmicpc.net/problem/2775 풀이 123456789101112131415161718def summer(k, n): sum = 0 if k == 0: sum += n elif k == 1: for i in range(1, n+1): sum += i else: for i in range(1, n+1): sum += i * summer(k-2, n-i+1) return sum tc = int(input()) for i in range(tc): k = int(input()) n = int(input()) print(summer(k,n))cs 재귀함수를 이용해서 풀어.. 더보기