https://www.acmicpc.net/problem/3047
3047번: ABC
첫째 줄에 세 수 A, B, C가 주어진다. 하지만, 순서는 A, B, C가 아닐 수도 있다. 세 수는 100보다 작거나 같은 자연수이다. 둘째 줄에는 A, B, C로 이루어진 세 글자가 주어지며, 이 순서대로 출력하면
www.acmicpc.net
🔔 문제 :
A < B < C 인 세 수 A,B,C가 주어집니다.
A, B, C 순서에 상관 없이 숫자 값 3개가 주어집니다.
이후 두번째로 입력받는 A,B,C의 순서에 따라서 각각의 숫자를 출력하는 문제입니다.
A = 1 , B= 2, C= 3 이라 했을때, BCA 문자열이 주어지면 231 을 출력하면 됩니다.
🔔 Kick Point :
여러 정렬 방법이 있겠지만, algorithm 헤더의 sort 함수를 사용하였습니다.
그 후 num이란 배열에 입력받은 문자값에 'A'를 빼주는
아스키코드를 이용하여, 간단하게 출력해주었습니다.
🔔 Code :
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int num[3];
cin >> num[0] >> num[1] >> num[2];
sort(num, num + 3); // O(nlgn)
for (int i = 0; i < 3; i++) {
char tmp; cin >> tmp;
cout << num[tmp - 'A'] << ' ';
}
}