알고리즘 분류: 수학, 구현, 정수론 문제 링크: https://www.acmicpc.net/problem/9506 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net 【 풀이 】 수를 하나 입력받고, 그 수의 약수들의 합이 입력 받은 수와 일치하면 그 합을 출력하는 문제이다. 숫자 n을 입력받고, 1부터 n까지 숫자를 돌려가면서 n과 나누어 떨어지는 수가 있다면 배열에 저장한다. 그 후 배열에 저장된 수의 합을 구하고, n과 같은지 다른지 조건문으로 예제와 같이 출력하면 된다. 【 코드 】 #includ..
알고리즘 분류: 수학, 정수론, 유클리드 호제법 문제 링크: https://www.acmicpc.net/problem/13241 13241번: 최소공배수 정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다 www.acmicpc.net 【 풀이 】 유클리드 호제법을 재귀함수로 구현하여 최대공약수를 구한 다음 최대공약수를 활용하여 최소공배수를 구하면 되는 문제이다. 문제에서 수 형식을 long long int (C/C++) 를 사용하라고 하였으니, 변수든 함수든 모두 long long int로 구..
알고리즘 분류: 구현, 문자열 문제 링크: https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net 【 풀이 】 문자열을 입력받고 입력받은 대로 출력하면 되는 문제이다. 개행까지 포함한 문자열을 한 번에 출력해도 되지만 문제에서 그러한 조건은 없으므로 단순하게 한줄씩 입력받고 한 줄씩 출력하면 된다. string 클래스와 getline을 이용하여 공백을 포함하여 입력받고 그대로 출력한 다음 비어있는 문자열을 받게 되면(개행만 하게 되면..
알고리즘 분류: 문자열, 정렬 문제 링크: https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 【 풀이 】 한 수를 입력받고 각 자릿수의 수를 내림차순으로 정렬하여 출력하는 문제이다. 수를 입력받은 다음 10으로 나누어가며 나머지를 벡터에 저장하고 greater() 임시객체를 불러 내림차순으로 정렬하여 순서대로 출력하면 된다. 또한 배열을 정렬하고 반대로 출력하는 것도 방법이 되겠다. 【 코드 】 #include #include #include using namespace std; vectorv; int main(void) { int..
알고리즘 분류: 자료 구조, 스택 문제 링크: https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 【 풀이 】 입력으로 받은 수열을 스택을 활용하여 순서대로 구현할 수 있는지를 물어보는 문제이다. 증가하는 변수 cnt를 선언해 주고, 입력한 숫자 n과 같아질 때까지 증가시키고 스택에 저장. 그 후 '+' 기호를 벡터에 저장한다. 그리고 스택의 맨 나중에 들어온 값과 ..
알고리즘 분류: 수학, 다이나믹 프로그래밍, 그리디 알고리즘 문제 링크: https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 【 문제 】 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 ..