반응형

분류 전체보기 258

[python 파이썬] 백준 15486번 : 퇴사2

DP 좋은 문제 추천 https://won-percent.tistory.com/entry/%EC%A2%8B%EC%9D%80-DP-%EB%AC%B8%EC%A0%9C%EB%93%A4-%EC%B6%94%EC%B2%9C 문제https://www.acmicpc.net/problem/15486 풀이 max_p[i+1] = max ( max_p[i+1], max_p[i]) 이 부분을 추가 안해줘서 계속 헤맸다. 답 맞는것 같은데 시간 초과가 계속 뜬다.n = int(input()) t=[0 for _ in range(n)] p=[0 for _ in range(n)] max_p=[0 for _ in range(n+1)] for i in range(n): t[i],p[i] = map(int,input().split())..

[python 파이썬] 백준 11722번 : 가장 긴 감소하는 부분 수열

DP 좋은 문제 추천 https://won-percent.tistory.com/entry/%EC%A2%8B%EC%9D%80-DP-%EB%AC%B8%EC%A0%9C%EB%93%A4-%EC%B6%94%EC%B2%9C 문제 https://www.acmicpc.net/problem/11722 풀이 a : [10, 30, 10, 20, 20, 10] 처음엔 if a[j] > a[i] : dp[i] = dp[j] + 1 로 풀었다. a[i] 보다 큰 것만 찾아서 +1 하다보니 맨 오른쪽 10의 경우, 20을 중복으로 더해서 원하는 답이 나오지 않았다. 이걸 어떻게 해결할까 고민하다가 max 로 풀긴했는데 손으로 일일히 for문을 돌려가면서 이해한거라 자존심 상한다. 아니 잘하는 사람들은 머리 속에서 다 돌아가려나?..

[python 파이썬] 백준 11726번 : 2 x n 타일링

DP 좋은 문제 추천 https://won-percent.tistory.com/entry/%EC%A2%8B%EC%9D%80-DP-%EB%AC%B8%EC%A0%9C%EB%93%A4-%EC%B6%94%EC%B2%9C 문제 https://www.acmicpc.net/problem/11726 풀이 n=1,2,3... 경우의 수를 적다보니 규칙을 발견했다. 이렇게 규칙을 발견하고 푸는게 맞나 싶긴한데 물어볼데가 없다.다른 dp 문제를 더 풀어봐야 감이 올 것 같다.n = int(input()) dp=[1 for _ in range(n+1)] for i in range(2,n+1): dp[i] = dp[i-1] + dp[i-2] print(dp[n]%10007)

[python 파이썬] 백준 2579번 : 계단 오르기

DP 좋은 문제 추천 https://won-percent.tistory.com/entry/%EC%A2%8B%EC%9D%80-DP-%EB%AC%B8%EC%A0%9C%EB%93%A4-%EC%B6%94%EC%B2%9C 문제https://www.acmicpc.net/problem/2579 두번째 고비였지만 다행히 넘겼다. 도저히 안풀려서 롤 두 판 했더니 풀렸다. (???) 풀이 n = int(input()) score=[] stair=[0 for _ in range(n)] for i in range(n): score.append(int(input())) stair[0] = score[0] for i in range(1,n): if i == 1: stair[1] = stair[0] + score[1] elif ..

[python 파이썬] 백준 9095번 : 1, 2, 3 더하기

DP 좋은 문제 추천 https://won-percent.tistory.com/entry/%EC%A2%8B%EC%9D%80-DP-%EB%AC%B8%EC%A0%9C%EB%93%A4-%EC%B6%94%EC%B2%9C 문제https://www.acmicpc.net/problem/9095 풀이문제에서 n은 양수이며 11보다 작다. 라고 주어져서 max = 11 로 설정했다.1, 2, 3 의 합으로만 구하면 되는데.... 문제를 대충 읽어서 규칙 찾느라 아주 오래 걸렸다. 그래도 규칙 찾으니까 꽤 간단한 풀이였다 ! 문제를 잘 읽자 ! t = int(input()) n=[] max = 11 # 0 < n < 11 dp=[1 for _ in range(max+1)] dp[2] = 2 dp[3] = 4 for i i..

[python 파이썬]백준 1463번 : 1로 만들기

DP 좋은 문제 추천 https://won-percent.tistory.com/entry/%EC%A2%8B%EC%9D%80-DP-%EB%AC%B8%EC%A0%9C%EB%93%A4-%EC%B6%94%EC%B2%9C 문제https://www.acmicpc.net/problem/1463 풀이문제 풀이 1일차 첫 고비였다. 솔직히 작심일일도 못가서 그만두고싶었다. 혼자 못풀고 다른 코드 참고하고 풀었는데도 이해가 잘 가지 않는다. 다시 와서 봐야지n = int(input()) dp=[0 for _ in range(n+1)] for i in range(2,n+1): dp[i] = dp[i-1] + 1 if i % 3 == 0:dp[i] = min(dp[i//3]+1, dp[i]) elif i % 2 == 0:dp..

좋은 DP 문제들 추천

백준 문제 중 다이나믹 프로그래밍 부분의 양이 상당하던데 다 풀 자신이 없어서 좋은 DP 문제들을 찾다가 우연히 좋은 블로그를 발견하게 되어 퍼왔다. (출처는 맨 밑에) 나처럼 단기간에 코딩테스트를 준비하는 분들에게 큰 도움이 될 것 같다. DP를 처음 하신다고요? DP라는 것을 처음 접해보는 사람들을 위한 입문자용 문제 모음 - BOJ 2748 피보나치 수 2 유명하기 때문에 감을 잡기 쉽다. - BOJ 1463 1로 만들기 DP 태그의 첫 문제 - BOJ 9095 123 더하기 123 더하기 시리즈는 많고 대부분 나쁘지 않다! - BOJ 2579 계단 오르기 조금 비 직관적인 형태에서 DP식을 끄집어 내보자! - BOJ 11276 2xn 타일링 DP식을 세워보는 연습 조금은 익숙해졌다면... & DP..

반응형