300x250
인트로 브루트 포스 알고리즘이 적용될 문제를 소개하려 한다. 브루트 포스 Brute force, 브루트 포스는 완전 탐색 알고리즘이다. 완전 탐색 알고리즘이란 모든 경우의 수를 조사하는 방법이다. 자료구조 내의 모든 데이터를 탐색해야 하기에 자료구조에 따른 적절한 탐색 방법이 필요하다. 탐색 기법의 예시를 소개하면 선형 자료구조를 탐색하는 순차 탐색과 트리와 그래프와 같은 비선형 자료구조를 탐색하는 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)이 있다. 석차 구하기 문제 N명의 학생의 수학 점수가 입력되면 각 학생의 석차를 입력된 순서대로 출력하는 프로그램을 작성하세요. ※ 입력설명 첫 줄에 N(1 n; vector scores(n); vector ranks(n, 1); for (int i = 0;..
인트로 대학교 1학년 때 코딩을 처음 배우면서 약수 구하기 과제를 참 많이 한 것 같다. 그만큼 약수 구하기가 알고리즘의 첫걸음을 시작하기 좋은 문제가 아닐까 한다. 본 포스팅에선 기본적인 약수의 개수 구하기와 여러 수의 약수의 개수를 구하는 코드를 소개하려 한다. 모두의 약수 문제 자연수 N이 입력되면 1부터 N까지의 각 숫자들의 약수의 개수를 출력하는 프로그램을 작성하 세요. 만약 N이 8이 입력된다면 1(1개), 2(2개), 3(2개), 4(3개), 5(2개), 6(4개), 7(2개), 8(4 개)와 같이 각 숫자의 약수의 개수가 구해집니다. 출력은 다음과 같이 1부터 차례대로 약수의 개수만 출력하면 됩니다. 1 2 2 3 2 4 2 4 와 같이 출력한다. ※입력설명 첫 번째 줄에 자연수 N(5 n..
인트로 알고리즘 코드는 C 또는 C++ 기반으로 작성되었습니다. 숫자가 입력되면 1부터 N까지의 숫자까지 총 몇 개의 숫자가 사용되었을지 구하는 문제이다. 숫자가 작으면 간단한 방식으로 해결이 되지만 숫자가 많아지면 시간이 오래 걸리게 된다. 작은 숫자 큰 숫자 모두 잘 돌아가는 코드를 알아보려 한다. 숫자의 총 개수 (SMALL) 문제 자연수 N이 입력되면 1부터 N까지의 자연수를 종이에 적을 때 각 숫자는 몇 개 쓰였을까요? 예를 들어 1부터 15까지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5으로 총 21개가 쓰였음을 알 수 있습니다. 자연수 N이 입력되면 1부터 N까지 각 숫자는 몇 개가 사용되었는지를 구하는 프로그램을 작 성하세..
인트로 알고리즘 코드는 C 또는 C++ 기반으로 작성되었습니다. 자릿수의 합 구하기 알고리즘 기초에서 참 많이 보는 문제 유형같다. 예를 들어 123을 321로 바꾸기, 각 자릿수의 합을 구하기, 가장 많이 사용된 숫자 구하기 등 기본 원리만 알고가면 쉽다. 자릿수의 합 문제 N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 int digit_sum(int x)를 꼭 작성해서 프로그래밍 하세요. ※입력설명 N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. ※출력설명 자릿수의 합이 최대인 자연수를 출력한다. 자리수의 합이 최대인..