본문 바로가기

반응형

전체 글

백준 1033 파이썬 DFS와 최대공약수 백준 1033 - 칵테일 문제 https://www.acmicpc.net/problem/1033 1033번: 칵테일 august14는 세상에서 가장 맛있는 칵테일이다. 이 칵테일을 만드는 정확한 방법은 아직 세상에 공개되지 않았지만, 들어가는 재료 N개는 공개되어 있다. 경근이는 인터넷 검색을 통해서 재료 쌍 N www.acmicpc.net 답안 코드 : N = int(input()) A = [[] for _ in range(N)] visited = [False] * (N) D = [0] * (N) lcm = 1 def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) def DFS(v): visited[v] = True for i in A[v]: n.. 더보기
백준 1850 파이썬 최대 공약수를 유클리드 호제법 백준 1850 - 최대공약수 문제 https://www.acmicpc.net/problem/1850 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A www.acmicpc.net 답안 코드 : def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) a, b = map(int, input().split()) result = gcd(a, b) while result > 0: print(1, end='') result -= 1 생각 : # 문제 분석 # 예제 3번을 보.. 더보기
백준 1934 파이썬 유클리드 호제법 백준 1934 - 최소공배수 문제 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 답안 코드 : def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) t = int(input()) for i in range(t): a, b = map(int, input().split()) result = a * b / gcd(a, b) print(int(result)) 생각 : # 유.. 더보기
백준 11689 파이썬 오일러 피 백준 11689 - GCD(n, k) = 1 문제 https://www.acmicpc.net/problem/11689 11689번: GCD(n, k) = 1 자연수 n이 주어졌을 때, GCD(n, k) = 1을 만족하는 자연수 1 ≤ k ≤ n 의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 답안 코드 : import math N = int(input()) result = N for p in range(2, int(math.sqrt(N)) + 1): # 제곱근까지만 진행 if N % p == 0: # p가 소인수인지 확인 result -= result / p # 결괏값 업데이트 while N % p == 0: # 2의 7승*11이라면 2의 7승을 없애고 11만 남김 N /= p if.. 더보기
백준 1016 파이썬 에라토스테네스의 체 방식으로 제곱수의 배수 형태로 탐색 백준 1016 - 제곱 ㄴㄴ 문제 https://www.acmicpc.net/problem/1016 1016번: 제곱 ㄴㄴ 수 어떤 정수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 그 수를 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min보다 크거나 같고, max보다 작거나 같은 제곱ㄴㄴ수 www.acmicpc.net 답안 코드 : import math Min, Max = map(int, input().split()) Check = [False] * (Max - Min + 1) for i in range(2, int(math.sqrt(Max) + 1)): pow = i * i start_index = int(Min / pow) if Min % pow != 0: .. 더보기
백준 1747 파이썬 에라토스테네스의 체를 이용 팰린드롬 백준 1747 - 소수&팰린드롬 문제 https://www.acmicpc.net/problem/1747 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net 답안 코드 : import math N = int(input()) A = [0] * (10000001) for i in range(2, len(A)): A[i] = i for i in range(2, int(math.sqrt(len(A)) + 1)): # 제곱근까지만 수행 if A[i] == 0: continue for j.. 더보기
백준 1456 파이썬 거의 소수 백준 1456 - 거의 소수 문제 https://www.acmicpc.net/problem/1456 1456번: 거의 소수 어떤 수가 소수의 N제곱(N ≥ 2) 꼴일 때, 그 수를 거의 소수라고 한다. 두 정수 A와 B가 주어지면, A보다 크거나 같고, B보다 작거나 같은 거의 소수가 몇 개인지 출력한다. www.acmicpc.net 답안 코드 : import math Min, Max = map(int, input().split()) A = [0] * (10000001) for i in range(2, len(A)): A[i] = i for i in range(2, int(math.sqrt(len(A)) + 1)): # 제곱근까지만 수행 if A[i] == 0: continue for j in range.. 더보기
백준 1929 파이썬 에라토스테네스 체 백준 1929 - 소수 구하기 문제 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 답안 코드 : import math M, N = map(int, input().split()) A = [0] * (N + 1) for i in range(2, N + 1): A[i] = i for i in range(2, int(math.sqrt(N)) + 1): # 제곱근까지만 수행 if A[i] == 0: continue for j in range(i + i, N + 1, i): # 배수 .. 더보기

반응형