[복습] 261025 - C# 4챕터
Q4. 할인 후 적립금
문제
상품 단가, 구매 수량, 할인율을 한 줄씩 입력받음. 주문 전체에 할인율을 적용하고, 할인 후 결제액의 2%를 적립함. 금액은 decimal로 계산하고 결제액·적립액은 소수점 둘째 자리까지 반올림함. 정확한 중간값은 0에서 먼 쪽으로 처리하며 적립 기준은 반올림한 결제액임. 단가는 0.011000, 수량은 1100의 정수, 할인율은 0~1이며 소수점은 점으로 입력함.
입력 예시
12.50
3
0.10
예상 결과
결제액: 33.75
적립액: 0.68

using System;
decimal price = decimal.Parse(Console.ReadLine());
int count = int.Parse(Console.ReadLine());
decimal discount = decimal.Parse(Console.ReadLine());
//
//결제액
decimal payment = (price * count) - ((price * count) * discount);
decimal collect = payment * 0.02m;
Console.WriteLine($"결제액: {payment:F2}");
Console.WriteLine($"적립액: {collect:F2}");
시도 횟수: 2
AI 사용: O
소요시간: 2분
종합평가: F
Q5. 주차 시간 정산
문제
주차한 분 수를 한 줄 입력받아 완전히 지난 시간 수, 과금 시간 수, 요금을 출력함. 시작한 한 시간마다 1500원을 부과하고 0분은 무료임. 입력은 0~1440v의 유한한 소수이며 소수점은 점으로 씀. 시간 수는 시간 단위의 정수 값으로 계산함.
입력 예시
61
예상 결과
완전히 지난 시간: 1
과금 시간: 2
요금: 3000원
using System;
int minutes = int.Parse(Console.ReadLine());
//60당 1시간...
//
int spendTime = minutes / 60;
int payTime = minutes == 0 ? 0 : (minutes + 59) / 60;
int fee = 1500 * payTime;
//int로 해서 정수만 딱 뜸
Console.WriteLine($"완전히 지난 시간: {spendTime}");
Console.WriteLine($"과금시간: {payTime}");
Console.WriteLine($"요금: {fee}");

시도 횟수: 1
AI 사용: O 과금시간 구하기
소요시간: 4분
종합평가: F
Q6. 반올림 시점 비교
문제
첫째·둘째 작업의 보상액을 한 줄씩 입력받아 두 정산 방식을 비교함. A는 각 보상액을 정수로 반올림한 후 합산하고, B는 원래 보상액을 합산한 후 정수로 반올림함. 두 방식 모두 Math.Round의 기본 중간값 규칙을 사용하며 B에서 A를 뺀 차이를 출력함. 입력은 -1000~1000의 유한한 소수이고 decimal로 계산하며 소수점은 점으로 씀.
입력 예시
2.5
2.5
예상 결과
건별 정산: 4
합산 정산: 5
차이: 1

using System;
//보상액 = 정확해야함 = decimal
decimal firstReward = decimal.Parse(Console.ReadLine());
decimal secondReward = decimal.Parse(Console.ReadLine());
//
//A는 각 보상액을 정수로 반올림한 후 합산
//는 원래 보상액을 합산한 후 정수로 반올림함.
//Math.Round의 기본 중간값 규칙을 사용하며 B에서 A를 뺀 차이를 출력함.
//즉 후 캐스팅
//A
//string 변환이 아니니 여긴 그냥 캐스팅
decimal resultA = Math.Round(firstReward) + Math.Round(secondReward);
decimal resultB = (firstReward) + (secondReward);
Console.WriteLine($"건별 정산: {(int)resultA}");
Console.WriteLine($"합산 정산: {Math.Round(resultB)}");
Console.WriteLine($"차이: {(int)(resultB - resultA)}");
시도 횟수: 1
AI 사용: X (인터넷에 Math.Round 검색함)
소요시간: 7분 54초
종합평가: A



