알고스팟 [알고스팟] 폴리오미노 n=1인 사각형에 하나씩 추가해가면서 경우의 수를 더해가는 문제라고 생각을 했다. 어디다 붙일지에 대한 방법도 매번 달라져서 더 복잡해진다. 책을 보면 위에서부터 한줄 한줄 세어 간다. 각 줄이 세로로 붙어있으면 된다. 나는 남은 사각형의 개수와 현재 줄에 세로로 쌓으려는 사각형의 개수만 알면 된다. 이전의 과정을 보지 않는 것이다. 바로 다음 파란색이다. 현재 남은 블록을 n, 이번 세로줄... 다이나믹 프로그래밍알고리즘알고스팟다이나믹 프로그래밍 알고스팟 : 울타리 잘라내기 판자의 높이를 배열로 받아서 h[] 로 처리하고 l번 판자부터 r 번 판자까지 잘라내서 사각형을 만든다고 하면 (l-r+1)\times{min_{i=l}^{r}}h[i] (l−r+1)×mini=lr h[i] 의 식을 얻어낼 수 있다. 분할 정복 알고리즘의 설계 n개의 판자를 절반으로 나눠 두 개의 부분 문제로 바꾸자. 우리가 찾는 최대 직사각형은 다음 3가지 중 하나에 속할 것이다. 가장 큰... 재귀알고스팟문해전종만북문해전 [AlgoSpot] Picnic 간단하게, 가능한 친구쌍(짝)의 경우가 주어졌을 때, 이를 조합하여 학생들을 짝지어줄 수 있는 경우의 수를 구하는 문제이다. (태연,제시카) (써니,티파니) (효연,유리) (태연,제시카) (써니,유리) (효연,티파니) 먼저, 학생의 수가 홀수일 경우, 짝이 없는 학생이 반드시 발생하므로, solve method에서 바로 return 시켜주었다. 짝이 있는 학생들과 짝이 정해지지 않은 학생들을... 알고리즘문제알고스팟알고리즘문제 [트리] 알고스팟 TRAVERSAL 사용 언어: python 3.9.5 문제 1. 접근법 pre_order: 루트들이다. pre_order에서 찾은 루트 기준으로 in_order를 2개를 나누면, 왼쪽 서브트리와 오른쪽 서브트리이다. 1)pre_order에서 루트를 찾는다. 2) in_order를 left와 right로 나눈다. left의 개수가 0이면 right에 대해 1, 2반복 right의 개수가 0이면: print ro... 트리파이썬문제풀이알고스팟문제풀이 알고스팟 : 게임판 덮기 링크 : 문제 읽기 자유롭게 회전 가능. 겹치거나 검은 칸을 덮거나 게임판 밖으로 나가서는 안된다. 게임판이 주어졌을 때 덮을 수 있는 경우의 수. 흰 칸이 3의 배수여야 겹치지 않고 덮을 수 있다. 각 칸마다 모두 4가지의 방법으로 놓을 수 있는데 제한으로 인해 4 이하의 방법으로 블록을 놓을 수 있다. L 블럭을 구성하는 3칸의 상대적 위치 (dy, dx)의 목록 delta = 1이면 덮... 종만북알고스팟알고리즘벡터벡터 [트리] 알고스팟 TRAVERSAL // 교재 p.686 // 21.3 문제: 트리 순회 순서 변경 (문제 ID: TRAVERSAL, 난이도: 하) // correct: TRAVERSAL 책 보고 힌트 얻고 풀었음. 아이디어: preOrder는 루트 먼저니까 inorder에서 preOrder 값을 찾으면 왼쪽 서브트리, 오른쪽 서브트리로 나눌 수 있다. 이를 이용하여 재귀적으로 왼쪽, 오른쪽, 가운데 순으로 보면서 출력 자신의... 트리문제풀이알고스팟문제풀이
[알고스팟] 폴리오미노 n=1인 사각형에 하나씩 추가해가면서 경우의 수를 더해가는 문제라고 생각을 했다. 어디다 붙일지에 대한 방법도 매번 달라져서 더 복잡해진다. 책을 보면 위에서부터 한줄 한줄 세어 간다. 각 줄이 세로로 붙어있으면 된다. 나는 남은 사각형의 개수와 현재 줄에 세로로 쌓으려는 사각형의 개수만 알면 된다. 이전의 과정을 보지 않는 것이다. 바로 다음 파란색이다. 현재 남은 블록을 n, 이번 세로줄... 다이나믹 프로그래밍알고리즘알고스팟다이나믹 프로그래밍 알고스팟 : 울타리 잘라내기 판자의 높이를 배열로 받아서 h[] 로 처리하고 l번 판자부터 r 번 판자까지 잘라내서 사각형을 만든다고 하면 (l-r+1)\times{min_{i=l}^{r}}h[i] (l−r+1)×mini=lr h[i] 의 식을 얻어낼 수 있다. 분할 정복 알고리즘의 설계 n개의 판자를 절반으로 나눠 두 개의 부분 문제로 바꾸자. 우리가 찾는 최대 직사각형은 다음 3가지 중 하나에 속할 것이다. 가장 큰... 재귀알고스팟문해전종만북문해전 [AlgoSpot] Picnic 간단하게, 가능한 친구쌍(짝)의 경우가 주어졌을 때, 이를 조합하여 학생들을 짝지어줄 수 있는 경우의 수를 구하는 문제이다. (태연,제시카) (써니,티파니) (효연,유리) (태연,제시카) (써니,유리) (효연,티파니) 먼저, 학생의 수가 홀수일 경우, 짝이 없는 학생이 반드시 발생하므로, solve method에서 바로 return 시켜주었다. 짝이 있는 학생들과 짝이 정해지지 않은 학생들을... 알고리즘문제알고스팟알고리즘문제 [트리] 알고스팟 TRAVERSAL 사용 언어: python 3.9.5 문제 1. 접근법 pre_order: 루트들이다. pre_order에서 찾은 루트 기준으로 in_order를 2개를 나누면, 왼쪽 서브트리와 오른쪽 서브트리이다. 1)pre_order에서 루트를 찾는다. 2) in_order를 left와 right로 나눈다. left의 개수가 0이면 right에 대해 1, 2반복 right의 개수가 0이면: print ro... 트리파이썬문제풀이알고스팟문제풀이 알고스팟 : 게임판 덮기 링크 : 문제 읽기 자유롭게 회전 가능. 겹치거나 검은 칸을 덮거나 게임판 밖으로 나가서는 안된다. 게임판이 주어졌을 때 덮을 수 있는 경우의 수. 흰 칸이 3의 배수여야 겹치지 않고 덮을 수 있다. 각 칸마다 모두 4가지의 방법으로 놓을 수 있는데 제한으로 인해 4 이하의 방법으로 블록을 놓을 수 있다. L 블럭을 구성하는 3칸의 상대적 위치 (dy, dx)의 목록 delta = 1이면 덮... 종만북알고스팟알고리즘벡터벡터 [트리] 알고스팟 TRAVERSAL // 교재 p.686 // 21.3 문제: 트리 순회 순서 변경 (문제 ID: TRAVERSAL, 난이도: 하) // correct: TRAVERSAL 책 보고 힌트 얻고 풀었음. 아이디어: preOrder는 루트 먼저니까 inorder에서 preOrder 값을 찾으면 왼쪽 서브트리, 오른쪽 서브트리로 나눌 수 있다. 이를 이용하여 재귀적으로 왼쪽, 오른쪽, 가운데 순으로 보면서 출력 자신의... 트리문제풀이알고스팟문제풀이