-
[SISS/C언어 스터디] 2학기 6주차 스터디24-2 SISS/C언어 2024. 11. 3. 23:50
자율 2문제를 풀어서 제출하면 됩니다.
언어는 C언어만 가능합니다.
레벨 제한사항: Silver 5 이상
25707
- 그리디 알고리즘 → 배열을 정렬하여 인접한 원소와 첫 원소와의 차이 절댓값을 합산하여 출력한다
#include <stdio.h> #include <stdlib.h> int compare(const void *a, const void *b) { return (*(int*)a - *(int*)b); } int main() { int numbers[1000]; int n, sum = 0; // n 입력 scanf("%d", &n); // 숫자 입력(n개) for (int i = 0; i < n; i++) { scanf("%d", &numbers[i]); } // 정렬 qsort(numbers, n, sizeof(int), compare); // 차의 절댓값 for (int i = 0; i < n; i++) { if (i != n - 1) sum += abs(numbers[i] - numbers[i + 1]); else sum += abs(numbers[i] - numbers[0]); } // 출력 printf("%d\n", sum); return 0; }
25206
- 구현 → 문제에 주어진 조건대로 코드 작성(학점 및 평점을 고려하여 작성)
#include <stdio.h> #include <string.h> int main() { char grade[3]; float credit; float sum = 0; float hakjeom = 0; for (int i = 0; i < 20; i++) { // 학점과 등급만 입력(과목 명 무시) scanf("%*s %f %s", &credit, grade); if (strcmp(grade, "P") == 0) { continue; // "P"일 경우 넘어감 } else { hakjeom += credit; // 총 학점에 더함 // 등급에 따라 학점을 계산하여 sum에 더함 if (strcmp(grade, "A+") == 0) { sum += 4.5 * credit; } else if (strcmp(grade, "A0") == 0) { sum += 4.0 * credit; } else if (strcmp(grade, "B+") == 0) { sum += 3.5 * credit; } else if (strcmp(grade, "B0") == 0) { sum += 3.0 * credit; } else if (strcmp(grade, "C+") == 0) { sum += 2.5 * credit; } else if (strcmp(grade, "C0") == 0) { sum += 2.0 * credit; } else if (strcmp(grade, "D+") == 0) { sum += 1.5 * credit; } else if (strcmp(grade, "D0") == 0) { sum += 1.0 * credit; } else { sum += 0; } } } // 결과 출력 printf("%.6f\n", sum / hakjeom); return 0; }
'24-2 SISS > C언어' 카테고리의 다른 글
[SISS/C언어 스터디] 2학기 7주차 스터디 (0) 2024.11.10 [SISS/C언어 스터디] 2학기 5주차 스터디 (1) 2024.10.06 [SISS/C언어 스터디] 2학기 4주차 스터디 (1) 2024.09.29 [SISS/C언어 스터디] 2학기 3주차 스터디 (1) 2024.09.22 [SISS/C언어 스터디] 2학기 2주차 스터디 (0) 2024.09.14