[파이썬 11726번] 2 x n 타일링
https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net # 조건 2xN 크기의 직사각형을 1x2, 2x1 타일로 채우는 방법의 수를 구하는 프로그램 작성 방법의 수를 10,007로 나눈 나머지를 출력하라. # 접근 방법 규칙을 찾는 것이 좋을 것 같다. n = 1 인 경우 1가지 n = 2 인 경우 2가지 n = 3 인 경우 3가지 n = 4 인 경우 5가지 n = 5 인 경우 8가지 f(n) = f(n-2) * 2 + f(n-3) 으로 구할 수 있다. 또는 f(n) = ..
2022.10.08
[백준 1003번] 파이썬 - 피보나치 함수
https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net # 조건 피보나치 함수는 f(n ) = f(n-1) + f(n-1)의 성질을 가진다. 정수 n이 주어졌을 때 0과 1이 몇 번 출력되는지 구하여라. # 접근 방법 문제에 주어진대로 재귀를 이용하여 구해봤지만 역시나 시간초과. 메모이제이션을 이용해봐도 시간초과가 나게 되었다. 0과 1이 출력되는 횟수가 수가 증가함에 따라 각각 피보나치 함수와 동일하게 출력됨을 발견 따라서 dp table을 따로 만들어 준 후 입력 n에 대해 횟수를 출력시켜준다. # 시간초과 코드 def fibo(n): glob..
2022.09.19
[백준 5557번] 파이썬 - 1학년
백준 5557_1학년 # Problem 줄 지어있는 숫자 들이 있을 때 아래의 조건을 지키며 등식을 완성하여라 마지막 두 숫자 사이에는 '=', 나머지 숫자 사이에는 '+'또는 '-' 이 때, 왼쪽부터 계산을 할 때, 중간 결과값이 모두 0이상 20이하여야 한다. 올바른 등식의 수를 구하는 프로그램 작성 # 접근 방법 모든 경우의 수를 구하게 되면 2^100의 경우의 수가 생기므로 dp로 풀어야 될 것 같다. bottom-up 방식으로 DP TABLE 이용 DP TABLE의 경우 최댓값이 20이 넘어가면 안된다는 조건이 있기 때문에 21개만 만들어주면 된다. 점화식 equation[i][j+number[i]] += equation[i-1][j] equation[..
2022.09.12
[백준 1446번] 파이썬 - 지름길
https://www.acmicpc.net/problem/1446 1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하인 양의 정수이고, D는 10,000보다 작거나 같은 자연수이다. 다음 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이 www.acmicpc.net # 조건 - D km 길이의 고속도로를 지나는데 이 고속도로는 심각하게 커브가 많아 운전하기 힘들다. - 이 고속도로에는 지름길이 존재하는데 - 모든 지름길은 일방통행이며, 고속도로 역주행은 불가 - 운전해야하는 최소 거리를 구하여라 # 접근 방법 및 풀이 과정 - 문제를 읽으며 드는 생각은 거리를 기록해둔 후 이를 통하여 최소 값을 구하면 될 것같다. - 내가 이용하는 지름길의 거리와..
2022.09.12
no image
[백준 9095번] 파이썬 - 1,2,3 더하기
https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net # 조건 정수 4를 1,2,3의 합으로 나타내는 방법은 총 7가지 합을 나타낼 때는 수를 1개이상 사용 정수 n이 주어졌을 때, 1,2,3의 합으로 나타내는 방법의 수를 구하라 # 나의 접근 방법 1,2,3으로 나타낼 수 있는 경우의 수를 구하는 문제이므로 6의 경우 1,1,1,1,1,1 에서 3,3 까지 오면된다. 1만 이용하는 방법에서 총 1의 개수 = 주어지는 n 이 때, 1,2,3으로 이루어진 길이 n의 중복순열을 구한 후 합이 n과 같다면 카운트 해준다. 길이 n은 2가 1개 들어갔을 ..
2022.09.10
[백준 1965번] 파이썬 - 상자 넣기
https://www.acmicpc.net/problem/1965 1965번: 상자넣기 정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 www.acmicpc.net # 조건 - 크기가 있는 상자들이 주어질 때, 앞의 상자가 뒤의 상자보다 크기가 작다면 뒷 상자에 앞의 상자 넣을 수 있다. - 예) 1 - 6 - 2 - 5- 7의 크기를 가진 상자가 주어질 때, 1- 6 -7 (3개) 또는 1-2-5-7 (4개)의 방법으로 상자를 넣을 수 있다. - 한 번에 최대 많은 상자를 넣었을 때의 개수를 구하여라. # 접근 방법 넣을 수 있는 모든 경우의 수를 구한다면 시간 초..
2022.09.10