작성일 :

문제 링크

3047번 - ABC

설명

세 개의 수가 주어졌을 때,

이들을 오름차순으로 정렬한 결과를 바탕으로 각각을 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;
}