목록알고리즘 (26)
가치투자자
백준 1934번 : 최소공배수 🔗 문제 링크 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 💬 문제 최대공약수 와 최소공배수 에 대한 이해가 있다면, 충분히 풀 수 있는 문제다. 총 T쌍의 자연수 A, B가 주어진다. 각 A, B의 최소공배수를 구해 출력해준다. - A의 배수면서 B의 배수인 수 중에서 가장 작은 수가 최소공배수 다 💡 입력값 받아오기 JavaScript로 풀 경우, 입력값(input)을 어떻게 받아와야 할..
백준 2609번 : 최대공약수와 최소공배수 🔗 문제 링크 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 💬 문제 최대공약수 와 최소공배수 에 대한 이해가 있다면, 충분히 풀 수 있는 문제다. 첫 번째 줄에 공백을 기준으로 두 개의 자연수(a, b)가 주어진다. 두 수의 최대 공약수와 최소 공배수를 구해 출력해준다. - a의 약수면서 b의 약수인 수 중에서 가장 큰 수가 최대공약수 다 - a의 배수면서 b의 배수인 수 중에서 가장 작은 수가 최소공배수 다 💡 입력값 받아오기 JavaScript로 풀 경우, 입력..
유클리드 호제법 (유클리드 알고리즘, Euclidean algorithm) 1. 유클리드 호제법이란? 유클리드 호제법 은 두 수 A와 B의 최대공약수를 구하는 알고리즘이다. 여기서 호제법 이란 두 수가 서로 상대방을 나누어 결국 원하는 수를 얻어내는 알고리즘을 말한다. 1-1. 일반적으로 최대공약수 구하기 보통 최대공약수를 구하기 위해 소인수분해 를 사용한다. 22와 8의 경우, 각각 소인수분해하여 최대공약수 2를 구할 수 있다. 22 = 11 x 2 8 = 2 x 2 x 2 그러나 이 방법의 경우, 숫자가 너무 크거나 숫자가 난해한 경우 소인수분해를 하기 어렵다. 1. 수가 너무 큰 경우 : 2304와 1440 => 최대공약수 288 2. 숫자가 난해한 경우 : 403과 155 => 최대공약수 31 이..
백준 9506번 : 약수들의 합 🔗 문제 링크 https://www.acmicpc.net/problem/9506 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net 💬 문제 약수 와 완전수 에 대한 이해가 있다면, 충분히 풀 수 있는 문제다. 어떤 숫자 n이 주어졌을 때, 자신(n)을 제외한 모든 약수를 구해준다. - 자신(n)을 제외한 약수의 합이 n과 같다면 그 수는 완전수이다. n의 제외한 모든 약수의 합을 구해주고, 그 값이 n과 같은지 비교해준다. - 그 수가 완전수라면, n = 약수 + ... ..
백준 2501번 : 약수 구하기 🔗 문제 링크 https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 💬 문제 약수 에 대한 이해가 있다면, 충분히 풀 수 있는 문제다. 자연수 N의 약수 중 K번째로 작은 약수를 구해 출력해준다. - 1번째 줄에 N과 K가 공백을 기준으로 주어진다 💡 입력값 받아오기 JavaScript로 풀 경우, 입력값(input)을 어떻게 받아와야 할 지가 중요하다. 이 문제에서는 1번째 줄에 N과 K를 주고 있다. 공백을 기준으로 N과 K를 잘라주고 정수화해주면 된다. 입력값을 받아오는 것과 관련해 더..
백준 11004번 : K번째 수 🔗 문제 링크 https://www.acmicpc.net/problem/11004 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 💬 문제 정렬 알고리즘 에 대한 이해가 있다면, 충분히 이해할 수 있는 문제다. 다만, 시간 초과와 메모리 초과 때문에 조금 어렵게 다가올 수 있다. 첫 번째 줄에 정수 개수 N과 인덱스번호 K가 주어지고, 두 번째 줄에 공백으로 N개의 정수가 주어진다. N개의 정수를 오름차순으로 정렬했을 때, K번째 수를 출력해준다. 💡 입력값 받아오기 JavaScript로 풀 경우, 입력값(input)을 어떻게 받아..