복대가리의 개발

[C#] 백준 (알고리즘)/브론즈 문제

[백준 - C#] 5543번 상근날드 / 10953번 A+B-6

복대가리 2022. 10. 25. 09:00
728x90

문제링크

https://www.acmicpc.net/problem/5543

 

5543번: 상근날드

입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가

www.acmicpc.net

 

문제

상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다.
주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면,
가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다.

햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다.

햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오.

조건

시간제한 : 1초
메모리 제한 : 128 MB

입력

입력은 총 다섯 줄이다.
첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다.
넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다.
모든 가격은 100원 이상, 2000원 이하이다.

출력

첫째 줄에 가장 싼 세트 메뉴의 가격을 출력한다.

 

문제정리

1. 햄버거 3종류와 음료 두 종류의 가격을 입력 받습니다.
2. 햄버거 한개와 음료 한개를 한 셋트라고 하며 가장 싼 세트의 메뉴를 찾아내야합니다.
3. 세트로 구매하면 50원을 빼야 합니다. 

이번 문제의 경우 햄버거 3개와 음료 2개 중 가장 싼 세트 메뉴를 찾아내야 하는 문제입니다.

버거와 음료를 모두 입력 받고 Array.sort를 이용하여 오름차순으로 정렬하고 0번째 인덱스의 합과 세트로 구매하였기 때문에 50원을 빼주면 답을 찾아 낼 수 있습니다.

 

C# 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static void Main(string[] args)
{
    StreamWriter writer = new StreamWriter(Console.OpenStandardOutput());
    StreamReader reader = new StreamReader(Console.OpenStandardInput());
 
    int[] buger = new int[3];
    int[] drink = new int[2];
 
    for (int i = 0; i < 3; i++)
        buger[i] = int.Parse(reader.ReadLine());
 
    for (int i = 0; i < 2; i++)
        drink[i] = int.Parse(reader.ReadLine());
 
    Array.Sort(buger);
    Array.Sort(drink);
 
    writer.WriteLine(buger[0+ drink[0- 50);
 
    writer.Close();
    reader.Close();
}
cs

문제링크

https://www.acmicpc.net/problem/10953

 

10953번: A+B - 6

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

조건

시간제한 : 1초
메모리 제한 : 256 MB

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다.
A와 B는 콤마(,)로 구분되어 있다. (0 < A, B < 10)

출력

각 테스트 케이스마다 A+B를 출력한다.

 

문제정리

1. 두 정수를 입력 받고 A+B의 값을 출력 해야합니다.
2. A와 B 사이에는 콤마로 구분되어 있습니다.

이번 문제의 경우 A와 B의 더한 값을 구하면 되는 문제 이지만 두 문자 사이에 콤마로 구분되어 있습니다.

저의 경우 string으로 값을 입력 받고 0번째 인덱스와 2번째 인덱스의 값을 int로 형변환 하여 문제를 풀이하였습니다.

string을 index로 접급하는 경우 char로 받기 때문에 .ToString() 하여 형변환 해주어야 합니다.

 

C# 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
static void Main(string[] args)
{
    StreamWriter writer = new StreamWriter(Console.OpenStandardOutput());
    StreamReader reader = new StreamReader(Console.OpenStandardInput());
 
    int T = int.Parse(reader.ReadLine());
 
    for (int i = 0; i < T; i++)
    {
        string input = reader.ReadLine();
        // 0 = A
        // 1 = ,
        // 2 = B
        // 0번째 char랑 2번째 char를 더해주면 A+B의 합을 구할 수 있습니다.
        writer.WriteLine(int.Parse(input[0].ToString()) + int.Parse(input[2].ToString()));
    }
 
    writer.Close();
    reader.Close();
}
cs
 
읽어주셔서 감사합니다 오늘도 즐거운 하루 되세요.

 

728x90