분류 전체보기 (638) 썸네일형 리스트형 [멀티미디어 포렌식] basics 문제에서 steg.png 파일을 하나 줍니다. 열어보겠습니다. 이미지가 하나 나옵니다. 파일 이름이 steg.png이므로, stegsolve 툴을 먼저 사용해 보겠습니다. stegsolve 툴을 사용해 답을 구할 수 있었습니다. [멀티미디어 포렌식] 이 파일에서 플래그를 찾아라! 문제에서 sunrise.zip 파일 하나를 줍니다. 압축을 풀어보겠습니다. 위와 같은 png 파일 하나가 나옵니다. 다른 정보는 없으니 hxd로 열어보겠습니다. 시그니쳐도 PNG 파일이고, 별다른 정보를 확인하지 못하였습니다. PNG 파일시스템 구조를 보고 분석을 해보겠습니다. png chunk의 IHDR에 width, height 부분을 조정하고 저장해 보았습니다. 그림 아랫부분에 숨겨진 flag를 찾을 수 있었습니다. [멀티미디어 포렌식] 계속 주시해라! 문제에서 proxy.jpg 파일 하나가 주어집니다. 열어보겠습니다. 별다른 힌트는 없습니다. hxd로 열어보겠습니다. 시그니쳐는 FF D8로 JPG 확장자의 파일입니다. 정보가 딱히 없어서 쭉 내리면서 보니, JPG 파일의 footer 시그니쳐 뒤에 문자열이 존재하였습니다. [멀티미디어 포렌식] 내 친구는 이것이 특별한... 문제에서 img.jpg 파일 하나를 줍니다. 열어보겠습니다. 일반 이미지 파일 하나가 나옵니다. flag를 알아볼 수는 없으므로 hxd로 열어보겠습니다. hxd로 열면 flag로 보이는 문장을 발견할 수 있습니다. [멀티미디어 포렌식] Three Thieves Threw Trumpets Through Trees 문제에서 image1.jpg 파일 하나를 줍니다. 열어보겠습니다. 위와 같이 아무 것도 출력되지 않습니다. hxd로 열어보겠습니다. 문제 파일의 시그니쳐는 52 49 46 46 으로 WAV 파일으로 확인됩니다. image1.jpg 파일의 확장자를 wav 파일로 바꾸어 보겠습니다. 그리고 오디오 파일을 분석하기 위하여 audacity 툴을 사용해 보겠습니다. 위와 같은 파형을 가지고 있지만, 확인하기 어려운 소리가 들립니다. 이것저것 확인하다 소리를 거꾸로 틀고 배속을 낮추어 들어보니 'the password is abracadabra' 라는 문장을 확인할 수 있었습니다. [다이나믹 프로그래밍 알고리즘] 효율적인 화폐 구성 - 파이썬(python) 효율적인 화폐 구성 난이도 : 中 풀이 시간 : 30분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n, m = map(int, input().split()) coins = [] for i in range(n): coins.append(int(input())) dp_table = [10001] * (m + 1) dp_table[0] = 0 for i in range(n): for j in range(coins[i], m+1): if dp_table[j - coins[i]] != 10001: dp_table[j] = min(dp_table[j], dp_table[j - coins[i]] + 1) if dp_table[m] == 10001: print(-1) else: print(dp_table[m.. [다이나믹 프로그래밍 알고리즘] 바닥 공사 - 파이썬(python) 바닥 공사 난이도 : 中下 풀이 시간 : 20분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n = int(input()) dp_table = [0] * 1001 dp_table[1] = 1 dp_table[2] = 3 for i in range(3, n+1): dp_table[i] = (dp_table[i-1] + (dp_table[i-2] * 2)) % 796796 print(dp_table[n]) 예시 # 정수 N을 입력 받기 n = int(input()) # 앞서 계산된 결과를 저장하기 위한 DP 테이블 초기화 d = [0] * 1001 # 다이나믹 프로그래밍(Dynamic Programming) 진행 (보텀업) d[1] = 1 d[2] = 3 for i in range(3, n + 1).. [다이나믹 프로그래밍 알고리즘] 개미 전사 - 파이썬(python) 개미 전사 난이도 : 中 풀이 시간 : 30분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n = int(input()) foods = list(map(int, input().split())) dp_table = [0] * 100 dp_table[0] = foods[0] dp_table[1] = max(foods[0], foods[1]) for i in range(2, n): dp_table[i] = max(dp_table[i-1], dp_table[i-2] + foods[i]) print(dp_table[n-1]) 예시 # 정수 N을 입력 받기 n = int(input()) # 모든 식량 정보 입력 받기 array = list(map(int, input().split())) # 앞서 계산된 결.. [다이나믹 프로그래밍 알고리즘] 1로 만들기 - 파이썬(python) 1로 만들기 난이도 : 中下 풀이 시간 : 20분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 x = int(input()) dp_table = [0] * 30001 for i in range(2, x+1): dp_table[i] = dp_table[i-1] + 1 if i % 2 == 0: dp_table[i] = min(dp_table[i], dp_table[i // 2] + 1) if i % 3 == 0: dp_table[i] = min(dp_table[i], dp_table[i // 3] + 1) if i % 5 == 0: dp_table[i] = min(dp_table[i], dp_table[i // 5] + 1) print(dp_table[x]) 예시 # 정수 X를 입력 받기 x = .. [이진 탐색 알고리즘] 떡볶이 떡 만들기 - 파이썬(python) 떡볶이 떡 만들기 난이도 : 中 풀이 시간 : 40분 시간 제한 : 2초 메모리 제한 : 128 MB 해답 n, m = list(map(int, input().split(' '))) ddeoks = list(map(int, input().split())) start, end = 0, max(ddeoks) result = 0 while start mid: total += i - mid if total < m: end = mid - 1 else: result = mid start = mid + 1 print(result) 예시 # 떡의 개수(N)와 요청한 떡의 길이(M)을 입력 n, m = list(map(int, input().split(' '))) # 각 떡의 개별 높이 정보를 입력 array = lis.. 이전 1 ··· 33 34 35 36 37 38 39 ··· 64 다음