새소식

💻 Programming (프로그래밍)/C++ | 백준

[C++][백준] - ABC (3047번)

  • -
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'] << ' ';
	}
}

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.