목록algorithm/HUFS 2023 -1 겨울 코테대비캠프 (4)
현제의 현재이야기
[0 for _ in range(n)]과 [0] * n 의 차이점은 없다. 단순히 0을 n번 복사하는 것을 for문으로 반복하기 때문에 새로운 것을 지정해주는 것 하지만 [0, 0, 0] * 3 은 주소를 공유하기 때문에? 위험하다. ⭐️방향성⭐️이 없으면 DP를 사용할 수 없다. 상태에 대한 정의, 뭘 최대로 해야하나 뭘 최소로해야 문제가 풀리나를 잘 훈련해야함(like 횟수와 도달한 수만 중요하지 경로는 중요하지 않다?!) 최대 증가 부분 수열 | 문제 N개의 숫자가 주어졌을 때, 가장 긴 증가 부분 수열의 길이를 구하는 프로그램을 작성해보세요 부분 수열이란 수열의 원소들 중 임의로 몇 개를 골라 순서대로 나열한 수열을 의미하고, 이때 순서대로 나열했을 때 원소들이 계속 증가한다면 이 수열을 증가 부..
DFS, BFS에 대한 고찰 드디어 깨우쳐 버린 그래프 탐색. 재귀 함수에 대한 것을 이해하고 보니 dfs가 쉬워졌다. 리스트로 푸는 문제는 전에 이해가 가능했었는데 그래프에서는 어려움을 겪었었다. 근데 알아버림 두, 네 방향 탈출 가능 여부 판별 DFS와 BFS차이 | 문제 n * m 크기의 이차원 영역의 좌측 상단에서 출발하여 우측 하단까지 뱀에게 물리지 않고 탈출하려고 합니다. 이동을 할 때에는 반드시 상, 우에 인접한 칸으로만 이동할 수 있으며, 뱀이 있는 칸으로는 이동을 할 수 없습니다. 예를 들어 과 같이 뱀이 배치 되어 있는 경우 실선과 같은 경로로 탈출을 할 수 있습니다. 이 때 뱀에게 물리지 않고 탈출 가능한 경로가 있는지 여부를 판별하는 코드를 작성해보세요. DFS(두방향) n , m ..
완전탐색 시간을 계산해보고 완전탐색을 사용할 수 있으면 사용해라! | 문제 N * N 크기의 격자 정보가 주어집니다. 이때 해당 위치에 동전이 있다면 1, 없다면 0이 주어집니다. N * N 격자를 벗어나지 않도록 3 * 3 크기의 격자를 적절하게 잘 잡아서 해당 범위 안에 들어있는 동전의 개수를 최대로 하는 프로그램을 작성해보세요. # 내 답 n = int(input()) grid = [ list(map(int, input().split())) for _ in range(n) ] money = 0 def get(i, j): get_money = 0 for i_ in range(i, i+3): for j_ in range(j, j+3): get_money += grid[i_][j_] return get_..