본문 바로가기

전체 글110

[C++] OX퀴즈 : 8958번 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 풀이 #include #include using namespace std; int main() { int max; // 최대 갯수 cin >> max; cin.ignore(); int* scoreList = new int[max]; // 점수저장 배열 for (int i = 0; i < max; i++) { int tem.. 2022. 6. 20.
[C++] 특정 공식으로 새로운 평균 구하기 : 1546번 문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 풀이 #include using namespace std; double NewAverage(int* score, int count); int main() { int count; // 과목 수 // 과목 수 입력 cin >> count; cin.ignore(); int* score = n.. 2022. 6. 18.
[C++] 나머지 배열에서 서로 다른 값 찾기 : 3052번 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 풀이 #include using namespace std; int main() { int number; int mod[10]; int result = 0; int count[42] = { 0, }; // 숫자 10개 입력 저장 for (int i = 0; i > number; cin.ignore(); mod[i] = number % 42; // 나머지 저장 } // 나머지 값들을 .. 2022. 6. 18.
[C++] 각 자릿수의 숫자 갯수 세기 : 2577번 문제 세 개의 자연수 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번 쓰였다. 풀이 #include using namespace std; int main() { int a; int b; int c; cin >> a; cin.ignore(); cin >> b; cin.ignore(); cin >> c; int result = a * b * c; // 각 0~9 까지의 갯수를 저장하는 배열 ar.. 2022. 6. 18.
[C++] 배열에서 최댓값 찾고 인덱스 구하기 : 2562번 문제 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 풀이 #include using namespace std; int main() { int max; int index; int numbers[10]; // 공간할당 // 아홉개의 숫자 입력 for (int i = 1; i > numbers[i]; cin.ignore(); } max = numbers[1]; // 임의 대입 // 최대 최소 판별 for (int i = 1; i < 10;.. 2022. 6. 18.
[C++] 배열에서 최솟값, 최댓값 구하기 : 10818번 문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 풀이 #include using namespace std; int main() { int max = 0; int min = 0; // 갯수 입력 int count; cin >> count; cin.ignore(); // 정수 입력 int* numbers = new int[count]; for (int i = 0; i > numbers[i]; } max = numbers[0]; min = numbers[0]; // 최대 최소 판별 for (int i = 0; i numbers[i]) { min = numbers[i]; } if (max <.. 2022. 6. 18.