백준 10844 - 쉬운 계단 수 (파이썬)
백준 10844 - 쉬운 계단 수 (파이썬)
2025.02.23분류 : 다이나믹 프로그래밍https://www.acmicpc.net/problem/10844풀이먼저 문제 이해를 하면 다음과 같다.계단 수는 인접한 모든 자리의 차이가 1인 수이다.N이 주어질 때, 깊이가 N인 계단 수의 갯수를 구하는 문제이다.0으로 시작하는 수는 계단 수가 아니다.결과는 10^9로 나눈 나머지를 출력해야한다.문제 풀이를 위해서 DP 알고리즘을 사용한다.dp[i][j]를 길이가 j이고 마지막 숫자가 i인 계단 수의 갯수라고 정의한다.점화식을 세우면 다음과 같다.dp[j][i] = dp[j-1][i-1] + dp[j+1][i-1]즉, 길이가 i이고 끝자리가 j인 계단 수는 이전 자리(i-1)에서 끝자리가 j-1이거나 j+1이었던 경우의 합이다.초기 조건으로는dp[0][1] = 0 (0으..
백준 14889 - 스타트와 링크 (파이썬)
백준 14889 - 스타트와 링크 (파이썬)
2025.02.22분류 : 브루트포싱https://www.acmicpc.net/problem/14889풀이문제 분석을 하면 다음과 같다.N명의 사람을 두 개의 팀으로 나누어야한다.S[i][j]는 i번 사람과 j번 사람이 같은 팀일때 더해지는 능력치이다.두팀의 능력치 차이를 최소화 해야한다.능력치는 대팅이 아닐 수 있으며, 대각선 값은 항상 0이다.40 1 2 34 0 5 67 1 0 23 4 5 0예제의 값을 생각해보면 다음과 같이 풀이 할 수 있다. 일단 가능한 팀 조합은 다음과 같다.(1, 2) vs (3 , 4) → 능력치 차이 | 5 - 7 | = 2(1, 3) vs (2, 4) → 능력치 차이 | 9 - 10 | = 1(1, 4) vs (2, 3) → 능력치 차이 | 6 - 6 | = 0문제 풀이를 위한 해결 방..
백준 11726 - 2 x n 타일링 (파이썬)
백준 11726 - 2 x n 타일링 (파이썬)
2025.02.21분류 : 다이나믹 프로그래밍https://www.acmicpc.net/problem/11726풀이점화식을 새워야 한다. 일단 An : 2 * n 타일을 1 * 2, 2 * 1 타일로 채우는 경우의 수를 생각해야한다.An = A(n - 1) + A(n - 2) 라는 점화식을 세울 수 있다.즉 이 문제를 생각해 보면, 숫자가 너무 커지기 때문에 일단 10007로 나눈다는 조건을 생각해야한다.먼저 dp 배열에 들어갈 초기 값을 생각한다.1번의 dp는 2 * 1 타일에 들어 갈수 있는 타일은 1개이다.2번의 dp는 2 * 2 타일에 들어 갈 수 있는 타일은 총 2개이다.1 * 2 타일 2개인 방법 1개2 * 1 타일 2개인 방법 1개예시를 생각해보자, 2 * 5 크기의 직사각형을 채운 한 가지 방법의 예를 확인..
백준 1759 - 암호 만들기 (파이썬)
백준 1759 - 암호 만들기 (파이썬)
2025.02.21https://www.acmicpc.net/problem/1759문제암호는 서로 다른 L개의 알파벳 소문자들로 구성되며 최소 한 개의 모음(a, e, i, o, u)과 최소 두 개의 자음으로 구성되어 있다고 알려져 있다. 또한 정렬된 문자열을 선호하는 조교들의 성향으로 미루어 보아 암호를 이루는 알파벳이 암호에서 증가하는 순서로 배열되었을 것이라고 추측된다. 즉, abc는 가능성이 있는 암호이지만 bac는 그렇지 않다.새 보안 시스템에서 조교들이 암호로 사용했을 법한 문자의 종류는 C가지가 있다고 한다. 이 알파벳을 입수한 민식, 영식 형제는 조교들의 방에 침투하기 위해 암호를 추측해 보려고 한다. C개의 문자들이 모두 주어졌을 때, 가능성 있는 암호들을 모두 구하는 프로그램을 작성하시오.바로 어제 최백..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #5 타임라인 분석
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #5 타임라인 분석
2025.02.07본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다. 해당 블로그에서는 총 6개의 분석 섹션으로 나눠 포스팅을 할 예정이다. 각각 섹션은 다음과 같다. 현재 세션은 굵은 글씨로 표시되어 있다.1. 이미징 작업2. 손상된 파티션 복구3. 파티션 목록4. 아티팩트 분석 1. 운영체제 분석 1.1. PC 정보 분석 1.2. PC 사용자 분석 1.3. 설치된 프로그램 분석 2. 웹 아티팩트 분석 2.1. Chrome 분석 2.2. Edge 분석 2.3. Firefox 분석 3. Email 분석 4. 메신저 분석 4.1. Te..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-6 안티포렌식 분석
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-6 안티포렌식 분석
2025.02.07본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다. 해당 블로그에서는 총 6개의 분석 섹션으로 나눠 포스팅을 할 예정이다. 각각 섹션은 다음과 같다. 현재 세션은 굵은 글씨로 표시되어 있다.1. 이미징 작업2. 손상된 파티션 복구3. 파티션 목록4. 아티팩트 분석 1. 운영체제 분석 1.1. PC 정보 분석 1.2. PC 사용자 분석 1.3. 설치된 프로그램 분석 2. 웹 아티팩트 분석 2.1. Chrome 분석 2.2. Edge 분석 2.3. Firefox 분석 3. Email 분석 4. 메신저 분석 4.1. Te..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-5 아티팩트 분석 (음원 파일 분석)
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-5 아티팩트 분석 (음원 파일 분석)
2025.02.07본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다. 해당 블로그에서는 총 6개의 분석 섹션으로 나눠 포스팅을 할 예정이다. 각각 섹션은 다음과 같다. 현재 세션은 굵은 글씨로 표시되어 있다.1. 이미징 작업2. 손상된 파티션 복구3. 파티션 목록4. 아티팩트 분석 1. 운영체제 분석 1.1. PC 정보 분석 1.2. PC 사용자 분석 1.3. 설치된 프로그램 분석 2. 웹 아티팩트 분석 2.1. Chrome 분석 2.2. Edge 분석 2.3. Firefox 분석 3. Email 분석 4. 메신저 분석 4.1. Te..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-4 아티팩트 분석 (메신저 분석)
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-4 아티팩트 분석 (메신저 분석)
2025.02.07본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다. 해당 블로그에서는 총 6개의 분석 섹션으로 나눠 포스팅을 할 예정이다. 각각 섹션은 다음과 같다. 현재 세션은 굵은 글씨로 표시되어 있다.1. 이미징 작업2. 손상된 파티션 복구3. 파티션 목록4. 아티팩트 분석 1. 운영체제 분석 1.1. PC 정보 분석 1.2. PC 사용자 분석 1.3. 설치된 프로그램 분석 2. 웹 아티팩트 분석 2.1. Chrome 분석 2.2. Edge 분석 2.3. Firefox 분석 3. Email 분석 4. 메신저 분석 4.1. Te..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-3 아티팩트 분석 (이메일 분석)
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-3 아티팩트 분석 (이메일 분석)
2025.02.07본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다. 해당 블로그에서는 총 6개의 분석 섹션으로 나눠 포스팅을 할 예정이다. 각각 섹션은 다음과 같다. 현재 세션은 굵은 글씨로 표시되어 있다.1. 이미징 작업2. 손상된 파티션 복구3. 파티션 목록4. 아티팩트 분석 1. 운영체제 분석 1.1. PC 정보 분석 1.2. PC 사용자 분석 1.3. 설치된 프로그램 분석 2. 웹 아티팩트 분석 2.1. Chrome 분석 2.2. Edge 분석 2.3. Firefox 분석 3. Email 분석 4. 메신저 분석 4.1. Te..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-2 아티팩트 분석 (웹 아티팩트 분석)
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-2 아티팩트 분석 (웹 아티팩트 분석)
2025.02.03본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다. 해당 블로그에서는 총 6개의 분석 섹션으로 나눠 포스팅을 할 예정이다. 각각 섹션은 다음과 같다. 현재 세션은 굵은 글씨로 표시되어 있다.1. 이미징 작업2. 손상된 파티션 복구3. 파티션 목록4. 아티팩트 분석 1. 운영체제 분석 1.1. PC 정보 분석 1.2. PC 사용자 분석 1.3. 설치된 프로그램 분석 2. 웹 아티팩트 분석 2.1. Chrome 분석 2.2. Edge 분석 2.3. Firefox 분석 3. Email 분석 4. 메신저 분석 4.1. Te..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-1 아티팩트 분석 (운영체제 분석)
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #4-1 아티팩트 분석 (운영체제 분석)
2025.02.03본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다. 해당 블로그에서는 총 6개의 분석 섹션으로 나눠 포스팅을 할 예정이다. 각각 섹션은 다음과 같다. 현재 세션은 굵은 글씨로 표시되어 있다.1. 이미징 작업2. 손상된 파티션 복구3. 파티션 목록4. 아티팩트 분석 1. 운영체제 분석 1.1. PC 정보 분석 1.2. PC 사용자 분석 1.3. 설치된 프로그램 분석 2. 웹 아티팩트 분석 2.1. Chrome 분석 2.2. Edge 분석 2.3. Firefox 분석 3. Email 분석 4. 메신저 분석 4.1. Te..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #3 - 파티션 목록
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #3 - 파티션 목록
2025.02.03본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다. 해당 블로그에서는 총 6개의 분석 섹션으로 나눠 포스팅을 할 예정이다. 각각 섹션은 다음과 같다. 현재 세션은 굵은 글씨로 표시되어 있다.1. 이미징 작업2. 손상된 파티션 복구3. 파티션 목록4. 아티팩트 분석 1. 운영체제 분석 1.1. PC 정보 분석 1.2. PC 사용자 분석 1.3. 설치된 프로그램 분석 2. 웹 아티팩트 분석 2.1. Chrome 분석 2.2. Edge 분석 2.3. Firefox 분석 3. Email 분석 4. 메신저 분석 4.1. Te..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #2 - 손상된 파티션 복구
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #2 - 손상된 파티션 복구
2025.02.03본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다.해당 블로그에서는 총 6개의 분석 섹션으로 나눠 포스팅을 할 예정이다. 각각 섹션은 다음과 같다. 현재 세션은 굵은 글씨로 표시되어 있다.1. 이미징 작업2. 손상된 파티션 복구3. 파티션 목록4. 아티팩트 분석 1. 운영체제 분석 1.1. PC 정보 분석 1.2. PC 사용자 분석 1.3. 설치된 프로그램 분석 2. 웹 아티팩트 분석 2.1. Chrome 분석 2.2. Edge 분석 2.3. Firefox 분석 3. Email 분석 4. 메신저 분석 4.1. Tel..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #1 - 이미징 작업
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #1 - 이미징 작업
2025.02.03본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다.해당 블로그에서는 총 6개의 분석 섹션으로 나눠 포스팅을 할 예정이다. 각각 섹션은 다음과 같다. 현재 세션은 굵은 글씨로 표시되어 있다.1. 이미징 작업2. 손상된 파티션 복구3. 파티션 목록4. 아티팩트 분석 1. 운영체제 분석 1.1. PC 정보 분석 1.2. PC 사용자 분석 1.3. 설치된 프로그램 분석 2. 웹 아티팩트 분석 2.1. Chrome 분석 2.2. Edge 분석 2.3. Firefox 분석 3. Email 분석 4. 메신저 분석 4.1. Tel..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #0 - 대회 소개 및 분석 환경
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #0 - 대회 소개 및 분석 환경
2025.02.03본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다.2024년 디지털 범인을 찾아라 경진대회가 열렸다.한국포렌식학회(회장 김영대)와 한국저작권보호원은 올해로 10회를 맞이하는 ‘2024 디지털 범인을 찾아라 경진대회’를 공동으로 개최한다고 밝혔다.‘디지털 범인을 찾아라 경진대회’는 디지털 포렌식 기술을 활용하여 첨단범죄 수사 역량을 강화하고, 디지털 포렌식 분야의 발전을 도모하는 것을 목적으로 한다. 이번 경진대회는 주니어 부문과 시니어 부문으로 나뉘어 진행되며, 주니어 부문은 전국 대학생 이하 학생들을 대상으로, 시니어 부문은 일반인 및 대학원생 이상 전문가를 대상으로 한다.대회 접수는 2024년 ..
백준 2579 - 계단 오르기 (파이썬)
백준 2579 - 계단 오르기 (파이썬)
2025.02.03https://www.acmicpc.net/problem/2579전형적인 DP 문제이다..이 문제의 조건은 다음과 같다.1. 연속된 3개 계단을 모두 밟으면 안된다.2. 마지막 도착 계단은 반드시 밟아야한다.3. 계단은 한번에 한 계단 또는 두 계단씩 오를 수 있다.위 그림의 예제에서는 6개의 계단이 주어진다.S = 10, 20, 15, 25, 10, 201. 마지막 층인 20은 무조건 밟아햔다. 그럼 10을 밟게 되면 25는 못 밟으니까, 10을 버리고 25를 밟는게 최적2. 15를 밟게 되면 10, 20을 못밟으니까, 15를 버리고, 10, 20을 밟는게 이득3. 총 4개를 밟는 것이 최선, 총 75의 값을 가지게 된다.수열로써 값을 나타내면 다음과 같다.1. aN은 N번째, 최대 점수 (바로 전 ..
insightface를 이용한 DeepFake 간단 구현
insightface를 이용한 DeepFake 간단 구현
2025.02.01주의 ) 본 글을 이용하며, 본인이 아닌 다른 누군가를 DeepFake 및 합성하는 경우 법적 책임을 질수 있습니다. 본 글의 작성자는 책임지지 않습니다.BOB 프로젝트를 하면서 Deepfake를 연구하게 되었다. 단순히 소스코드 몇줄로, 사람의 얼굴을 딥페이크 할 수 있다니,, 무서운 세상이다.먼저 Insightface란 무엇인가?InsightFace는 최첨단 2D 및 3D 얼굴 분석을 위한 오픈 소스 딥러닝 라이브러리로, 주로 PyTorch와 MXNet을 기반으로 개발되었습니다. 이 라이브러리는 얼굴 인식, 얼굴 검출, 얼굴 정렬 등 다양한 얼굴 분석 작업을 효율적으로 수행할 수 있도록 설계되었습니다. 또한, ArcFace, SubCenter-ArcFace, VPL, Partial-FC와 같은 최신 ..
백준 11725 - 트리의 부모 찾기
백준 11725 - 트리의 부모 찾기
2025.02.01https://www.acmicpc.net/problem/11725 먼저 예제 1번을 바탕으로 문제를 이해하면, 71 66 33 54 12 44 7 (그리면서 풀면 더 쉽다..)2번 노드 -> 4번3번 노드 -> 6번4번 노드 -> 1번5번 노드 -> 3번6번 노드 -> 1번7번 노드 -> 4번1번부터 N번까지의 노드가 있다. 입력받은 인접한 두 노드를 트리로 완성하고, 각 노드의 부모가 누구인지 확인하는 문제이다.import syssys.setrecursionlimit(10**6)# input = sys.stdin.readline()N = int(input())adj = [[] for _ in range(N)] # 인접리스트for i in range(N - 1) : a, b = list(map(i..
백준 2606 - 바이러스
백준 2606 - 바이러스
2025.02.01https://www.acmicpc.net/problem/2606해당 문제는 그래프로도 풀어봤고, 새로운 풀이인 DFS로 풀이를 진행하였다.N = 컴퓨터의 수, M은 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수그 이후부턴, 한줄에 한쌍씩 네트워크 상에서 직접 연결되어 있는 컴퓨터의 번호 쌍이 주어진다.해당 문제에서 DFS를 적용한 이유는 다음과 같다."단순히 그래프로도 풀이를 할수 있지만, DFS 알고리즘을 사용하면 시간복잡도가 O(2M)이 된다.'먼저 N, M을 입력받고, adj 배열에 각각 컴퓨터를 연결시킨다.N = int(input())M = int(input())adj = [[] for i in range(N)]for _ in range(M) : a, b = list(map(int,..
카카오톡 포렌식 도구 개발 - Windows, iOS, Android, Mac 운영체제 카카오톡 디비 복호화
카카오톡 포렌식 도구 개발 - Windows, iOS, Android, Mac 운영체제 카카오톡 디비 복호화
2025.01.03오랜만에 블로그에 글을 작성하는것 같네요,,아마 전체적으로 만드는데 1년 정도 걸린것 같은데, 개발된 프로그램에 대해 살짝 소개해보려고 합니다.먼저 목적은 아직 상용 포렌식 도구에서 안드로이드, 윈도우, 아이폰, 맥북을 통합적으로 지원하는 도구를 확인하지 못했습니다.(혹시라도 알고 계시다면,, 댓글로 알려주세요)그래서 통합 플랫폼 카카오톡 디비 복호화 도구를 제작해 보는건 어떨까 싶어서 한번 간단하게 제작해본 프로그램입니다.일단 시연 영상먼저,,, 먼저 주요 기능은 다음과 같습니다.1. 윈도우 PC에서 물리 기기 / 논리 폴더 설정 등을 통해 카카오톡 데이터 복호화2. 안드로이드 기기 연결 및 즉시 복호화 / 또는 백업 파일로 카카오톡 데이터 복호화3. 아아폰 기기 연결 및 즉시 복호화 / 또는 백업 ..