본문 바로가기

c++

백준 2577번: 숫자의 개수 (C++) 1.문제세 개의 자연수 A, B, C가 주어질 때 A×B×C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다. 2.입력첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. 3.출력 첫째 줄에는 A×B×C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A×B×C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지.. 더보기
백준 1152번: 단어의 개수 (C++) 1.문제영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 2.입력첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. 3.출력첫째 줄에 단어의 개수를 출력한다. 소스코드 #include using namespace std; #define MAX_WORD 50 // 최대문자열 int main() { char str[MAX_WORD]; //입력할 문장 int wordCnt=1; //단어 갯수 cin.getline(str,MAX_WORD);.. 더보기
백준 1110번: 더하기 사이클 (C++) 1.문제0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자.26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다.위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다.N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 2.입력첫째 줄.. 더보기
백준 4344번: 평균은 넘겠지 (C++) 1.문제대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 2.입력첫째 줄에는 테스트 케이스의 개수 C가 주어진다.둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 3.출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 소스코드#include #include using namespace std; int main() { int stdNum; //학생수 int sum; //합계 int stdCnt; //평균학생 수 double average; // 소.. 더보기
Quick Sort (C++ 퀵정렬) Quick Sort C++퀵정렬 퀵 정렬은 기준점(pivot)을 정하고 앞(left)와 뒤(right)를 비교하면서 정렬을 하는 알고리즘입니다. 장점: 수행속도가 빠른 정렬 알고리즘이다.단점: 중심값이 같을 경우에는 배열의 순서가 파괴 될 수도 있으며 안정성이 없다는 점이다. *퀵 정렬에 대한 자세한 메소드 설명은 소스 코드의 주석 참조//퀵 정렬 소스코드 #include using namespace std; int Partiton(int arr[], int left, int right); // 퀵 정렬 메소드 (나누기) void QuickSort(int arr[], int left, int right); // 퀵 정렬 메소드 (재귀) void Swap(int *A, int *B); // 값 교환 메소드.. 더보기