목록분류 전체보기 (67)
줴림이 공부하줴림
노트정리하진 않았지만, 이 단원에서는 Fan-in, Fan-out 계산하는 문제가 자주 나온다고 한다.또한, 응집도랑 결합도를 까먹지 않도록 하자.
이제 필기시험 거의 2주밖에 안 남았다. 호달달 호달달...
이번엔 전체 몇 개의 조가 만들어지는지를 알아보는 문제였다. 딱 문제를 봤을 때 "아 이건 그래프랑 DFS를 쓰는 문제야!!"까지는 반사적으로 생각할 수 있었지만, 그래프를 어떻게 구현해야 하는지... 그 부분에서 막혀버렸다. 무방향 그래프니까 graph[a].append(b)와 graph[b].append(a)를 둘 다 해줘야 하는 건 알겠는데, 더 진행할 수 없어서 인터넷의 도움을 받아서 진행했다..T = int(input())for test_case in range(1, T+1): N, M = map(int, input().split()) arr = list(map(int, input().split())) graph = [[] for _ in range(N+1)] # [..
오늘 문제는 연산 횟수를 최소로 해서 목표하는 자연수를 만드는 문제이다. (간단하게 말하자면 그렇다는거지)DFS랑 BFS 중에서 자신 있는 방법을 선택하라면 고민도 않고 DFS를 선택할 것이기에, 처음 시작은 DFS로 구현했다.# DFS 사용 -- 제한시간 초과 발생T = int(input())for test_case in range(1, T+1): N, M = map(int, input().split()) answer = float('inf') def calc(num, count): global answer if count >= answer: return if num == M: if answer > co..
이번 문제는 지문이 좀 길다. 'Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다. 이때 성공메시지 대신 Key 값이 MessageBox에 출력되도록 하려면 파일을 HexEdit으로 오픈한 다음 0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다. 문제: Key값과 + 주소 영역을 찾으시오.' 라고 되어 있다. 일단 12.exe를 열어서 아무 키나 입력하고 Check를 눌렀다. 틀린 Key인데도 아무 것도 안 뜨는 걸로 봐선 파일 안에 성공 메시지만 있고 오류 메시지는 없는 듯. 일단 12.exe를 PEiD에 올려서 패킹이 된 아이인지 아닌지 알아봤다. 이번엔 패킹 처리는 안 되어 있다. 따로 언패킹할 필요 없이 바로 Olly로 열어서 확인할 수 있다.0040107D에서 ..
이번 문제는 N종의 제품을 N곳의 공장에서 한 곳당 한 가지씩 생산할 때, 최소 생산 비용이 얼마인지 구하는 문제이다.T = int(input())for test_case in range(1, T+1): N = int(input()) arr = [list(map(int, input().split())) for _ in range(N)] answer = float('inf') visited = [False for _ in range(N)] def factory(product, fee): # product: 현재 제품, fee: 생산 비용 global answer if fee >= answer: # 가지치기 return ..
이번 문제는 전기버스 문제이다. 전에 전기버스1 문제를 풀었던 것 같은데... 그때는 충전을 하는 거라면 지금은 교체를 한단다. 어쨌든 백트래킹을 이용해서 풀어보자.T = int(input())for test_case in range(1, T+1): arr = list(map(int, input().split())) N = arr.pop(0) # 정류장 개수 answer = float('inf') # 최소 교체 횟수 def bus(loc, count): # loc: 현재 위치, count: 충전 횟수 global answer if count >= answer: return if loc >= N-1: ..