본문 바로가기
728x90

알고리즘339

[Python] 백준 2193 이친수 https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 문제 해결 - 다이나믹 프로그래밍(dp)인 것은 쉽게 눈치 챌 수 있다. - n자리 이친수 개수를 dp[n]으로 놓을 때 dp[n] = dp[n-1] + dp[n-2]임을 알아야 한다. 그림판으로 그리면 dp[n]=dp[n-1] + dp[n-2]임을 알 수 있다. CODE import sys input= sys.stdin.readline n = int(input()) dp = [0 fo.. 2022. 12. 22.
[Python] 백준 25682 체스판 다시 칠하기 2 https://www.acmicpc.net/problem/25682 25682번: 체스판 다시 칠하기 2 첫째 줄에 정수 N, M, K가 주어진다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 해결 1018번과 같은 유형이지만 시간초과 압박이 있다. https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 하지만 별 생각이 안나서 비슷하게 풀어 봤다. CODE i.. 2022. 12. 22.
[Python] 백준 11726 2Xn 타일링 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 문제해결 - 세로 길이는 2로 고정이라는 것에 주목하자. 그러면 가로길이가 1인 1번으로 한개 놓던가 가로길이가 2인 2번으로 2개 놓는 방법이 있다. 이를 보면 피보나치 수열 fib(n) = fib(n-1) + fib(n-2) 가 생각이 난다. CODE import sys input = sys.stdin.readline def fib(n): if n==1: return 1 elif n==2: return 2 retu.. 2022. 12. 22.
[Python] 백준 11576 Base Conversion https://www.acmicpc.net/problem/11576 11576번: Base Conversion 타임머신을 개발하는 정이는 오랜 노력 끝에 타임머신을 개발하는데 성공하였다. 미래가 궁금한 정이는 자신이 개발한 타임머신을 이용하여 500년 후의 세계로 여행을 떠나게 되었다. 500년 후의 www.acmicpc.net 문제 해결 - A 진법을 10진법으로 바꾸고 B진법으로 바꿔야하는가? => 있을 것 같은데 생각이 안나서 10진법으로 바꾸고 다시 B진법으로 바꿈 CODE import sys input = sys.stdin.readline a, b = map(int, input().split()) m = int(input()) num = list(map(int, input().split())) .. 2022. 12. 22.
728x90