이 영역을 누르면 첫 페이지로 이동
포렌식 & 개발 이야기 - Forensics & Development 블로그의 첫 페이지로 이동

포렌식 & 개발 이야기 - Forensics & Development

페이지 맨 위로 올라가기

포렌식 & 개발 이야기 - Forensics & Development

Pental - Forensics / iOS / Windows / Android / Kakaotalk / Telegram / Etc

전체 글

  • 포렌식 & 개발 이야기 - Forensics & Development
[실버 2] 백준 14620 - 꽃길 (파이썬)

[실버 2] 백준 14620 - 꽃길 (파이썬)

2025.05.23
https://www.acmicpc.net/problem/14620풀이모든 좌표 중 3개를 조합으로 고른다.각 조합마다 꽃이 겹치지 않는지, 범위를 벗어나지 않는지 확인한다.문제가 없다면 그 조합의 총 비용을 계산하고 최소값을 갱신한다.from itertools import combinationsN = int(input())A = [list(map(int, input().split())) for _ in range(N)]N은 격자 크기.A는 각 칸의 비용을 저장한 2차원 배열.coordinates = [(i, j) for i in range(N) for j in range(N)]모든 좌표 (i, j)를 저장.dr = [0, 0, 1, -1]dc = [1, -1, 0, 0]answer = 1e9상하좌우 방..
[실버 1] 백준 1189 - 컴백홈 (파이썬)

[실버 1] 백준 1189 - 컴백홈 (파이썬)

2025.05.22
https://www.acmicpc.net/problem/1189풀이현재 위치에서 이동 횟수를 세면서 목적지 (0, C-1)에 도달하는 모든 경로의 수를 세는 문제.단, 정확히 K칸 이동한 경로만 유효함.이동은 상하좌우 가능하며, T는 막힌 칸이므로 이동 불가.시작 위치는 (R-1, 0) 여기가 ‘집’.목표 위치는 (0, C-1) 여기가 ‘학교’.DFS로 이동 경로를 탐색하면서 K-1번 이동해야 하며, 마지막 위치가 (0, C-1)일 때만 카운트한다.방문 체크는 used 리스트로 관리한다.백트래킹으로 이전 경로로 되돌아가 다른 경로 탐색을 계속used를 리스트 대신 set으로 바꾸면 in 검사 속도가 O(n) → O(1)로 줄어 성능 향상 가능def dfs(r, c, k, used): if k ==..
[브론즈 2] 백준 1233 - 주사위 (파이썬)

[브론즈 2] 백준 1233 - 주사위 (파이썬)

2025.05.21
https://www.acmicpc.net/problem/1233풀이합의 개수를 저장할 리스트 생성따라서 인덱스를 0부터 S1+S2+S3까지 만들고, 각 인덱스에 해당 합이 나오는 횟수를 저장한다.count = [0] * (S1 + S2 + S3 + 1)최대 합은 S1 + S2 + S3이고, 최소 합은 3이다.모든 주사위 눈 조합의 합을 카운트for i in range(1, S1 + 1): for j in range(1, S2 + 1): for k in range(1, S3 + 1): count[i + j + k] += 13중 for문을 돌며 각 눈의 합을 구하고, 그 합의 개수를 증가시킨다.가장 자주 나온 합을 찾기max_val = -1who = -1for i in..
[실버 4] 백준 2422 - 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 (파이썬)

[실버 4] 백준 2422 - 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 (파이썬)

2025.05.20
https://www.acmicpc.net/problem/2422풀이총 N가지 아이스크림 맛이 있고, 이 중 3가지를 선택해서 조합.하지만 M쌍의 조합은 같이 선택하면 안 되는 조합 (즉, 금지된 조합)이 주어짐.금지된 조합이 한 쌍이라도 포함되면 해당 3개 조합은 불가능.가능한 3가지 아이스크림 조합의 개수를 구해야 함.bad = [[False] * N for _ in range(N)]bad[i][j]는 아이스크림 i와 j를 함께 먹을 수 없는지 여부를 저장하는 2차원 리스트.인덱스는 0부터 시작하도록 처리.for _ in range(M): a, b = map(int, input().split()) a -= 1 b -= 1 bad[a][b] = True bad[b][a] = ..
[골드 4] 백준 1987 - 알파벳 (파이썬)

[골드 4] 백준 1987 - 알파벳 (파이썬)

2025.05.19
https://www.acmicpc.net/problem/1987풀이R행 C열의 보드가 주어짐.보드의 각 칸에는 알파벳 대문자가 하나씩 있음.(0, 0)부터 시작하여 상하좌우로 이동.같은 알파벳을 두 번 지나갈 수 없음.최대로 이동할 수 있는 칸 수 출력.R, C = map(int, input().split())B = [input() for _ in range(R)]R * C 크기의 보드를 입력받는다.answer = 0check = [False] * 26check 배열은 A ~ Z 26개의 알파벳 사용 여부를 기록한다.def dfs(r, c, count) : global answer answer = max(answer, count)현재 위치까지 이동한 칸 수 count를 이용해 answer를 ..
[브론즈 1] 백준 1924 - 2007년 (파이썬)

[브론즈 1] 백준 1924 - 2007년 (파이썬)

2025.05.19
https://www.acmicpc.net/problem/1924풀이2007년 1월 1일은 월요일 (MON).입력: x y (월, 일)출력: 2007년 x월 y일의 요일months = { 1 : 31, 2 : 28, ... 12 : 31}2007년은 평년이므로 2월은 28일.각 월의 일수를 딕셔너리로 저장.days = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]2007년 1월 1일이 월요일이므로, 인덱스 0 = “MON”으로 배열 정의.current = sum(months[i] for i in range(1, x))1월부터 (x - 1)월까지 총 일수를 더함.예: x = 3 (3월) → 1월 + 2월 = 31 + 28 = 59current..
[실버 2] 백준 1500 - 최대 곱 (파이썬)

[실버 2] 백준 1500 - 최대 곱 (파이썬)

2025.05.18
https://www.acmicpc.net/problem/1500풀이곱의 최댓값을 구하려면, 수들을 가능한 한 고르게 나누는 것이 유리하다.예: S = 10, K = 3일 때 → 3, 3, 4 (곱: 36)2, 2, 6은 합은 같지만 곱이 작다 (24)정수 S를 K로 나눈 몫(q)과 나머지(r) 를 활용하면 된다.q, r = divmod(S, K)S = q * K + rnums = [q + 1] * r + [q] * (K - r)r개의 항에는 (q+1), 나머지는 qr개의 수는 (q + 1)나머지 (K - r)개의 수는 q이 수들을 곱하면 최댓값result = 1for num in nums: result *= numprint(result)코드# 백준 1500 - 최대 곱# 분류 : 수학S, K = ..
[실버 3] 백준 1012 - 유기농 배추 (파이썬)

[실버 3] 백준 1012 - 유기농 배추 (파이썬)

2025.05.17
https://www.acmicpc.net/problem/1012풀이M x N 밭에 K개의 배추가 심어져 있다.상하좌우로 인접한 배추는 하나의 그룹으로 간주한다.이 그룹 수 = 필요한 지렁이 수목표: 테스트 케이스마다 그룹 수 출력field = [[0] * M for _ in range(N)]visited = [[False] * M for _ in range(N)]field[y][x] 는 배추가 있는 위치를 표시하고, visited 이미 방문한 곳은 다시 탐색하지 않도록 체크한다.dx = [1, -1, 0, 0]dy = [0, 0, 1, -1]상, 하, 좌, 우로 이동 할 수 있는 트릭을 작성한다.def bfs(x, y): queue = deque() queue.append((x, y)) ..
[브론즈 1] 백준 10448 - 유레카 이론 (파이썬)

[브론즈 1] 백준 10448 - 유레카 이론 (파이썬)

2025.05.16
https://www.acmicpc.net/problem/10448풀이D = [0] * 50D[0] = 1D[1] = 3for i in range(1, 50): D[i] = D[i - 1] + i + 1삼각수를 생성한다.for combination in combinations(D, 3): if sum(combination) == N: found = True breakcombinations(D, 3)는 중복 없이 3개를 뽑아 더한 것이 N과 같은지 확인중복이 안되기 때문에 예를 들어 (3, 3, 3) 같은 케이스는 이 조건에 안 걸림for combination in combinations(D, 2): if combination[0] * 2 + combination[..
[실버 3] 백준 23351 - 물 주기 (파이썬)

[실버 3] 백준 23351 - 물 주기 (파이썬)

2025.05.15
https://www.acmicpc.net/problem/23351풀이총 N개의 화분이 있다.하루에 A개만큼의 화분에 물을 줄 수 있다.물을 주면, 해당 화분의 수분량이 B만큼 회복된다.수분량이 0이 되면 화분이 죽는다.처음 모든 화분은 수분량 K로 시작한다.모든 화분을 죽이지 않고 버틸 수 있는 최대 일수를 구하라.코드# 백준 23351 - 물 주기# 분류 : 우선순위 큐from queue import PriorityQueueN, K, A, B = map(int, input().split())N //= Apq = PriorityQueue()for _ in range(N) : pq.put(K)count = 0zero = 0while True : x = pq.get() if x == zer..
[실버 5] 백준 27111 - 출입 기록 (파이썬)

[실버 5] 백준 27111 - 출입 기록 (파이썬)

2025.05.14
https://www.acmicpc.net/problem/27111풀이어떤 사람들이 출입기록을 남긴다.입력: 사람 번호 a, 출입 여부 b (1 = 입장, 0 = 퇴장)정상적인 경우:입장 기록 없이 퇴장 ❌이미 입장한 상태에서 또 입장 ❌비정상적인 경우의 수를 출력하라.bude = set()count = 0bude는 현재 안에 있는 사람들의 번호를 저장하는 setcount는 비정상적인 출입 횟수를 저장하는 변수이다.for _ in range(N): a, b = map(int, input().split())a는 사람번호, b는 출입 여부if b == 1: if a in bude: count += 1 # 이미 안에 있는데 또 입장 → 비정상 else: bude.ad..
[실버 1] 백준 15903 - 카드 합체 놀이 (파이썬)

[실버 1] 백준 15903 - 카드 합체 놀이 (파이썬)

2025.05.13
https://www.acmicpc.net/problem/15903풀이숫자 카드 N장이 주어짐M번에 걸쳐 가장 작은 두 장을 골라 합친 뒤, 그 값을 두 장 모두에 덮어 씌움최종 카드들의 합을 구하라from queue import PriorityQueueN, M = map(int, input().split())A = list(map(int, input().split()))N: 카드 개수M: 합체 횟수A: 카드에 적힌 숫자들pq = PriorityQueue()for x in A : pq.put(x)최소 힙을 활용하기 위해서 PrioirtyQueue에 모든 값을 넣는다. (기본적으로 오름차순 우선순위로 동작한다.)for _ in range(M) : x = pq.get() y = pq.get(..
[25년 1회차] 정보보안기사 동회차 합격 후기 (필기 & 실기)

[25년 1회차] 정보보안기사 동회차 합격 후기 (필기 & 실기)

2025.05.12
이번 회차에 정보보안기사 필기와 실기 모두 한 번에 합격했습니다.짧게나마 제 공부 방법과 느낀 점, 그리고 소소한 팁들을 기록용으로 남겨봅니다.앞으로 준비하시는 분들께 조금이나마 도움이 되길 바랍니다1.시험 개요정보보안기사는 한국인터넷진흥원(KISA) 주관 자격증으로, 정보보안 실무 지식 + 보안관리 능력을 두루 평가합니다.필기 : 객관식 4지선다, 과목별 20문항씩 총 100문항 (과락 있음)실기 : 필답형 (보안 관련 실무 지식 + 상황 대응)시험 일정은 상·하반기로 연 3회 진행되며, 제가 응시한 회차는 2025년 1회차였습니다.2. 필기 공부법✅ 공부 기간: 약 2~3주저는 짧게 집중해서 준비하는 스타일이라, 기본 이론 + 기출 반복 중심으로 공부했습니다.이때 BOB랑 일정이 겹쳐서 책만 사두고 ..
[골드 4] 백준 4803 - 트리 (파이썬)

[골드 4] 백준 4803 - 트리 (파이썬)

2025.05.12
https://www.acmicpc.net/problem/4803풀이정점 N개와 간선 M개로 구성된 무방향 그래프가 주어진다.그래프 내에 트리가 몇 개 존재하는지 출력해야 한다.트리의 정의: 사이클이 없는 연결 그래프간선 수 = 정점 수 - 1 이면 트리다.adj = [[] for _ in range(N)]인접 리스트를 생성한다. 단 정점번호는 0부터 N - 1이다.for _ in range(M) : a, b = map(int, input().split()) a -= 1 b -= 1 adj[a].append(b) adj[b].append(a)무방향 간선이므로 양쪽에 모두 추가한다.입력은 1-based이지만 내부는 0-based로 처리한다.visit = [False] * Nque..
[골드 4] 백준 7662 - 이중 우선순위 큐 (파이썬)

[골드 4] 백준 7662 - 이중 우선순위 큐 (파이썬)

2025.05.11
https://www.acmicpc.net/problem/7662풀이I x : x를 삽입D 1 : 최댓값 삭제D -1 : 최솟값 삭제최종적으로 큐에 남아 있는 값 중 최댓값과 최솟값 출력비어 있으면 "EMPTY" 출력min_pq = PriorityQueue() # 최소 힙max_pq = PriorityQueue() # 최대 힙 (음수로 삽입)count = {} # 실제 유효한 값 카운트이중 우선순위 큐를 min_pq, max_pq로 나눠서 관리한다동기화가 되지 않기 때문에, 실제 삭제 여부는 count 딕셔너리로 관리한다.if t == 'I' : min_pq.put(v) max_pq.put(-v) count[v] = count.get(v, 0) + 1삽입 연산의 경우 우선순위 큐에 ..
[25년 5월] 아이폰 1110 오류 - 데이터 복구 성공 / 아이폰 무한 사과 해결

[25년 5월] 아이폰 1110 오류 - 데이터 복구 성공 / 아이폰 무한 사과 해결

2025.05.11
안녕하세요, 오랜만에 아이폰 1110 오류에 관해서 블로그 포스팅을 하게 되었습니다.그동안 수많은 복구 작업을 진행했는데, 오랜만에 생각나서 포스팅을 하게 되었습니다.이 글은, 실제 데이터 복구 요청을 받아 작업을 진행하였습니다. 해당 의뢰를 원하신다면 하단에 연락쳐로 연락주세요!최대한의 합리적인 금액으로 복구 및 수리를 도와드리고 있습니다.2025년 5월 11일 기준으로 현재, 1110오류에 대해서는 대략 70~80% 복구 성공률을 장담하고 있습니다.한달에는 많게는 4~5건, 여러건에 대해서 문의가 들어오고 있습니다. 애플 공식 서비스센터에서는 1110 에러에 대해서는 초기화 밖에 답이 없다고 하지만, 저는 의뢰자 분들의 소중한 데이터를 위해서 항상 연구 하고 있습니다.택배로 의뢰자 분의 기기를 받아보..
[골드 5] 백준 2166 - 다각형의 면적 (파이썬)

[골드 5] 백준 2166 - 다각형의 면적 (파이썬)

2025.05.10
https://www.acmicpc.net/problem/2166 풀이평면 위의 N개의 꼭짓점이 주어지는 다각형의 면적을 구하라정점 N개면적을 소수점 첫째 자리까지 반올림다각형의 꼭짓점 (x1, y1), (x2, y2), … , (xn, yn) 순서로 주어졌을때 면적은 신발끈 공식으로 해결 할 수 있다.area = 0for i in range(N): x1, y1 = points[i] x2, y2 = points[(i + 1) % N] area += (x1 * y2) - (x2 * y1)x1 * y2 - x2 * y1 항을 순서대로 모두 더해서 신발끈 공식의 분자 부분을 구한다.(i + 1) % N 으로 마지막 점과 첫 점을 연결한다.print(round(abs(area) / 2, 1))절..
[골드 3] 백준 1005 - ACM Craft (파이썬)

[골드 3] 백준 1005 - ACM Craft (파이썬)

2025.05.10
https://www.acmicpc.net/problem/1005풀이각 건물은 건설 완료에 특정 시간이 걸림.어떤 건물을 짓기 위해 다른 건물을 먼저 지어야 할 수도 있음.목표 건물 W를 짓기까지의 최소 시간을 구해야 함.진입 차수 계산 및 그래프 구성count[y] += 1은 y번 건물을 짓기 전 지어야 할 건물 개수를 누적함.adj[x].append(y)는 x 건물 후에 y 건물을 지을 수 있다는 의미.초기 시작 노드 설정 (진입 차수가 0인 노드)진입 차수가 0인 건물은 바로 지을 수 있으므로 queue에 삽입.finish[i] = D[i]로 초기화.위상 정렬 + DPu를 짓고 나면 그 다음 건물 v는 finish[v] = max(finish[v], finish[u] + D[v])로 업데이트함.즉,..
[골드 3] 백준 16947 - 서울 지하철 2호선 (파이썬)

[골드 3] 백준 16947 - 서울 지하철 2호선 (파이썬)

2025.05.10
https://www.acmicpc.net/problem/16947풀이서울 지하철 2호선은 하나의 순환선과 그 순환선에 연결된 가지 노선들로 구성되어 있음.각 역은 노드, 연결된 선로는 간선으로 보았을 때입력으로 역들과 연결 정보를 주고,각 역이 순환선으로부터 얼마나 떨어져 있는지(거리)를 출력하는 문제이다.그래프 만들기: 인접 리스트로 저장순환선 찾기: 리프 노드(leaf, degree==1)들을 반복적으로 제거 → 순환에 속한 노드만 남김BFS로 거리 계산: 순환선 노드들을 시작점으로 BFS 수행 → 거리 계산N = int(input())adj = [[] for _ in range(N)]for _ in range(N) : u, v = map(int, input().split()) u -= ..
[골드 1] 백준 2263 - 트리의 순회 (파이썬)

[골드 1] 백준 2263 - 트리의 순회 (파이썬)

2025.05.09
https://www.acmicpc.net/problem/2263풀이트리 재구성 및 전위 순회 출력을 하는 문제이다.문제는 중위 순회와 후위 순회 결과를 통해 전위 순회 결과를 구하는 것이다.입력첫 줄 : 노드 개수 N둘째 줄 : 중위 순회 결과 INORDER셋째 줄 : 후위 순회 결과 POSTORDER출력전위 순회 결과순회 정의전위(preorder)Root → Left → Right중위(inorder)Left → Root → Right후위(postorder)Left → Right → Root후위 순회의 마지막 원소는 항상 현재 서브트리의 루트 노드이다.루트 값을 중위 순회에서 찾아 좌/우 서브트리의 범위를 나눈다.나뉜 범위를 이용해 재귀적으로 좌/우 서브트리를 계속 분할한다.루트를 먼저 출력하므로 전위..
  • 최신
    • 1
    • 2
    • 3
    • 4
    • ···
    • 23
  • 다음

정보

포렌식 & 개발 이야기 - Forensics & Development 블로그의 첫 페이지로 이동

포렌식 & 개발 이야기 - Forensics & Development

  • 포렌식 & 개발 이야기 - Forensics & Development의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

카테고리

  • Category (447) N
    • Forensics (104)
      • Magnet AXIOM (28)
      • Digital Forensics Informati.. (9)
      • Iphone Forensics (23)
      • DFC (7)
      • 디지털포렌식전문가2급 자격증 (10)
      • FTK ACE 자격증 (7)
    • 이것저것 (7)
      • Ubuntu (6)
      • 디스코드 봇 (4)
      • Volatility GUI (2)
    • CTF (32)
      • NEWSECU (14)
      • CTF-d (5)
      • Puzzel - Network Forensics (2)
      • Security Traps (2)
      • system32.kr (5)
      • HMCTF (4)
    • Programming (256) N
      • C (10)
      • Python (11)
      • 백준 (202) N
      • 프로그래머스 (32)
    • 그냥 개발 및 잡담 (16)
      • Docker (2)
      • Google Cloud (3)
      • OS 개발 (3)
    • Best of Best (20)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • pental
  • 프로그래머스
  • 포렌식
  • Forensics
  • 백준
  • 파이썬
  • axiom
  • 디지털포렌식
  • 전체 보기…

정보

pental의 포렌식 & 개발 이야기 - Forensics & Development

포렌식 & 개발 이야기 - Forensics & Development

pental

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © pental.

티스토리툴바