문제 출처: www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 1. 문제 접근 방식 - 문제만 보면 정말 간단해 보이지만 보이는게 다가 아니다. 문제를 따라가면서 코딩을 하면 어김없이 시간초과가 나기 때문이다. 두가지 방법을 생각해보았다. 파이썬에서 기본적으로 제공하는 함수인 pow를 이용하거나 재귀를 이용하는 방식이다. 2. 내가 푼 코드 import sys A, B, C = map(int, sys.stdin.readline().split()) # pow(A, B, C) = A의 B승을 C로 나눈 나머지 print(pow(..
문제 출처: www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 1. 문제 접근 방식 - 최대 공약수와 최소 공배수와의 관계를 이용하여 계산하였다. - X = AC, Y=BC 일때, 최대공약수는 C, 최소공배수는 ABC 2. 내가 푼 코드 import sys # 최대공약수 구하기 def GCD(X, Y): while(Y): X, Y = Y, X % Y return X # 최소공배수 구하기 def LCM(X, Y): result = (X*Y) ..
문제 출처: www.acmicpc.net/problem/13164 13164번: 행복 유치원 행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로 www.acmicpc.net 1. 문제 접근 방식 - 입력받은 키들의 차이를 새로운 리스트로 만들어 정렬 후 N-K까지의 합을 구하면 된다. 2. 내가 푼 코드 import sys N, K = map(int, sys.stdin.readline().split()) height = list(map(int, sys.stdin.readline().split())) result = [] for i in range(1, N): re..
문제 출처: www.acmicpc.net/problem/1188 1188번: 음식 평론가 첫째 줄에 소시지의 수 N과 평론가의 수 M이 주어진다. (1 ≤ N, M ≤ 100) www.acmicpc.net 1. 문제 접근 방식 - 처음에 딱히 생각이 나지 않아 경우의 수를 생각하며 일일히 적어보았다. 여기서는 최대공약수를 활용하는 것이 가장 핵심인 문제다. 2. 내가 푼 코드 import sys # 최대 공약수를 구하는 함수 def gcd(a, b): while b: a, b = b, a % b return a N, M = map(int, sys.stdin.readline().split()) # M에서 N과 M의 최대공약수 빼기 print(M - gcd(N, M)) 3. 결과 및 느낀점 - 성공! 하다가..