11057번 Python 점화식은 스스로 찾아낼 수는 있었는데 코드로써 식을 대입하지는 못했던 것 같다. 0 1 2 3 4 5 6 7 8 91자리의 오르막수는 위와 같이 10개이다. # 0이 마지막인 오르막 수00# 1이 마지막인 오르막 수01 11# 2가 마지막인 오르막 수02 12 222자리의 오르막수는 다음과 같다. 이렇게 해서 2자리는 55개라고 문제에서 나와있는데 사실 55라는 숫자만 봐도 대충 감이 올 사람을 왔을 수도 있다. 1 + 2 + 3 + ... + 9 + 10의 합이 55라는 점을 알고 있으면 점화식을 대강 구해낼 수 있다. 더 효과적으로 구할 수 있게 1~3자리의 마지막이 2인 오르막 수만 구해보자. 2 # 102 12 22 # 1+2002 012 022 112 122 222 # 1+2+3손으로 실제로 .. 2024. 8. 22. 10844번 Python 이 문제는 개인적으로 좀 어려웠는데 이해할 때까지 보면서 대충 감을 잡을 수 있었다. 123, 1234 와 같은 1이 인접한 계단의 수를 구하는 것이다. 이게 왜 DP 알고리즘이 적용되지라고 생각했는데 그 이유를 알 수 있었다. 마지막에 4가 온다고 가정해보자. 4에 인접한 수는 3과 5가 있다. 즉, 34와 54를 일단 둘 수 있고 3에서는 2와 4가 인접하다. 그래서 234 434가 될 수 있다. 이런 식으로 내려가다보면 결국 4자리 수일 때, 마지막에 있는 숫자 4를 기준으로 3으로 끝나는 계단의 수 + 5로 끝내는 계단의 수를 더하면 4자리의 마지막인 계단의 수를 구할 수 있는 것이다. 물론 예외도 있다. 마지막 수가 1이나 9는 인접하는 수가 2와 8밖에 없다. 0으로는 시작할 수 없기 때문이다.. 2024. 8. 21. 9095번 Python import syscnt = int(sys.stdin.readline())dp = [0] * 11dp[1] = 1dp[2] = 2dp[3] = 4for i in range(4, 11): dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]for i in range(cnt + 1): n = int(sys.stdin.readline()) print(dp[n])코드부터 구성하자면 다음과 같이 구성했다. 1 -> 1 # 12 -> 1 + 1, 2 # 23 -> 1 + 1 + 1, 1 + 2, 2 + 1, 3 # 4많은 사람들이 블로그에 올린 걸 보면 1, 2, 3번째 인덱스에 왜 1, 2, 4를 넣는지 잘 모르는 것 같다. 문제에서 합을 나타날 때는 1개 이상의 수를 사용하.. 2024. 8. 20. 11727번 Python 두번째 타일링 문제이다. 이번엔 2x2 타일이 하나 늘어났다. 예전에 풀었는데 이번엔 제대로 된 점화식을 찾아서 정리해보려고 한다. 일단 4까지는 손수 그림을 그리면서 갯수를 찾아냈다. f(4)는 특징이 하나 있다. 위 이미지의 f(4) 그림의 빨간색 부분은 f(3)에서 1x2 타일을 하나 더 붙인셈이다. 즉, f(3)의 갯수를 가지고 있다. 그리고 f(4)의 파란 부분을 보면 f(2)에서 존재하는 타일을 두 번씩 사용했다. 즉, 문제의 점화식은f(i) = 2 * f(i - 2) + f(i - 1)인 것을 확인할 수 있다. import sysn = int(sys.stdin.readline())dp = [0] * 1001dp[1] = 1dp[2] = 3for i in range(3, n + 1): d.. 2024. 8. 19. DDL DDL은 데이터 정의어라고 하고 데이터베이스 데이터를 보관하고 관리하기 위해 제공되는 여러 객체의 생성, 변경, 삭제, 수정 등을 의미한다. DML은 데이터를 조작하는 것이었다면 DDL은 테이블을 조작하는 것이라 생각하면 된다. DDL은 DML과 달리 자동으로 COMMIT이 진행되기 때문에 트랜잭션 제어가 되지 않기에 이는 사용할 때 주의를 기울여야 한다. CREATECREATE는 오라클 데이터베이스 객체를 생성하는데 사용된다. CREATE TABLE 테이블명 ( 컬럼명1 NUMBER(4), 컬렴명2 VARCHAR(2), ...)이러한 구조로 작성된다. EMP_DDL이라는 명으로 기존의 EMP 테이블 스키마와 같은 구조를 가진 테이블을 DDL 명령어를 통해 생성해보자. CREATE TAB.. 2024. 8. 18. 11726번 Python 과거에 풀어보긴 해서 문제에 대한 이해가 어렵지는 않았고 점화식을 바로 구해보았다. 1 -> 12 -> 23 -> 34 -> 5위의 형태는 피보나치 수열 형태로 첫째항과 둘째항이 1이면 그 다음항은 그것의 값들을 의미하는 걸 말한다. DP 정리에서도 잠시 이야기 했었다. import sysn = int(sys.stdin.readline())dp = [0] * 1001dp[1] = 1dp[2] = 2for i in range(3, n + 1): dp[i] = dp[i - 2] + dp[i - 1]print(dp[n])어렵게 구하지 않았고 바로 답을 도출해낼 수 있었다. 2024. 8. 18. 이전 1 2 3 4 5 6 7 8 ··· 18 다음