사칙연산 98

[백준 10039] 평균 점수 [C]

소스코드 #include int main() { int arr[5], sum = 0; for (int i = 0; i < 5; i++) { scanf("%d", &arr[i]); arr[i] < 40 && (arr[i] = 40); sum += arr[i]; } printf("%d\n", sum / 5); } 출처 10039번: 평균 점수 입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다. 점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평균 점 www.acmicpc.net

[백준 10757] 큰 수 A+B [C]

풀이 10의 10000승이므로 개행문자 까지 포함해 A, B에는 최대 10002개의 문자가, 두 수의 합을 저장할 배열은 최대 10003개의 문자를 담을 수 있어야 한다. 문자열로 입력받았기 때문에 자리올림을 위해 문자열을 뒤집어 주어야 한다. 백준 채점 환경에서는 strrev()를 사용할 수 없어 직접 구현했다. 두 문자열의 문자에 해당하는 아스키코드값을 이용해 덧셈을 해주며, 자리올림이 발생하면 다음 계산 때 적용한다. 소스코드 #include #include void str_rev(char *str, int len){ for (int i = 0; i < len/2; i++){ str[i] = str[i] ^ str[len-i-1]; str[len-i-1] = str[len-i-1] ^ str[i];..

[백준 1712] 손익분기점 [C]

풀이 손익분기점을 넘기 위한 판매량은 A / (C - B) + 1의 정수값과 같다. B가 C이상일 때는, 판매량에 상관없이 절대로 손익분기점을 넘을 수 없다. 소스코드 #include int main(){ long A, B, C; scanf("%ld %ld %ld", &A, &B, &C); if (B >= C) puts("-1"); else printf("%lld", A/(C-B)+1); } 출처 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net

[백준 15596] 정수 N개의 합 [C]

풀이 다음처럼 반복문 내부의 변화식 란에서 연산을 하면 틀린다. 이에 대해 아직 아는 정보가 없어 추후 알게된다면 글을 하나 작성하겠다. long long sum(int *a, int n) { long long ans = 0; for (int i = 0; i < n; i++, ans += a[i]); return ans; } 소스코드 long long sum(int *a, int n) { long long ans = 0; for (int i = 0; i < n; i++) ans += a[i]; return ans; } 출처 15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Python 2, PyPy2, Go, C..

[백준 15552] 빠른 A+B [C]

풀이 printf(), scanf()는 충분히 빠르므로 그냥 사용해도 된다. 소스코드 #include int main() { int N, A, B; scanf("%d", &N); while (N--) { scanf("%d %d", &A, &B); printf("%d\n", A + B); } } 출처 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net