2024/08 4

[Boj] 백준 C++ #11726 2xn 타일링

📍알고리즘 분류: DP 동적 프로그래밍큰 문제를 작은 문제로 나눌 수 있으며 작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 동일할 경우 DP를 사용한다.📍문제 풀이:처음에는 조합(Combination)을 이용한 수식으로 문제에 접근했다. 문제에서 높이는 2로 고정되어 있으므로 2xn 타일을 쪼개보면 타일을 구성할 수 있는 경우는 '2x1' 혹은 '1x2 두개를 위아래로 붙인 2x2' 뿐이다. 그래서 2x1의 모양을 A, 2x2의 모양을 B라고 하자.A는 가로를 1만큼 차지하고 B는 한번에 2만큼 차지한다. 따라서 2xn의 모양에서 n = (1 x A의개수) + (2 x B의개수)라는 수식을 세울 수 있다. A와 B의 범위는 0과 자연수이다. 따라서 A와 B의 순서쌍 조합을 구하면 이 과정에..

Boj 2024.08.11

[Boj] 백준 C++ #2667 단지번호붙이기

📍알고리즘 분류: DFS, BFSDFS란 Depth First Search, 깊이 우선 탐색. 트리나 그래프에서 한 루트로 탐색하다가 특정 상황에서 최대한 깊숙이 들어가서 확인한 뒤 다시 돌아가 다른 루트로 탐색하는 방식이다. 재귀호출이나 스택 배열로 구현할 수 있다.📍문제풀이: 재귀호출 방식의 DFS로 문제를 풀었다. dfs가 처음 호출되면 인접한 집들을 다 탐색하여 한 단지를 구성하는 집의 개수를 모두 센다.📍코드#include #include #include #include using namespace std;#define MAX_N 26int map[MAX_N][MAX_N];bool visited[MAX_N][MAX_N];int dx[4] = {-1,1,0,0};int dy[4] = {0,0..

Boj 2024.08.11

[Boj] 백준 C++ #2309 일곱 난쟁이

https://www.acmicpc.net/problem/2309📍  풀이 방법: 합이 100이 되는 7명의 난쟁이를 구하는 것이 아니라, 9명의 난쟁이 키 합에서 뺐을 때 100이 되는 2명의 난쟁이를 구하면 된다. 📍 알고리즘 분류: 브루트포스brute force(무식한 힘). 즉 무식하게 가능한 경우의 수를 모두 탐색해보는 완전탐색 알고리즘.📍  소스코드#include #include using namespace std;int main() { int dwarf[9]; int sum = 0; for(int i=0;i> dwarf[i]; sum += dwarf[i]; } sort(dwarf,dwarf+9); for(int i=0;i 처음에 break문으..

Boj 2024.08.08

[Django] 이슈ㅁㅣ해결 .. - 비밀번호 변경 링크 토큰 만료(set-password url)

이슈 기록 2024.08.05-06하고자 하는 것: 이미 비밀번호를 변경했거나 하루가 지난 비밀번호 변경 링크에 대해서는 토큰이 만료되었다는 화면을 띄우고 싶음.이렇게 처리해주지 않는다면 비밀번호 변경 화면에서 넘어가지 않아 사용자 입장에서는 비밀번호가 변경이 된건지 안된건지, 왜 화면이 안넘어가는지, 문제가 무엇인지 알 수 없기 때문임.문제 상황: dispatch 함수를 추가하여 링크를 접속할 때 토큰에 대한 유효성 검사를 먼저 처리해주고자 하였음. 그러나 url에서 token을 가져오는 부분( token = kwargs.get('token') )에서는 알파벳과 숫자로 나열된 실제 token값이 아니라 'set-password'라는 값으로 받아와짐. (보안상의 이유로 django 내부적으로 처리되는 부..

카테고리 없음 2024.08.06