본문 바로가기

전체 글

(107)
[이취코] DP 실전 - 못생긴 수 / Python 2,3,5만을 약수로 가지는 합성수를 못생긴 수라고 한다1은 못생긴 수라고 가정한다n번째 못생긴 수를 구하자 처음 아이디어 접근 일단 1,2,3,4,5가 못생긴 수인건 맞으니dp = [1,1,1,1,1] 로 세팅한다 n이 5보다 작은 경우에는 n을 return하도록 한다 그 이상은 dp를 구한다 못생긴 수를 세는 cnt와 현재 수를 나타내는 cur 변수를 둔다while문을 돌며 cnt가 n에 도달하면 멈춘다 while문 내에서 현재 살펴보는 수를 1씩 증가시킨다현재 수가 2or3or5로 나누어떨어지고, dp[i//(2or3or5)-1]값이 1이라면그 수는 2,3,5만을 인수로 가진다는 뜻못생긴 수 cnt를 증가시키고, dp에도 못생긴 수라는 뜻으로 1을 삽입 그 외에는 0을 삽입한다 마지막에 현재 숫자를..
[백준/이취코] 정수삼각형 1932 / DP / Python 실1 내가 이걸 1년 전에 왜 풀었을까...? 그땐 실력이 별로라서 독자적으로 풀진 않았을 듯 한데오늘은 거의 뭐 15분컷? 했습니다너무 자명한 문제죠그림에 써진 웨에엑 신경쓰지 마세요 무튼 이런 트리 구조의 정수 값을 입력 받고,각 수들은 왼쪽 또는 오른쪽 대각선 값만 접근할 수 있습니다 이걸 다 입력받고 다시 처리할까?하다가 문득 실시간 처리가 가능하다는 생각이 들었어요그래서 그림으로 그려봤습니다 누적 dp 배열과현재 입력받은 배열 a가 존재한다고 생각해봅시다 일단 첫번재 배열 a에는 원소 하나만 있고, dp도 빈 상태니까dp.append(a) 해주고 넘깁니다 그 다음부터 dp 점화식을 세워봅시다 배열 a의 가장 첫 번째 원소는 dp의 첫번째 원소와 더한 값이고배열 a의 가장 마지막 원소는 dp의 가장 마..
[백준] 1520 내리막길 / DP / Python / 골3 부제: 무한 런타임 에러 해결하기 처음에 접근하려고 했던건   일단 현재 위치가 0이 아니어야 어딘가로부터 이동경로를 받을 수 있다는 뜻그래서 0이 아닌 경우에만 탐색함 상하좌우에서 현재 위치로 이동하는 경우에상하좌우에서 받을 수 있는 max값을 현재 위치의 이동 가능 경로로 세팅해둠 그리고 현재 위치에서 상,하,좌,우로 이동할 때 현재 수보다 이동한 위치의 수가 작으면 내리막길이니까이동 가능 경로 개수를 업데이트 해주고 싶음각 상하좌우로 이동했을 때 위치에다가현재 위치의 이동 경로 개수를 그대로 받는 경우 또는... 이동한 위치의 이동 경로 개수+1 값을 비교해서max값으로 업데이트를 해줬음  m,n = map(int,input().split())arr = [list(map(int,input().spl..