본문 바로가기

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

046 특정 거리의 도시 찾기 첫번째 코드 BFS 문제와 그래프 그리는 것을 신경쓰면서 코드를 작성하자.사실 이전에 푼 BFS 문제와 비슷하게 느껴졌다! import sys input = sys.stdin.readline from collections import deque n, m, k, x = map(int, input().split()) A = [[] for _ in range(n+1)] answer = [] visited = [-1] * (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] += 1     while q.. 2024. 6. 18.
045 Ax+By=C 첫번째 코드 일단 백준에서는 아직 채점이 불가능한 문제이다! 확장 유클리드 호제법을 알고 있어야 풀 수 있는 문제라고 생각이 든다..어렵다 어려워;한번씩 더 생각해서 코드를 구성해야 해서, 다음에 다시 또 풀어보도록 하자!유클리드 호제법 확장.... 메모.... 추가적인 이해와 빠른 이해 방법이 있으면 나중에 설명을 추가하자! import sys input = sys.stdin.readline a, b, c = map(int, input().split()) def MOD(a, b):     if b == 0:         return a     else:         return MOD(b, a % b) def euclidean (a, b):     ret = [0] * 2     if b == 0:.. 2024. 6. 18.
043 최대공약수 첫번째 코드 유클리드 호제법은 최대공약수를 구하는 방법으로  이를 이용하여 쉽게 풀었다.하지만 sort가 되어 있지 않아 이 부분만 신경써주면 된다.1로 출력해야 하므로 방법만 알고 있으면 금방이다. import sys input = sys.stdin.readline def MOD(x, y):     a = max(x, y)     b = min(x , y)     if b == 0:         return a     else:         return MOD(b, a % b) n, m = map(int, input().split()) answer = MOD(n, m) while answer > 0:     print(1, end = '')     answer -= 1 통과:)링크https://gi.. 2024. 6. 13.
044 칵테일 첫번째 코드 먼저 최소공배수와  관련된 문제라는 이해는 되었다.근데 재귀 관련된 부분도 들어가야할 것 같은데...으잉? 하다가 책을 참고했더니 DFS.....ㅎㅎㅎ;;완벽히 혼자서도 코드를 구성할 수 있다 정도는 아니지만 그래도 한걸음 더 다가섰다는 것에 만족하자 :(아직 DFS와 연관 지어 생각하는 것은 어려운 것 같댜... ㅎㅎ; import sys input = sys.stdin.readline n = int(input()) A = [[] for _ in range(n)] visited = [False] * n D = [0] * n lcm = 1 def MOD (a, b):     if b == 0:         return a     else:         return MOD(b, a % b).. 2024. 6. 13.
041 GCD(n, k) = 1 첫번째 코드 사실 오일러의 피 개념에 대해서는 어느정도 이해를 했는데결과가 결국 어떤 것을 의미하는 것인지에 대해서 의문이었다. 이 책의 코드를 통해서 이해가 되었다.특정 값의 소인수의 개수를 말해주는 것이었다. 이 코드에서 n과 result를 따로 움직인다.그리고 마지막에 1개의 누락된 소인수를 챙겨주는 과정을 거친다. 개념에 대한 이해가 되어 코드 구성은 이해가 되지만소소하게 챙길 부분이 좀 있다고 생각이 들었다.이번에 존재와 이해정도로 만족하고 다음에 다시 풀면서 온전한 이해와 코드 구성을 기대한다. import sys import math input = sys.stdin.readline n = int(input()) result = n for i in range(2, int(math.sqrt(n).. 2024. 6. 11.
042 최소공배수 첫번째 코드 유클리드 호제법을 처음 접한 경우이므로 어떻게 코드를 구성해야 편한지 책을 참고했다.생각보다 쉽게 구현이 가능했고 중간 코드는 책 없이도 작성이 가능했다. 근데 최소공배수를 최대공약수를 이용해서 어떻게 풀지?가 의문이었다."최소공배수 = 두 수의 곱 / 최대공약수"의 방법으로 구할 수 있다!!! 이건 기억하자:) import sys input = sys.stdin.readline def MOD(x, y):     if y == 0:         return x     else:         return MOD(y, x % y) n = int(input()) for i in range(n):     x, y = map(int, input().split())     answer = x * y.. 2024. 6. 11.
728x90