[백준 3047] ABC (C#, C++) - soo:bak
작성일 :
문제 링크
설명
세 개의 수가 주어졌을 때,
이들을 오름차순으로 정렬한 결과를 바탕으로 각각을 A
, B
, C
문자에 대응시켜 출력하는 문제입니다.
접근법
- 세 정수를 입력받고, 이들 중 최솟값, 최댓값, 중간값을 구합니다.
- 정렬된 순서를 각각
A
,B
,C
에 대응시킵니다. - 다음 줄에서
'A'
,'B'
,'C'
로 구성된 문자열을 입력받고, 해당 문자에 맞는 수를 차례대로 출력합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Linq;
class Program {
static void Main() {
var nums = Console.ReadLine().Split().Select(int.Parse).ToArray();
Array.Sort(nums);
var order = Console.ReadLine();
for (int i = 0; i < 3; i++) {
if (order[i] == 'A') Console.Write(nums[0]);
else if (order[i] == 'B') Console.Write(nums[1]);
else Console.Write(nums[2]);
if (i < 2) Console.Write(" ");
}
Console.WriteLine();
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int num[3];
cin >> num[0] >> num[1] >> num[2];
int a = *min_element(num, num + 3);
int c = *max_element(num, num + 3);
int b = num[0] + num[1] + num[2] - a - c;
for (int i = 0; i < 3; i++) {
char ch;
cin >> ch;
if (ch == 'A') cout << a;
else if (ch == 'B') cout << b;
else cout << c;
cout << (i < 2 ? " " : "\n");
}
return 0;
}