문제 출처: 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..
1. 그리디 알고리즘(Greedy Algorithm) 그리디 알고리즘은 가장 단순하지만 강력한 문제 해결 방법 -> 탐욕법 현재 상황에서 당장 가장 좋은 것만 고르는 방법 현재의 선택이 나중에 미칠 영향까지는 고려하지 않음 유형이 매우 다양하기 때문에 문제를 많이 접하면서 훈련하는 것을 추천 문제를 풀기위한 최소한의 아이디어를 생각해낼 수 있는 능력 요구 = 창의력 예제: 거스름돈 문제 설명: 거스름돈으로 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정하고 거스름돈이 N원일 때 거슬러줘야 할 동전의 최소 개수 (단, N은 항상 10의 배수) 내가 푼 코드 import sys N = int(sys.stdin.readline()) a = N // 500 N = N % 500 b = N..