목록2025/04/24 (3)
줴림이 공부하줴림
어느 새 10번을 지나 11번 문제를 풀고 있는 나. 이번 문제는 OEP랑 StolenByte를 찾는 문제이다. Stolen Byte는 저번 문제를 풀 때도 나왔었는데, 패커의 일부분처럼 동작하기 위해 패커 코드 내에 사용된 코드를 의미한다는 걸 다시 한 번 알고 가자. 그리고 POPAD와 JMP OEP 사이에서 PUSH 명령어를 통해 원래 OEP부터 실행되었어야 할 코드를 스택으로 빼돌리는 것도! 11.exe를 실행시키면 이런 창이 나오는데, 그대로 확인을 누르면 keyfile을 찾을 수 없다고 error가 뜬다. 얘도 패킹이 되어 있는지 HxD랑 PEiD를 통해 알아보도록 하자. HxD 쓰는 이유? 있어보이려고...보니까 UPX로 패킹이 되어 있긴 하다. 바로 패킹을 풀어주고 Olly로 열어보자!지금..
그동안 계속 동영상 강의에서 나왔던 베이비진 문제를 풀어봤다. 각각 플레이어 1과 2가 숫자카드를 번갈아 뽑는데, 둘 중 한 명이라도 연속된 숫자 3개 이상이거나 동일한 숫자 3개 이상이면 바로 승자가 결정된다.def check(player): if len(player) 처음엔 이 코드로 작성해서 문제를 해결하려고 했는데, 마지막 테스트케이스에서 오답이 나왔다. 뭐가 문젠지 다시 보니까 딱 카드가 3장일 때만 고려했었다. 그래서 check 함수 부분만 살짝 바꿔줬다.기존 방식이 플레이어가 가지고 있는 카드 자체에서 승리 조건을 만족하는지 보고 있는 거였는데, 여기서 플레이어가 가지고 있는 숫자 카드의 개수를 세어서 판단하는 방식으로 바꿨다. 이렇게 바꾸니까 무사히 Pass가 나오더라..def ch..
이번 문제는 '화물 도크' 문제이다. 간단하게 설명하면, 0시부터 24시까지 사용 가능한 도크를 최대 몇 대의 화물차가 쓸 수 있는지를 묻고 있다.T = int(input())for test_case in range(1, T+1): N = int(input()) arr = [list(map(int, input().split())) for _ in range(N)] sorted_arr = sorted(arr, key=lambda x: x[1]) # 종료 시간 기준 정렬 answer = 0 # 최대 이용 가능한 화물차 개수 now_e = 0 # 앞 신청서 종료 시간 for i in range(N): s = sorted_arr[i][0] ..