본문 바로가기

코딩 테스트/do it! 알고리즘 코딩테스트100

052 거짓말 첫번째 코드 유니온 파인드는 이해가 되고, 코드로 함수를 어떻게 작성해야 할지는 익숙해지지만문제 해결 능력이나 루프의 원리가 아직 헷갈린다. 그래서 코드는 책을 참고했다. import sys input = sys.stdin.readline n, m = map(int, input().split()) true = list(map(int, input().split())) T = true.pop(0) party = [[] for _ in range(m)] for i in range(m):     party[i] = list(map(int, input().split()))     del party[i][0] parent = [0] * (n+1) for i in range(n+1):     parent[i] = i.. 2024. 6. 27.
051 여행 가자 첫번째 코드 2차원 행렬로 유니온 파인드를 적용해야하나 그건 어떻게 하는거지? 고민을 했는데책을 참고하고 코드를 작성했을 때유니온 파인드를 어떻게 사용할 것인지 생각을 잘 해야할 것 같다! 문제는 행렬이지만유니온 파인드로 결국 부모 노드를 찾는 것이므로 행렬일 필요가 없다! import sys input = sys.stdin.readline n = int(input()) m = int(input()) city= [[0 for j in range(n+1)] for i in range(n+1)] for i in range(1, n+1):     city[i] = list(map(int, input().split()))     city[i].insert(0, 0) route = list(map(int, inp.. 2024. 6. 27.
050 집합의 표현 첫번째 코드 유니온 파인드를 처음 접하는 코드였다.하여 코드는 책을 참고했다.이론은 이해가 되었는데, 코드에서 살짝 헷갈렸는데 전체적인 감은 잡혔다. find 코드는 부모 노드로 변경union 코드는 두 노드를 연결check는 두 대표값이 같은지 확인 import sys input = sys.stdin.readline sys.setrecursionlimit(10**5) n, m = map(int, input().split()) parent = [0] * (n+1) for i in range(n+1):     parent[i] = i def find(x):     if x == parent[x]:         return x     else:         parent[x] = find(parent[x].. 2024. 6. 25.
049 물통 첫번째 코드 어렵다...접근 방법조차 잘 모르겠어서 책을 참고했다.이런 종류의 트리도 있구나~ 라는 생각이 들었다. 코드는 책을 참고했다. import sys from collections import deque sender = [0, 0, 1, 1, 2, 2] receiver = [1, 2, 0, 2, 0, 1] now = list(map(int, input().split())) visited = [[False for j in range(201)] for i in range(201)] answer = [False] * 201 def BFS():     queue = deque()     queue.append((0, 0))     visited[0][0] = True     answer[now[2]] .. 2024. 6. 25.
048 이분 그래프 첫번째 코드 사실 이분 그래프의 정의는 알았지만 문제와 풀이를 아직 잘 이해하지 못했다.책을 참고해서 코드를 작성하였다...천천히 뒷 문제들을 풀면서 이해하고 다시 돌아와야 할 문제이다.... import sys input = sys.stdin.readline sys.setrecursionlimit(10**6) n = int(input()) iseven = True def DFS(x):     global iseven     visited[x] = True     for i in A[x]:         if not visited[i]:             check[i] = (check[x] + 1) % 2             DFS(i)         elif check[x] == check[i].. 2024. 6. 20.
047 효율적인 해킹 (미해결) 첫번째 코드 역시 그래프와 BFS 코드에 유의해서 작성했다.근데 시간초과 오류를 해결하지 못했다. 이전 문제와 거의 동일하다. import sys input = sys.stdin.readline from collections import deque n, m = map(int, input().split()) A = [[] for _ in range(n+1)] answer = [0] * (n+1) for _ in range(m):     s, e = map(int, input().split())     A[s].append(e) def BFS(x):     queue = deque()     queue.append(x)     visited[x] = True     while queue:         no.. 2024. 6. 20.
728x90