Algorithm

개발공부/algorithm

[SWEA][python] 1949.등산로조성 - DFS

문제 SWEA 모의 SW 역량 테스트 1949. 등산로조성 python 문제링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 나의 코드 현재 봉우리의 높이보다 작은 높이의 봉우리를 찾아서 DFS로 탐색하되, 동시에 현재 봉우리의 높이와 같거나 더 높은 봉우리를 깎으면서 탐색을 진행한다. 주어진 K 안에서 가능한 모든 높이로 탐색하는 것과, 한 번 봉우리를 깎으면 다른 봉우리들은 깎지 않는 것이 관건이다. def check(r, c): return 0 = mapp[r][c] and visited[nr][nc] == 0 and not cut: # 가능한 k 값 내에서 계속 깎아본다 for i in range(1..

개발공부/algorithm

[백준][python] 2193.이친수 - 동적계획법

문제 백준 2193.이친수 Silver III python 문제링크 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 나의 코드 이 문제는 각 N의 길이 별로 생성되는 모든 이친수의 경우의 수를 직접 나열해보면 된다. 나열 결과, N = 3: 2개, N = 4: 3개, N = 5: 5개, N = 6, 8개, N = 7: 13개 .... 이렇듯 피보나치 수열이 완성된다. 단, N이 하나씩 밀려서 나타나니 N - 1에 대한 피보나치 수열을 만들어주면 된다. N = int(input()) dp = [1, ..

개발공부/algorithm

[백준][python] 1003.피보나치 함수 - 동적계획법

문제 백준 1003 피보나치 함수 Silver III python 문제링크 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 나의 코드 원래 피보나치 문제를 풀듯이 재귀적으로 풀었는데 역시나 시간 초과 에러가 났다. 여러번 반복되는 코드의 실행에서 바뀌지 않는 값들이 존재하기 때문에 매번 같은 연산을 반복할 필요가 없다. 따라서 이 문제는 동적계획법과 메모이제이션을 사용해서 풀어야한다. 메모이제이션이란, 자꾸만 반복되지만 그 결과값은 변하지 않는 작은 문제들의 결과값을 저장하는 것을 의미한다. 이 두가지 개념은 새로운 포스트에서 더 자세하게 다뤄보겠다. # N이 0, 1 일때의 0과 1의 출현 빈도수 cnt..

so.py
'Algorithm' 태그의 글 목록 (17 Page)