백준 1010번 다리놓기(python3)
·
Algorithm/백준
다리를 그림으로 그리고 규칙성을 파악하면 쉽게 풀 수 있는 문제이다. 첫번째 n의 다리와 첫번째 m의 다리를 이어놓고 그 아래의 다리를 보면, 이전에 적용된 다리의 경우의 수가 계속 적용되어 나옴을 확인할 수 있다. n이 1일 경우 m과 같아서 for문 이용해서 미리 만들어주고 그 아래에 위의 공통된 로직을 짜면 된다. 전형적인 dp문제이지만 다른 사람들 풀이를 보니 조합을 이용해서도 많이 푼 것 같다. # https://www.acmicpc.net/problem/1010 array = [[0] * 30 for _ in range(30)] for i in range(1, 30): array[1][i] = i for i in range(2, 30): for j in range(i, 30): for k in..
백준 13301 타일깔기
·
Algorithm/백준
# https://www.acmicpc.net/problem/13301 # 표로 정리하면 금방 규칙성을 파악할 수 있다. # 타일 개수 1 2 3 4 5 6 7 # 둘레 4 6 10 16 26 42 68 # f(n) = f(n-1) + f(n-2) 의 규칙으로 증가함을 알 수 있다. n = int(input()) answer = [0, 4, 6] def get_circumference(n): if n == 1: return 4 if n == 2: return 6 else: for i in range(3, 81): answer.append(answer[i-1] + answer[i-2]) return answer[n] print(get_circumference(n)) 13301번: 타일 장식물 대구 달성공원..
백준 9625-python 풀이
·
Algorithm/백준
전형적인 dp문제 버튼을 누르는 횟수 별 a와 b횟수를 표로 정리하면 금방 해결방법을 찾을 수 있다. /누르는 횟수 0 1 2 3 결과 A B BA BAB A개수 1 0 1 1 B개수 0 1 1 2 각각의 a,b 개수 별로 현재 인덱스의 개수 = 전 인덱스 개수 + 전전 인덱스 개수 의 규칙임을 한 눈에 알 수 있다. # https://www.acmicpc.net/problem/9625 # 전형적인 f(n) = f(n-1) + f(n-2) 구조임 # 입력 : 버튼 눌리는 횟수: k # 출력 : 사용자가 k번 눌렀을때 결과창에 뜬 a 개수와 b의 개수 k = int(input()) #버튼을 누른 횟수 만큼 a횟수와 b횟수를 각각 나누어 배열로 정리해 보자면 다음과 같다. #클릭:0 1 a = [1, 0] ..
takoyummy
'Algorithm/백준' 카테고리의 글 목록 (4 Page)