알고리즘

알고리즘

<백준> 1259번 파이썬 알고리즘

while(True): _input = input() if(_input == "0"): break if(len(_input)%2 == 0): cnt = len(_input) // 2 sum = "" for i in range(cnt): sum += _input[i] for j in range(cnt - 1, -1, -1): sum += _input[j] if _input == sum: print("yes") else: print("no") else: cnt = len(_input) // 2 + 1 sum = "" for i in range(cnt): sum += _input[i] for j in range(cnt - 2, -1, -1): sum += _input[j] if _input == sum: pr..

알고리즘

<백준> 2581번 파이썬 알고리즘

a = int(input()) b = int(input()) arr = [] while(a < b+1): if a == 2: arr.append(a) else: for i in range(2, a): if a % i == 0: break if i == a - 1: arr.append(a) a += 1 if len(arr) == 0: print(-1) else: print(sum(arr)) print(arr[0]) a == 2 일때는 if a % i == 0 이부분에서 예외가 나니 윗줄에 2일때 리스트에 그냥 더한다.

알고리즘

<백준> 1292번 파이썬 알고리즘

a, b = map(int,input().split()) res = 0 arr = [] arr.append(0) for i in range(1000): for j in range(i): if len(arr) < 1001: arr.append(i) for i in range(b-a+1): res += arr[a] a += 1 print(res) 먼저 리스트에 값들을 모두 넣었다. 문제에서 최대값이 1000이므로 1000까지만 리스트 설정했다.

알고리즘

<백준> 1978번 파이썬 알고리즘

b = int(input()) c = list(map(int, input().split())) d = [] for i in range(b): a = 2 if c[i] == 1: continue else: while(c[i]%a != 0): a += 1 if a == c[i]: d.append(c[i]) print(len(d)) 소수의 개수를 구하는 문제 소수의 정의를 이용해서 새로 만든 리스트에 소수인것만 집어넣어 마지막에 리스트 원소의 개수를 세었다.

알고리즘

<백 준> 1149번 파이썬 알고리즘

-다이나믹 알고리즘 n = int(input()) # 행 m = 3 # 열 d = [] # 그래프 만들기 for i in range(n): d.append(list(map(int,input().split()))) for i in range(1, n): for j in range(m): if j == 0: d[i][j] = d[i][j] + min(d[i - 1][j + 1], d[i - 1][j + 2]) if j == 1: d[i][j] = d[i][j] + min(d[i - 1][j - 1], d[i - 1][j + 1]) if j == 2: d[i][j] = d[i][j] + min(d[i - 1][j - 1], d[i - 1][j - 2]) print(min(d[n-1][0],d[n-1][1],d..

알고리즘

<백 준> 1149번 파이썬 알고리즘

- 다이나믹 알고리즘 n = int(input()) # 행 m = 3 # 열 d = [] # 그래프 만들기 for i in range(n): d.append(list(map(int,input().split()))) for i in range(1, n): for j in range(m): if j == 0: d[i][j] = d[i][j] + min(d[i - 1][j + 1], d[i - 1][j + 2]) if j == 1: d[i][j] = d[i][j] + min(d[i - 1][j - 1], d[i - 1][j + 1]) if j == 2: d[i][j] = d[i][j] + min(d[i - 1][j - 1], d[i - 1][j - 2]) print(min(d[n-1][0],d[n-1][1],..

알고리즘

<백 준> 11726번 파이썬 알고리즘

- 다이나믹 알고리즘 n = int(input()) d = [1, 2] for i in range(2, n): d.append(d[i-1]+d[i-2]) print(d[n-1] % 10007) 9095번에서 푼 풀이방식과 유사한 것 같아서 해보니까 아래와 같이 값이 맞아 떨어졌다 위의 방식을 기반으로 알고리즘을 구현했다 www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net

알고리즘

<백 준> 1003번 파이썬 알고리즘

- 다이나믹 알고리즘 tc = int(input()) d = [] for i in range(tc): d.append(int(input())) arr0 = [1,0,1] # 0 1 2 ## 0 개수 arr1 = [0,1,1] # 0 1 2 ## 1 개수 for i in range(3, 41): arr0.append(arr0[i-1]+ arr0[i-2]) arr1.append(arr1[i-1]+ arr1[i-2]) for j in range(len(d)): print(arr0[d[j]], end=" ") print(arr1[d[j]]) www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. ..

알고리즘

<백준> 7576번 파이썬 알고리즘

www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net from collections import deque m, n = map(int,input().split()) array = [] for i in range(n): array.append(list(map(int,input().split()))) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(): while queue: x, y = queue.popleft() ..

changha.
'알고리즘' 카테고리의 글 목록 (12 Page)