분류 전체보기 (163) 썸네일형 리스트형 [백준/4375/파이썬] 1 소스코드 def one(n): ones = [1] i = 1 while (1): if ones[-1] % n == 0 : return ones[-1] else : ones.append(ones[-1]+10**i) i += 1 while (1): try: n = int(input()) except: break print(len(str(one(n)))) 알고리즘 n의 배수라는 건 결국 어떤수를 n으로 나눴을때 나머지가 0 이라는 것이다. 따라서 1로만 이루어진 list를 만들어서 ( ones[1,11,111,...]) 마지막 숫자 + 10의 배수를 해주면 1로만 이뤄진 list가 생성이 된다. 마지막 자리에 있는 숫자가 나눠떨어지면 그 숫자를 리턴해주고 결과는 그 숫자의 길이를 출력해주면 된다. [백준/16974/파이썬] 레벨 햄버거 - 재귀 소스코드 N,X = map(int,input().split()) bur = [1] * 51 pat = [1] * 51 for i in range(1, N+1): bur[i] = 2 * bur[i-1] + 3 pat[i] = 2 * pat[i-1] + 1 def eat(n, x): if n == 0: return x if x == 1: return 0 elif x [백준/2003/파이썬] 수들의 합2 - brute force 소스코드 N,M = map(int,input().split()) A= list(map(int,input().split())) start=0 answer=0 end=0 while start 앞의 원소를 뺌) [백준/1309/파이썬] 동물원 - DP 소스코드 n = int(input()) dp =[1,3,7] for i in range (2,100001): dp.append((dp[i]*2 + dp[i-1])%9901) print(dp[n]%9901) 알고리즘 점화식 (dp[i]*2 + dp[i-1])만 찾으면 쉽게 풀리는 문제였다. 다만 처음에 메모리초과 에러가 났는데 찾아보니 계산할때마다 9901의 나머지를 추가해줘야 했다. 나머지로 계산을 해도 전체 결과에서 나머지 계산을 한게 같게 되는걸 알게 되었다. [백준/14889/파이썬] 스타트와 링크 소스코드 from itertools import combinations N = int(input()) startlink = [list(map(int, input().split())) for _ in range(N)] answer = int(1e9) num = [i for i in range(N)] team = list(combinations(num,N//2)) for start_player in team: start_total = 0 link_total = 0 link_player = list(set(num)-set(start_player)) for i,j in list(combinations(start_player,2)): start_total += startlink[i][j] start_total +.. [백준/11726/파이썬] 2×n 타일링 소스코드 n = int(input()) dp = [0]*(1001) dp[1] = 1 dp[2] = 2 for i in range (3,1001): dp[i] = dp[i-1]+dp[i-2] print(dp[n]%10007) 알고리즘 dp라는걸 알고 풀면 정말 쉬운 문제입니다. 2 - 2 3 - 3 4 - 5 5 - 8 6 - 13 7 - 21 8 - 34 9 - 55 이렇게 n번째 숫자를 구할때는 (n-1번째) + (n-2번째)를 해주면 됩니다. 이제 백준 실버 난이도는 손쉽게 풀 수 있을 것 같다는 자신감을 얻었습니다. [백준/1182/파이썬] 부분수열의 합 소스코드 from itertools import combinations N,S = map(int,input().split()) seq = list(map(int,input().split())) result = [] cnt = 0 for i in range(len(seq)+1): result = result+list(combinations(seq,i)) del result[0] for i in result: if (sum(i)) == S: cnt += 1 print(cnt) 알고리즘 파이썬의 itertools에 있는 combinations를 이용하여 부분 순열을 구한다. 공집합은 제거한다 합이 S인 개수를 구한다. 기본적인 문제라 시시했다. [백준/6064/파이썬] 카잉 달력 소스코드 T = int(input()) def sol(m,n,x,y): while x 이전 1 ··· 13 14 15 16 17 18 19 ··· 21 다음