[복습] 261020 - C# 3, 4챕터

강현구
∙∙조회 4

C# 복습 - 챕터3

Q7. 두 플레이어의 점수 교환

문제

철수와 영희의 점수를 한 줄씩 입력받아 두 점수 변수의 값을 서로 교환하고 전후 점수를 출력함. 점수는 각각 -1000~1000임.

입력 예시

plain text
120
85

arduino
using System;

int chul = int.Parse(Console.ReadLine());
int young = int.Parse(Console.ReadLine());

Console.WriteLine($"철수: {chul} / 영희{young}");
Console.WriteLine($"철수: {young} / 영희{chul}");


 

풀이시간: 1분 3초

AI 사용 유무: X


Q8. 세 칸의 물건 옮기기

문제

첫째·둘째·셋째 칸의 물건 이름을 한 줄씩 입력받음. 첫째 물건은 둘째로, 둘째는 셋째로, 셋째는 첫째로 한 번 옮기고 전후 배치를 출력함. 각 이름은 빈 줄이 아니며 중복될 수 있음.

입력 예시

plain text
공책
연필
지우개

ini
using System;

string first = Console.ReadLine();
string second = Console.ReadLine();
string third = Console.ReadLine();

//

string move1 = third;
string move2 = first;
string move3 = second;

Console.WriteLine($"이동 전: {first} / {second} / {third}");
Console.WriteLine($"이동 후: {move1} / {move2} / {move3}");

풀이시간: 1분 59초

AI 사용 유무: X

 


Q9. 창고 사이 재고 이동

문제

A·B 창고의 초기 재고, A→B 이동 수량, B→A 이동 수량을 한 줄씩 입력받아 순서대로 이동함. 시작·각 이동 후의 재고와 최종 총량을 출력함. 초기 재고는 각각 0~1000개이며, 이동 수량은 0 이상이고 이동 시점의 출발 창고 재고를 넘지 않음.

입력 예시

plain text
100
40
25
10

ini
using System;

int aItem = int.Parse(Console.ReadLine());
int bItem = int.Parse(Console.ReadLine());

int atob = int.Parse(Console.ReadLine());
int btoa = int.Parse(Console.ReadLine());

//
Console.WriteLine($"시작:  A {aItem}개 / B {bItem}개");


int amove1 = aItem - atob;
int bmove1 = bItem + atob;

Console.WriteLine($"A->B 후: A {amove1}개 / B {bmove1}개");


int amove2 = amove1 + btoa;
int bmove2 = bmove1 - btoa;

Console.WriteLine($"B->A 후: A {amove2}개 / B {bmove2}개");

Console.WriteLine($"총 재고: {amove2 + bmove2}개");

풀이시간: 4분 59초

AI 사용 유무: X

 


Q10. 공연 예매와 취소

문제

전체 좌석 100석, 티켓 가격 12000원을 상수로 선언함. 예매가 없는 상태에서 첫 예매 수량, 추가 예매 수량, 취소 수량을 한 줄씩 입력받아 순서대로 처리하고 단계별 예매 수·남은 좌석·판매 금액을 출력함. 취소는 전액 환불함. 수량은 0 이상의 정수이며 예매 시 남은 좌석, 취소 시 예매 수를 넘지 않음.

입력 예시

plain text
20
15
5

ini
using System;

const int totalSeat = 100;
const int ticketPrice = 12000;

int first = int.Parse(Console.ReadLine());
int extra = int.Parse(Console.ReadLine());
int cancel = int.Parse(Console.ReadLine());


int extraSell = first + extra;

int cancelSell = extraSell - cancel;

Console.WriteLine($"첫 예매: 예매 {first}석 / 남은 좌석 {totalSeat - first}석 / 판매 {first * ticketPrice}원");
Console.WriteLine($"추가 예매: 예매 {extraSell}석 / 남은 좌석 {totalSeat - extra}석 / 판매 {extraSell * ticketPrice}원");
Console.WriteLine($"취소 후: 예매 {cancelSell}석 / 남은 좌석 {totalSeat - cancelSell}석 / 판매 {cancelSell * ticketPrice}원");

풀이시간: 6분 30초

AI 사용 유무: X


04 숫자 타입과 float 연습문제

숫자 타입과 float 연습문제

Q1. 밝기 값의 여유 범위

문제

현재 밝기를 한 줄 입력받아, byte가 표현할 수 있는 범위에서 낮출 수 있는 양과 높일 수 있는 양을 출력함. 입력은 0~255의 정수임. 범위의 끝값은 숫자를 직접 적지 않고 byte.MinValue·byte.MaxValue로 구함.

입력 예시

plain text
180

csharp
using System;

int input = int.Parse(Console.ReadLine());

//

Console.WriteLine($"낮출 수 있는 양: {Math.Abs(byte.MaxValue - input)}");
Console.WriteLine($"높일 수 있는 양: {Math.Abs(byte.MinValue - input)}");

풀이시간: 2분 53초

AI 사용 유무: X


Q2. 영상 원본 저장량

문제

영상 한 프레임의 바이트 수와 프레임 개수를 한 줄씩 입력받아 전체 저장량을 출력함. 각 입력은 1~1000000000의 정수이며, 전체 바이트 수를 정확한 정수로 계산함.

입력 예시

plain text
6000000
500

arduino
using System;

int bytes = int.Parse(Console.ReadLine());
int frames = int.Parse(Console.ReadLine());

//

Console.WriteLine($"필요한 저장량: {(long)bytes * frames}");


풀이시간: 2분 53초

AI 사용 유무: O